Skip to content

RealistikOsu/performance-service

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Performance Service

Multi-purpose microservice for all things performance.

It features:

  • A performance calculator (compliant with USSR).
  • A mass score recalculator.

Usage

Requirements

  • The Rust toolchain installed (mainly cargo) for compilation.
  • A RabbitMQ instance (can be created by simply running docker run -p 5672:5672 rabbitmq)

Compilation

To compile it, use the following command if you want simply use it for testing. This will reduce compile times.

cargo build

This 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 --release

This will create a binary in performance-service/target/release.

Deployment

Components

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.
processor Internal undocumented rework testing tool.
recalc Recalculates a single user.

Configuration

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.
amqp_user A RabbitMQ user.
amqp_password The password for the RabbitMQ user.
amqp_host The host of the RabbitMQ server.
amqp_port The port of the RabbitMQ server.
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.

About

Multi-purpose microservice for all things performance.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 99.2%
  • Other 0.8%