minetest-protocol
Pure Rust implementation of the Minetest protocol.
Supported functionality:
- Serialization & deserialization of packets and commands
- Minetest commands as strongly-typed struct's and enums
- The peer protocol
- Channels
- Packet splitting & split packet reconstruction
- Reliable packet retries & ACK tracking
- peer_id tracking
This is a library and does not contain any programs. For an
example of how to use this library, see the minetest-shark crate.
Work in progress
-
Documentation is incomplete & unreviewed.
-
Protocol versioning not handled yet. Only the latest protocol version (41) is supported.
-
Only tested against minetest revision
2dafce6206dfcf02f3c31cf1abe819e901489704. May not work yet with 5.6.1 release. -
Some commands have extra nesting (e.g.
Wrapped16). These will be hidden by macros in the future. -
Reliable packet delivery transmission window size is fixed for now.
-
Non-reliable split reconstruction timeout not enabled yet.