Skip to content

Install the tools

WIP: not implemented yet or partly. Follow: #321

This page lists what you need on your machine to build mcrs. If you come from Java, the second half maps the parts of Gradle you know to Cargo, the build tool of Rust.

Install Rust through rustup. You do not pick a version, because rust-toolchain.toml pins nightly-2026-09-02 and rustup downloads it on the first cargo call. It also adds rustfmt, clippy and the wasm32 targets.

For an IDE, use RustRover, or IntelliJ IDEA with the Rust plugin, and open the repository root as a Cargo project. Check the current licence terms of RustRover yourself.

mcrs needs the official client jar of the snapshot, but you do not download it by hand. It is taken from the launcher folder, or downloaded from Mojang into the same folder on the first run, and then checked by SHA-1.

You do not need Java to run mcrs. Some tools, such as tools/vanilla-oracle and the mob bench, need Java 21 or newer.

The author measured and ran everything on macOS, on an Apple M4 Max with Metal. CI runs lint, clippy, portability checks and tests on Ubuntu 24.04, without the crates that need a GPU. For Windows the code has a jar path, and nobody has checked it.

Nobody has measured yet how long the first build takes or how much disk it needs. The workspace has 122 crates, so expect a long first build.

Gradle Cargo
settings.gradle with subprojects Root Cargo.toml with [workspace]. The 122 members are in crates/
build.gradle of a project Cargo.toml of a crate
./gradlew run cargo run. For mcrs add --release, because a debug build is too slow
./gradlew build cargo build
./gradlew test cargo test. This repository uses cargo nextest run
Gradle wrapper pins the Gradle version rust-toolchain.toml pins the compiler
build/ folder target/ folder
Maven coordinates and a version A crate name and a version, or a git URL with rev
Lock file of dependencies Cargo.lock, committed
implementation and api scopes [dependencies]. There is no api scope, and all pub items are visible

Crates are not published on crates.io, so today your own code lives in a clone of the repository or depends on a git commit.1

Next: Run a server.

  1. Undecided#321 Tracks making the protocol, network and game data crates ready to publish. ↩ ↩2

Sources and verification

Verified: 26.4-snapshot-7, 3540f457b, 2026-11-10

Tracking: #321