A Rust framework for building Minecraft servers.
At a high level, a Valence
Server is a collection of
Worlds. When a client connects to the server they are
added to the collection of
Clients. After connecting, clients should
be assigned to a
World where they can interact with the entities
Chunks that are a part of it.
For more information, see the repository README.
You must not call
mem::swap on these references (or any other
function that would move their location in memory). Doing so breaks
invariants within the library and the resulting behavior is safe but
unspecified. You can think of these types as being pinned.
Preventing this illegal behavior using Rust’s type system was considered too cumbersome, so this note has been left here instead.
See the examples directory in the source repository.
Biome configuration and identification.
Blocks and related types.
Chunks and related types.
Connections to the server after logging in.
Configuration for the server.
Dimension configuration and identification.
Entities in a world.
The player list (tab list).
Player skins and capes.
Provides low-level access to the Minecraft protocol.
The heart of the server.
Efficient spatial entity queries.
Generate and parse universally unique identifiers (UUIDs).
Generic 2D-3D math swiss army knife for game engines, with SIMD support and focus on convenience.
A space on a server for objects to occupy.
The Minecraft protocol version this library currently targets.
Minecraft’s standard ticks per second (TPS).
The name of the Minecraft version this library currently targets, e.g. “1.8.2”
Consumes the configuration and starts the server.
A discrete unit of time where 1 tick is the duration of a single game update.