An online judge sandbox server in Rust, inspired by go-judge, for SAST OJ.

Overview

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 and liblzma-dev to generate .deb package

  • For gRPC support, the protoc Protocol Buffers compiler, along with Protocol Buffers resource files (under grpc 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
You might also like...
Singleplayer game inspired by agar.io written in Rust
Singleplayer game inspired by agar.io written in Rust

Cells Cells is a singleplayer game inspired by agar.io written in Rust. Every cell/entity can have a mix of differents capabilities. It's been optimiz

a prototype crate for creating modular and performant 3D CPU particle systems, inspired by Unity's Shuriken Particle System.

bevy_prototype_particles This is a prototype crate for creating modular and performant 3D CPU particle systems, inspired by Unity's Shuriken Particle

Motion graphics creation tool in Bevy. (Highly inspired by Motion Canvas and Manim)
Motion graphics creation tool in Bevy. (Highly inspired by Motion Canvas and Manim)

Bevy MotionGfx Bevy Motiongfx is a motion graphics creation tool in Bevy. It is highly inspired by Motion Canvas & Manim. Goal The goal of this tool i

An extendable system made up of autonomous execution services known as nodes organized in a tree of processes. Inspired by Godot!

NodeTree NodeTree is a framework to create large scalable programs and games through a tree of processes. Each process is fully autonomous and is capa

A simple, very minimal Minecraft server implementation in Rust.
A simple, very minimal Minecraft server implementation in Rust.

A simple, very minimal Minecraft server implementation in Rust. For a simple Minecraft server that isn't supposed to do much (for example, a limbo ser

ULE - Minecraft's server core written in Rust

ULE - Minecraft's server core written in Rust This's server core fully written in Rust-Lang and using more custom code for best perfomance and control

🎮 A Realtime Multiplayer Server/Client Game example built entirely with Rust 🦀

Example of a 🎮 Realtime Multiplayer Web Game Server/Client built entirely using Rust 🦀

This is a Minecraft Classic server written in Rust powered by tokio and classicl.

classicl_server Introduction This is a Minecraft Classic server written in Rust powered by tokio and classicl. Installation Cargo The project can be i

General purpose client/server networking library written in Rust, built on top of the QUIC protocol which is implemented by quinn

Overview "This library stinks!" ... "Unless you like durian" durian is a client-server networking library built on top of the QUIC protocol which is i

Comments
  • Move RESTful API and gRPC support into plugins.

    Move RESTful API and gRPC support into plugins.

    The dependency tree is relatively large, so maybe we should consider moving some functionality into the plugin. This may help reduce compilation time and coupling.

    依赖树相对较大,或许应该将一部分功能移至插件中。这样可能有助于减少编译时长,降低耦合度。

    opened by Jisu-Woniu 1
Owner
NJUPT SAST
This is the official Github Organization for NJUPT SAST.
NJUPT SAST
Victorem - easy UDP game server and client framework for creating simple 2D and 3D online game prototype in Rust.

Victorem Easy UDP game server and client framework for creating simple 2D and 3D online game prototype in Rust. Example Cargo.toml [dependencies] vict

Victor Winbringer 27 Jan 7, 2023
Vulkan rendering sandbox for raytracing

sol-rs ☀ sol-rs is a small rendering toolkit for Vulkan, with a focus on real-time raytracing (which is not currently available via other APIs such as

Éric Renaud-Houde 65 Dec 7, 2022
A sandbox library for making FAST voxel games

voxelize WIP A well-optimized web-based voxel engine. Development Before starting, make sure to install the following: rust node.js cargo-watch # clon

Ian Huang (Shaoru) 146 Dec 30, 2022
Manage light-weight sandbox environments for development

Cubicle development container manager Cubicle is a program to manage containers or sandbox environments. It is intended for isolating development envi

Diego Ongaro 8 Nov 29, 2022
This is an online game in which you program your character and he fights with other players

Game for programmers The goal of this project is to create a simple game for programmers. The essence of the game Each player has his own character th

Danila 1 Dec 10, 2021
Solana Game Server is a decentralized game server running on Solana, designed for game developers

Solana Game Server* is the first decentralized Game Server (aka web3 game server) designed for game devs. (Think web3 SDK for game developers as a ser

Tardigrade Life Sciences, Inc 16 Dec 1, 2022
rpg-cli is a bare-bones JRPG-inspired terminal game written in Rust

rpg-cli is a bare-bones JRPG-inspired terminal game written in Rust. It can work as an alternative to cd where you randomly encounter enemies as you change directories.

Facundo Olano 660 May 27, 2021
Dwarf Fortress inspired frontend to Veloren, the multiplayer RPG voxel game written in Rust

velobracket ('veloren' + 'bracket-lib') velobracket is Dwarf Fortress inspired frontend to Veloren, the multiplayer RPG voxel game written in Rust. Us

Rodion Martynov 13 Dec 25, 2022
Examples inspired by 'Nature of Code' in Bevy 3D and Rust

rust-bevy and the Nature of Code The book The Nature of Code from Daniel Shiffman is a wonderful book about programming. https://natureofcode.com/book

Rust-Ninja-Sabi 17 Dec 22, 2022
Rust-lang Continuous Wavelet Transform(CWT) library inspired by fCWT.

fastcwt Rust-lang Continuous Wavelet Transform(CWT) library inspired by fCWT. This crate is a direct translation of fCWT Library written in C++ by Art

null 3 May 2, 2023