You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
3 days ago | |
---|---|---|
migrations | 1 month ago | |
public | 6 months ago | |
resources | 3 days ago | |
src | 3 days ago | |
templates | 3 days ago | |
.editorconfig | 7 months ago | |
.env.example | 4 weeks ago | |
.gitignore | 6 months ago | |
Cargo.lock | 2 weeks ago | |
Cargo.toml | 2 weeks ago | |
README.md | 1 month ago | |
package-lock.json | 1 week ago | |
package.json | 1 week ago | |
spack.config.js | 1 month ago | |
webpack.config.js | 2 weeks ago |
README.md
Unnamed Web Forum Project
(Formerly ruforo, formerly Sneedforo, formerly Chuckforo, formerly XenForo)
PROJECT_NAME is a traditional web forum built in Rust.
Stack
- Rust
- Actix-Web
- Askama for templating
- SeaQL (sqlx) for ORM
- Postgres
- S3
- NPM
- SWC for asset compilation
- SCSS for stylesheets
- Vanilla JS
Aspirations
- Minimal bloat.
- No-JS, Tor compatability.
- Unit tested.
- Event driven WebSocket subscriptions.
- Total replacement for XenForo.
Environment
- Example
.env
file- NOTE: AWS variables will likely be migrated to DB
- PostgreSQL
- Required. Database agnosticism not planned.
- MinIO
- Suggested. Self-hosted S3 compatible FOSS.
- 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.
WebM Validation Notes
- https://www.webmproject.org/docs/container/
- VP8
- VP9
- AV1
- OPUS
- VORBIS
Contributions
Code Guidelines
- We use rustfmt.
cargo clippy
whenever possible.- Try to eliminate warnings.
Database Guidelines
- 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.