[package]
name = "tinyklv"
version = "0.1.1"
authors = ["Arpad Voros <arpadav@gmail.com>"]
license = "MIT"
description = "The simplest Key-Length-Value (KLV) framework in Rust"
repository = "https://github.com/arpadav/tinyklv"
homepage = "https://arpadvoros.com/tinyklv"
documentation = "https://docs.rs/tinyklv"
readme = "README.md"
keywords = ["decode", "encode", "klv", "parsing", "tlv"]
categories = ["development-tools", "encoding", "parsing"]
edition = "2024"
rust-version = "1.95"
exclude = ["TODO.md", "book/", "examples", "tests"]
publish = true
[workspace]
members = ["impl"]
[[test]]
name = "codecs"
path = "tests/codecs/main.rs"
[[test]]
name = "derive"
path = "tests/derive/main.rs"
[[test]]
name = "edge_cases"
path = "tests/edge_cases/main.rs"
[[test]]
name = "proptest_roundtrip"
path = "tests/proptest_roundtrip/main.rs"
[dependencies]
ascii = { version = "1.1.0", optional = true }
chrono = { version = "0.4.44", optional = true }
memchr = "2.8.0"
num-traits = "0.2.19"
paste = "1.0.15"
tinyklv-impl = { path = "impl", version = "0.1.0" }
tracing = { version = "0.1.44", optional = true }
winnow = { version = "1.0.2", features = ["parser", "simd"] }
[dev-dependencies]
proptest = "1.11"
rand = "^0.10"
rand_distr = "^0.6"
tokio = { version = "^1.52", features = ["macros", "rt-multi-thread", "sync"] }
[features]
default = []
full = ["ascii", "chrono"]
tracing = ["dep:tracing", "tinyklv-impl/tracing"]
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ["cfg(kani)"] }
[profile.dev]
opt-level = 0
[profile.release]
opt-level = 3
strip = true
lto = true
panic = "abort"
codegen-units = 1