gdps-server/readme.md
2023-10-17 17:19:50 -07:00

51 lines
No EOL
1.5 KiB
Markdown

# gdps-server
a [Geometry Dash](https://store.steampowered.com/app/322170/Geometry_Dash/) server reimplementation in [Rust](https://rust-lang.org)
this project is based off of (stolen from) the [crystal-gauntlet](https://git.oat.zone/oat/crystal-gauntlet) server
## why?
i've run out of ideas.
### features
- [highly configurable](https://git.reidlab.online/reidlab/gdps-server/src/branch/main/config.example.toml)
- compiled, for extra speed
- [parses uploaded levels](https://git.reidlab.online/reidlab/gdps-server/src/branch/main/src/helpers/levels.rs) to patch RCEs and verify that everything is in place
- website frontend
## build
### migrating databases
- run `cargo install diesel_cli --no-default-features --features postgres`
- run `diesel migration run`
### testing
- run `cargo run`
### building
- run `cargo build --release`
## todo
- User icons in account management pages
- Flesh out account management page
- Account settings page
- Better web design (make formatting more consistant)
- Use chrono for dates in database, add recent
- 2.2's friends only unlisted
- Dailies, weeklies, events(?)
- Moderation utilities
- Better song support
- Cache authentication
- Panic less
- Make a proper rank system (reuploading, uploading music, rating, etc.)
- Use serde to make the forms whateverCaseThisIs rather than breaking our lint convention
- Swap to `sqlx` im gonna be honest `diesel` is pretty shit.
- Swap to `sqlite` from `postgres`. Postgres feels too clunky and it just solos honestly
- Add back `realip` header support
- Add configurable form limits