Multi-purpose microservice for all things performance.
It features:
- A performance calculator (compliant with USSR).
- A mass score recalculator.
- The Rust toolchain installed (mainly
cargo) for compilation.
To compile it, use the following command if you want simply use it for testing. This will reduce compile times.
cargo buildThis will create a binary in performance-service/target/debug.
Or if you want a production deployment, use this one. It will take longer (~1 minute excluding libraries) but produce a significantly faster binary.
cargo build --releaseThis will create a binary in performance-service/target/release.
The performance service features multiple componenets to cover most usecases. These can be selected through the app-component flag as so:
./performance-service --app-component=thing.
| Component | Usage |
|---|---|
api |
Runs a web API for performance calculations. Use when running a score server such as USSR |
deploy |
A console interface for recalculating the whole server with the current PP system. Handles stats and score overwrite. |
mass_recalc |
Internal undocumented rework testing tool. |
recalc |
Recalculates a single user. |
There are other flags available for advanced users and configuration. These may also be set through creating a copy of the .env.example file and naming it .env.
| Flag | Purpose |
|---|---|
api_port |
The port at which the api component should run. Has no impact elsewhere. |
mysql_user |
A MySQL user with read-write access to scores and users. |
mysql_password |
The password for the MySQL user. |
mysql_host |
The host of the MySQL server. |
mysql_port |
The port of the MySQL server. |
mysql_database |
The RealistikOsu database. |
redis_user |
The Redis user with access to global readerboards (leave empty if no authentification is required). |
redis_password |
The password for the Redis user. |
redis_host |
The host of the Redis server used for global leaderboards. |
redis_port |
The port of the Redis server. |
redis_db |
The index of the Redis database. |
beatmaps_path |
The location at which .osu files for beatmaps should be stored. For optimum performance, use the same directory that your score server uses. |