rustbinary 0.1.5-alpha.1

A bounded nextjson binary codec with adaptive frames, zero-allocation paths, schema evolution, and authenticated pipelines
Documentation
[workspace]
members = ["rustbinary-derive"]
resolver = "2"

[package]
name = "rustbinary"
version = "0.1.5-alpha.1"
edition = "2021"
authors = ["blueokanna", "HyphenTeam"]
keywords = ["binary", "serialization", "rust", "networking"]
categories = ["encoding", "data-structures", "network-programming"]
license = "Apache-2.0"
readme = "README.md"
homepage = "https://github.com/blueokanna/RustBinary"
repository = "https://github.com/blueokanna/RustBinary"
documentation = "https://docs.rs/rustbinary"
description = "A bounded nextjson binary codec with adaptive frames, zero-allocation paths, schema evolution, and authenticated pipelines"

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

[profile.release]
# The codec is a monomorphized generic hot path; link-time optimization and a
# single codegen unit meaningfully improve release and bench throughput.
lto = "thin"
codegen-units = 1
opt-level = 3

[features]
default = ["std"]
alloc = []
std = ["alloc", "nextjson/std"]
# Product-layer bundles. Individual capabilities remain independently selectable.
protocol = [
    "adaptive",
    "bit-packing",
    "derive",
    "fingerprint",
    "reflection",
    "schema-evolution",
    "static-size",
]
pipeline = ["cbor", "compression", "encryption", "parallel"]
archive = ["std", "dep:memmap2", "dep:rkyv"]
derive = ["dep:rustbinary-derive", "nextjson/derive"]
fingerprint = ["alloc"]
reflection = []
static-size = []
cbor = ["std"]
compression = ["std", "dep:zstd"]
encryption = ["std", "dep:chacha20poly1305", "dep:getrandom", "dep:zeroize"]
bit-packing = []
adaptive = ["bit-packing"]
parallel = ["std"]
schema-evolution = ["alloc"]
simd = ["std"]

[[example]]
name = "complete"
required-features = [
    "adaptive",
    "bit-packing",
    "cbor",
    "compression",
    "derive",
    "encryption",
    "fingerprint",
    "parallel",
    "reflection",
    "schema-evolution",
    "simd",
    "static-size",
]

[[example]]
name = "adaptive_zero_alloc"
required-features = ["adaptive"]

[[example]]
name = "secure_pipeline"
required-features = ["cbor", "compression", "encryption"]

[[example]]
name = "schema_evolution"
required-features = ["schema-evolution"]

[[example]]
name = "parallel_batch"
required-features = ["parallel"]

[[example]]
name = "metadata"
required-features = [
    "bit-packing",
    "derive",
    "fingerprint",
    "reflection",
    "static-size",
]

[[example]]
name = "mmap_archive"
required-features = ["archive"]

[dependencies]
nextjson = { version = "0.1.2", default-features = false }
rustbinary-derive = { version = "0.1.4", path = "rustbinary-derive", optional = true }
zstd = { version = "0.13.3", optional = true }
chacha20poly1305 = { version = "0.11", optional = true, default-features = false, features = [
    "alloc",
] }
getrandom = { version = "0.4.3", optional = true }
zeroize = { version = "1.9.0", optional = true }
memmap2 = { version = "0.9.11", optional = true }
rkyv = { version = "0.8.18", optional = true, default-features = false, features = [
    "bytecheck",
    "little_endian",
    "pointer_width_32",
    "std",
] }

[dev-dependencies]
nextjson = { version = "0.1" }

[[bench]]
name = "codec_comparison"
harness = false