A simple forum built with axum, maud and sqlx
- Rust 89.8%
- Fluent 7.8%
- CSS 1.4%
- Just 1%
| .cargo | Adding cargo wizard optimizations | |
| locales | Adding translations in english | |
| migrations | Creating the message creation code and form | |
| screenshots | Adding screenshots | |
| src | Adding error messages into fluent | |
| .gitignore | Adding theme variables | |
| Cargo.lock | Adding the basics for internationalization using fluent-templates | |
| Cargo.toml | Adding the basics for internationalization using fluent-templates | |
| input.css | Adding the topic creation page | |
| justfile | Adding sudo prompt before reverse proxy command | |
| README.md | Trying a different layout for screenshots | |
Simple forum in pure Rust
I just wanted to try out some fun Rust crates so I'm building a basic forum...
Technologies
- Authentication:
openidconnect - Authorization:
axum-login - Sessions:
tower-sessions - Web framework:
axumwithtokio - Database:
sqlxwithsqlitefeature (which automatically embeds the sqlite library) - Styling: Tailwind CSS
- Templating:
maud - Error handling:
thiserror(and too much unwrap for now) - Configuration:
dotenvy - Static file serving:
static-serve - Validation: A custom module with functions that takes a reference to a map (key = name of field, value = error message)
- Internationalization:
fluent-templates
Features
- User: List of categories by subforum
- User: List of topics per categories
- User: List of messages per topic
- User: Edit username
- User: Create new topic
- User: Create new message
- Admin: Create new category
- Admin: Create new subforum
Screenshots
Here are a few screenshots of what the application looks like:
| Description | Large screen | Small screen |
|---|---|---|
| List of categories | ||
| List of topics in category | Forgot screenshot | |
| List of messages in topic | Forgot screenshot |