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.
 
 
 
 
Joshua Moon b85fe0b1ce Fixed sort, sticky chat frame size 3 days ago
migrations Fixed ORM issues related to permission values and collections. 1 month ago
public Added Webpack 6 months ago
resources Fixed sort, sticky chat frame size 3 days ago
src Chat activity test 3 days ago
templates Chat activity test 3 days ago
.editorconfig rustfmt 7 months ago
.env.example Chat asset timestamps. 4 weeks ago
.gitignore Added Webpack 6 months ago
Cargo.lock Maybe 20 hours of work, and for what? 2 weeks ago
Cargo.toml Maybe 20 hours of work, and for what? 2 weeks ago
README.md Chat messages group by author 1 month ago
package-lock.json JS Modals, Delete Modal 1 week ago
package.json JS Modals, Delete Modal 1 week ago
spack.config.js Grueling webpack fixes. 1 month ago
webpack.config.js Forum chat cleanup 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

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 from user_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.