Performance-oriented contest management system for IOI like contest
🚧 work in progress, please wait until first release
- 🪶Lightweight: Only 50MB for the binary(
plugin is very large) - ⚡Lighting fast: Using
Rust
+Grpc-Web
and correct implementation/algorithm - 🚀Easy to use: By using docker compose, you can setup the system in minutes
- ⏱️Accurate: Directly use cgroupv2(no docker in judger), Report time deviation to frontend
- 🔒Secure: Using nsjail to sandbox user submitted code
- 🐳Scalable: When deployed in cluster, you can scale the system to satisfy reasonable request.
- 🗄️Extensible: You can add any programing language by placing a
*.lang
file inplugins
folder - 🔭 Powerful
metrics
/tracing
usingOpen-Telemetry
Copy docker/quickstart
file to your server and run docker compose up -d
, then open https://localhost
in your browser.
Because we use grpc-web(server-side stream), HTTP2 is required, you can ignore it or place cert and key in
./cert
folder.
login as admin@admin
and start play arounds.
See wiki for more details.
Please download source code from release
- Copy
docker/production
from source code to your folder - generate config for judger by starting the judger once, and edit config
- generate config for backend by starting the backend once
- download and extract plugin(language support) of your choice to
./plugins
If you prefer to use default config, you can skip step 2 and 3.
- install following package:
- From system package manager:
protobuf-devel
,gcc
- From rustup:
rustup
,cargo
,just
- From their website:
docker
,docker-compose
Then start reading documents in subfolder of your interest.
you may need to run
just prepare
injudger
,backend
subfolder.
Set CONFIG_PATH
to change the path to config file, default value is config.toml