wire-codec 1.0.0

Binary frame codec and protocol codec toolkit. Length-prefixed, delimiter-based, and custom framing strategies. Built-in varint, zigzag, bitfield, and packed struct encoding. Runtime-agnostic foundation under network-protocol crates.
Documentation
[package]
name = "wire-codec"
version = "1.0.0"
edition = "2021"
rust-version = "1.75"
readme = "README.md"
license = "Apache-2.0 OR MIT"

authors = [
    "James Gober <me@jamesgober.com>"
]

description = "Binary frame codec and protocol codec toolkit. Length-prefixed, delimiter-based, and custom framing strategies. Built-in varint, zigzag, bitfield, and packed struct encoding. Runtime-agnostic foundation under network-protocol crates."

keywords = [
    "codec",
    "framing",
    "varint",
    "wire",
    "rust"
]

categories = [
    "encoding",
    "network-programming"
]

documentation = "https://docs.rs/wire-codec"
repository    = "https://github.com/jamesgober/wire-codec"
homepage      = "https://github.com/jamesgober/wire-codec"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[lib]
name = "wire_codec"
path = "src/lib.rs"

[features]
default = ["std"]
std = []

[dependencies]

[dev-dependencies]
# Pinned below 1.6 so the bench/test build resolves on MSRV 1.75.
# proptest 1.6+ raises its own MSRV via transitive dependencies.
proptest = { version = ">=1, <1.6", default-features = false, features = ["std"] }

[[bench]]
name = "codec"
harness = false
path = "benches/codec.rs"

[[bench]]
name = "framing"
harness = false
path = "benches/framing.rs"

[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
strip = "symbols"

[profile.bench]
opt-level = 3
lto = "fat"
codegen-units = 1
debug = true