#packet #minecraft #protocols #light-weight

rust_mc_proto

lightweight minecraft protocol support in pure rust

20 releases

Uses new Rust 2024

new 0.1.19 May 1, 2025
0.1.18 Apr 28, 2025
0.1.17 Nov 14, 2024
0.1.16 Aug 22, 2024
0.1.8 May 24, 2024

#1092 in Network programming

Download history 1/week @ 2025-02-08 4/week @ 2025-02-15 2/week @ 2025-03-01 157/week @ 2025-04-26

157 downloads per month

Custom license

47KB
843 lines

rust_mc_proto

Lightweight minecraft packets protocol support in pure rust
Has compression (MinecraftConnection::set_compression)
This crate can be used for a server on rust idk -_-

Setup

rust_mc_proto = "0.1.19" # stable version
rust_mc_proto = { git = "https://git.meex.lol/MeexReay/rust_mc_proto" } # unstable version

Features:

  • atomic_clone - Atomic clone of MinecraftConnection

How to use

Example of receiving motd:

use rust_mc_proto::{DataReader, DataWriter, MCConnTcp, Packet, ProtocolError};

fn main() -> Result<(), ProtocolError> {
    let mut conn = MCConnTcp::connect("localhost:25565")?; // connecting

    conn.write_packet(&Packet::build(0x00, |packet| {
        packet.write_varint(765)?; // protocol_version
        packet.write_string("localhost")?; // server_address
        packet.write_unsigned_short(25565)?; // server_port
        packet.write_varint(1) // next_state
    })?)?; // handshake packet

    conn.write_packet(&Packet::empty(0x00))?; // status request packet

    Ok(println!("motd: {}", conn.read_packet()?.read_string()?)) // status response packet
}

More examples
Documentation

Contributing

If you would like to contribute to the project, feel free to fork the repository and submit a pull request.

License

This project is licensed under the WTFPL License

Dependencies

~565KB