basalt_mc_protocol/lib.rs
1//! Minecraft packet definitions and version-aware packet registry.
2//!
3//! This crate defines all Minecraft protocol packets as Rust structs with
4//! derive-generated `Encode`/`Decode`/`EncodedSize` implementations. Packets
5//! are organized by connection state (Handshake, Status, Login, Configuration,
6//! Play) and direction (serverbound/clientbound).
7//!
8//! The `PacketRegistry` provides version-aware packet dispatching: given a
9//! protocol version, connection state, direction, and packet ID, it decodes
10//! the raw bytes into the correct typed enum variant.
11
12pub mod error;
13pub mod packets;
14pub mod registry;
15pub mod registry_data;
16pub mod state;
17pub mod types;
18pub mod version;
19
20pub use error::{Error, Result};
21pub use registry::PacketRegistry;
22pub use state::ConnectionState;
23pub use version::ProtocolVersion;
24
25#[cfg(test)]
26mod derive_tests;