RsJudge
An online judge sandbox server in Rust, inspired by go-judge, for SAST OJ.
Features
-
Multi-language support
-
Supporting both self-testing and final submission
-
Customizable compilation and execution command with TOML config file
-
Customizable time and memory limit using cgroups
-
Asynchronously report test results
-
Fully supporting SAST OJ
-
RESTful API and gRPC support
-
Highly extensible with plugins
-
Blazingly fast and secured with Rust🦀
Build from source
Prerequisites
-
Rust latest stable toolchain
-
Linux kernel >= 4.5
-
asciidoctor
to generate manpages -
dpkg
,dpkg-dev
andliblzma-dev
to generate.deb
package -
For gRPC support, the
protoc
Protocol Buffers compiler, along with Protocol Buffers resource files (undergrpc
feature):
Debian/Ubuntu
sudo apt install -y protobuf-compiler libprotobuf-dev
Alpine
sudo apk add protoc protobuf-dev
Build
Clone the repository:
git clone https://github.com/NJUPT-SAST/rsjudge.git
cd rsjudge
Build the project with Cargo:
cargo build --release
Generate .deb
package:
cargo deb