// the find
valence-rs/valence
A Rust framework for building Minecraft servers.
Valence is a Bevy ECS-based framework for building custom Minecraft: Java Edition servers from scratch in Rust. It's not a vanilla replacement — it's closer to a low-level game engine where you wire up your own game logic using Bevy's plugin system. The target audience is minigame server developers who want performance and control, not people looking to run a standard Survival server.
Built on Bevy ECS, which means you get real data-oriented design and parallelism for free — not a typical object-hierarchy Minecraft server. The protocol layer is unusually complete: there's a dedicated crate for nearly every packet group, and the generated code (blocks, items, sounds, entities) is derived from actual game data via a Fabric extraction mod, so it stays accurate. The `valence_nbt` and `java_string` crates are solid standalone libraries — java_string handles CESU-8 and Java's Modified UTF-8 correctly, which most Minecraft implementations get wrong. Benchmarks are present and the codebase ships with a BVH for spatial entity queries rather than naively iterating all entities.
It's been in 'early development' for years and the README still carries the big warning — vanilla game mechanics like combat, AI, and crafting don't exist out of the box, which means you're building a lot before you have anything playable. The project explicitly targets only the latest Minecraft version with no multi-version support, so every Mojang update is a breaking migration with no safety net for server operators. Anvil support is read-only, meaning you can load existing worlds but not save them — a significant gap for anything beyond flat arenas. Activity has slowed noticeably; the last push is January 2026 but the crates.io version is described as likely outdated, suggesting the main branch and published releases have diverged.