[package]
edition = "2021"
name = "rustbinary"
version = "0.1.5"
authors = [
"blueokanna",
"HyphenTeam",
]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A bounded nextjson binary codec with adaptive frames, zero-allocation paths, schema evolution, and authenticated pipelines"
homepage = "https://github.com/blueokanna/RustBinary"
documentation = "https://docs.rs/rustbinary"
readme = "README.md"
keywords = [
"binary",
"serialization",
"rust",
"networking",
"middleware",
]
categories = [
"encoding",
"data-structures",
"network-programming",
]
license = "Apache-2.0"
repository = "https://github.com/blueokanna/RustBinary"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
adaptive = ["bit-packing"]
alloc = []
archive = [
"std",
"dep:memmap2",
"dep:rkyv",
]
bit-packing = []
cbor = ["std"]
compression = [
"std",
"dep:zstd",
]
default = ["std"]
derive = [
"dep:rustbinary-derive",
"nextjson/derive",
]
encryption = [
"std",
"dep:chacha20poly1305",
"dep:getrandom",
"dep:zeroize",
]
fingerprint = ["alloc"]
parallel = ["std"]
pipeline = [
"cbor",
"compression",
"encryption",
"parallel",
]
protocol = [
"adaptive",
"bit-packing",
"derive",
"fingerprint",
"reflection",
"schema-evolution",
"static-size",
]
reflection = []
schema-evolution = ["alloc"]
simd = ["std"]
static-size = []
std = [
"alloc",
"nextjson/std",
]
[lib]
name = "rustbinary"
path = "src/lib.rs"
[[example]]
name = "adaptive_zero_alloc"
path = "examples/adaptive_zero_alloc.rs"
required-features = ["adaptive"]
[[example]]
name = "complete"
path = "examples/complete.rs"
required-features = [
"adaptive",
"bit-packing",
"cbor",
"compression",
"derive",
"encryption",
"fingerprint",
"parallel",
"reflection",
"schema-evolution",
"simd",
"static-size",
]
[[example]]
name = "core_codec"
path = "examples/core_codec.rs"
[[example]]
name = "metadata"
path = "examples/metadata.rs"
required-features = [
"bit-packing",
"derive",
"fingerprint",
"reflection",
"static-size",
]
[[example]]
name = "mmap_archive"
path = "examples/mmap_archive.rs"
required-features = ["archive"]
[[example]]
name = "parallel_batch"
path = "examples/parallel_batch.rs"
required-features = ["parallel"]
[[example]]
name = "schema_evolution"
path = "examples/schema_evolution.rs"
required-features = ["schema-evolution"]
[[example]]
name = "secure_pipeline"
path = "examples/secure_pipeline.rs"
required-features = [
"cbor",
"compression",
"encryption",
]
[[example]]
name = "zero_copy"
path = "examples/zero_copy.rs"
[[test]]
name = "core_profiles"
path = "tests/core_profiles.rs"
[[test]]
name = "derive_profiles"
path = "tests/derive_profiles.rs"
[[test]]
name = "golden_vectors"
path = "tests/golden_vectors.rs"
[[test]]
name = "security_audit"
path = "tests/security_audit.rs"
[[bench]]
name = "codec_comparison"
path = "benches/codec_comparison.rs"
harness = false
[dependencies.chacha20poly1305]
version = "0.11"
features = ["alloc"]
optional = true
default-features = false
[dependencies.getrandom]
version = "0.4.3"
optional = true
[dependencies.memmap2]
version = "0.9.11"
optional = true
[dependencies.nextjson]
version = "0.1.3"
default-features = false
[dependencies.rkyv]
version = "0.8.18"
features = [
"bytecheck",
"little_endian",
"pointer_width_32",
"std",
]
optional = true
default-features = false
[dependencies.rustbinary-derive]
version = "0.1.4"
optional = true
[dependencies.zeroize]
version = "1.9.0"
optional = true
[dependencies.zstd]
version = "0.13.3"
optional = true
[dev-dependencies.nextjson]
version = "0.1"
[profile.release]
opt-level = 3
lto = "thin"
codegen-units = 1