51 lines
No EOL
1.5 KiB
Markdown
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 |