A Minecraft Java Edition server written in Rust.
Website · Documentation · Implementation tracker · Discord
Important
SteelMC is still pre-alpha. You can connect and explore generated worlds, but survival gameplay is incomplete and many vanilla systems are still missing. Do not replace your production server with it yet.
SteelMC is an independent implementation of the Minecraft Java Edition server. It tracks the latest Java Edition release and currently targets Minecraft 26.2.
The goal is to match vanilla behavior while making better use of modern multicore hardware. Gameplay updates remain synchronous, while chunk generation, lighting, packet processing, and chunk sending can run outside the main tick.
World generation is currently the most complete part of SteelMC. Its parity suite compares 7,500 randomly selected chunks with a reproducible vanilla reference: 2,500 in each dimension. All tested chunks match block for block. Entity spawning is not included because most entity behavior has not been implemented yet.
In a focused benchmark on a Ryzen 9 9950X, SteelMC generated a fresh 10,201-chunk Overworld area in a median of 3.98 seconds. Results vary with hardware, and this benchmark does not represent every server workload.
Read Introducing SteelMC for the design story, parity methodology, benchmark context, and limitations. Full results and reproduction instructions are available on the benchmark page.
Today, clients can join a persistent multiplayer world, move and interact, use inventories and commands, and return later to saved chunks. SteelMC currently provides:
- Java Edition networking, authentication, encryption, and compression
- Persistent chunk generation, loading, saving, and lighting
- Player movement, collision, block interaction, and inventories
- Commands, permissions, chat, and server configuration
- Early entity, block entity, and gameplay behavior implementations
SteelMC is not ready to replace an established server:
- Survival gameplay is incomplete.
- Only a small number of entities have meaningful behavior.
- Full vanilla and protocol parity have not been reached.
- Plugins are not available yet.
- Paper, Bukkit, Fabric, Forge, and NeoForge extensions are not compatible.
Follow the implementation tracker for a more detailed view of what is available today.
Pre-built releases, Docker images, and source-build instructions are available in the installation guide.
Expect bugs and incomplete mechanics. If you try SteelMC, please share what you find on Discord or open a GitHub issue.
Contributions are welcome. Most changes begin by reading the vanilla source, understanding the behavior it implements, and deciding how to express that behavior cleanly in Rust.
Before you start:
- Check existing issues and pull requests, then discuss substantial changes with the community.
- Read the contributor guide and code standards.
- Generate the targeted vanilla source with
./update-minecraft-src.shand verify behavior against it. - Run the relevant tests and checks before opening a pull request.
The repository uses a pinned nightly Rust toolchain. The common validation commands are:
cargo test
cargo fmt --all --check
cargo clippy -r --all-targets --all-features
typosGenerated documentation for SteelMC's Rust crates is available in the Rust API reference.
AI may be used as a tool, but contributors must understand and be able to explain every line they submit. Fully autonomous pull requests are not accepted.
The SteelMC Discord is where we discuss designs, coordinate work, share progress, and answer questions. Longer project updates are published on the SteelMC website.
SteelMC is free software licensed under the GNU Affero General Public License v3.0 or later.
The SteelMC logo was designed by colonthreeing.
SteelMC's world generation, lighting, and other performance work has drawn ideas from C2ME, ScalableLux, FastNoise, Lithium, and Structure Layout Optimizer.

