Void is a Minecraft-compatible server framework written in Rust. It combines Bevy ECS for game logic with Tokio for asynchronous networking, giving you a modular, high-performance foundation for building custom Minecraft servers.
| Crate | Description |
|---|---|
void |
Core server framework — ECS components, systems, handlers, commands, world generation, and the public API. |
void-net |
Low-level TCP socket abstraction (accept, read, write framed packets). |
void-protocol |
Minecraft protocol definitions — serverbound/clientbound packet enums and data types. |
void-codec |
Binary Encode/Decode traits and primitive type implementations. |
void-codec-macros |
Derive macros (#[derive(Encode, Decode)]) and field attributes for codec automation. |
voidmc-data |
Vanilla registry, block-state, and collision-shape data — extracted at build time and exposed as compile-time constants and typed structs. |
Add void as a dependency, then create a minimal server:
This starts a server on 127.0.0.1:25565 with default settings, all built-in commands, and a custom /hello command.
ServerBuilder API, ServerConfig fields, defaultsEncode/Decode traits, derive macros, field attributesCommandBuilder, argument parsers, flags, default commandsRegistryDataStore API, default registries, customizationvoidmc-data) — Build-time codegen for blocks, states, collision shapes, and registries