(Formerly ruforo, formerly Sneedforo, formerly Chuckforo, formerly XenForo)
PROJECT_NAME is a traditional web forum built in Rust.
- Rust
- Actix-Web
- Askama for templating
- SeaQL (sqlx) for ORM
- Postgres
- S3
- NPM
- SWC for asset compilation
- SCSS for stylesheets
- Vanilla JS
- Minimal bloat.
- No-JS, Tor compatability.
- Unit tested.
- Event driven WebSocket subscriptions.
- Total replacement for XenForo.
- Example
.env
file- NOTE: AWS variables will likely be migrated to DB
- PostgreSQL
- Required. Database agnosticism not planned.
- S3 Storage
- Any S3-compatible storage API for attachments.
- Suggested to use MinIO (FOSS + Self-Hosted)
- node and webpack
- Install npm.
- Run
npm install
from the root directory to install node dependencies. - Run
npx webpack
from the root directory to deploy browser-friendly resource files. - webpack will be replaced with SWC when SASS compilation is available.
- https://www.webmproject.org/docs/container/
- VP8
- VP9
- AV1
- OPUS
- VORBIS
- We use rustfmt.
cargo clippy
whenever possible.- Try to eliminate warnings.
- Any data which would apply to two types of content (i.e. posts, chat messages, profile posts) should interact with the
ugc
tables, not individual content type tables. - Usernames should be referenced by
user_id,created_at DESC
fromuser_name
. User rows can be deleted, but a historical reference for their name will be added to this table. This complies with GDPR software requirements.