mc_protocol 2.1.1

Rust implementation of Minecraft Java Edition protocol primitives: serialization, packet framing, encryption, and compression
Documentation
[package]
name = "mc_protocol"
version = "2.1.1"
edition = "2021"
authors = ["kauri-off"]
description = "Rust implementation of Minecraft Java Edition protocol primitives: serialization, packet framing, encryption, and compression"
license = "MIT"
repository = "https://github.com/kauri-off/mc_protocol"
keywords = ["minecraft", "protocol", "networking", "varint", "encryption"]
categories = ["network-programming", "encoding", "game-development"]

[package.metadata.docs.rs]
all-features = true

[features]
default = ["async", "compression"]
# Enable async I/O via tokio
async = ["dep:tokio"]
# Enable AES-128-CFB8 encryption support
encryption = ["dep:openssl"]
# Enable zlib packet compression support
compression = ["dep:flate2"]

[dependencies]
thiserror = "2.0.18"
uuid = { version = "1.23.1", features = ["v4"] }

tokio = { version = "1.52.1", features = ["full"], optional = true }
openssl = { version = "0.10.78", optional = true }
flate2 = { version = "1.1.9", optional = true }

mc_protocol_derive = { path = "./mc_protocol_derive", version = "2.0.1" }

[target.'cfg(windows)'.dependencies]
openssl = { version = "0.10.78", features = ["vendored"], optional = true }

[dev-dependencies]
tokio = { version = "1.52.1", features = ["full"] }

[[test]]
name = "varint"
path = "tests/varint.rs"

[[test]]
name = "varlong"
path = "tests/varlong.rs"

[[test]]
name = "types"
path = "tests/types.rs"

[[test]]
name = "packet"
path = "tests/packet.rs"

[[test]]
name = "encryption"
path = "tests/encryption.rs"
required-features = ["encryption"]

[[test]]
name = "compression"
path = "tests/compression.rs"
required-features = ["compression"]