Benchmarking & comparison: - Add criterion benchmarks (ucobs vs cobs 0.3 vs corncobs 0.1) - Add Python cobs benchmark script - Add performance comparison section to README with full results Performance: - Rewrite encode to scan-and-bulk-copy via copy_from_slice - Rewrite decode to bulk-copy via copy_from_slice - ~2-4x throughput improvement; now matches corncobs on most workloads Quality hardening: - Add #![forbid(unsafe_code)], #![warn(missing_docs)], #[must_use] - Add [lints.rust] unsafe_code = "forbid" in Cargo.toml - Add rust-version (MSRV) = "1.56" - Add docs.rs metadata - 106 tests: 80 unit/corpus + 25 property tests (25k cases each = 625k total) - External test vectors from: Wikipedia, Cheshire & Baker paper, nanocobs, cobs-c, cobs2-rs, Jacques Fortier, Python cobs package - Add fuzz_small_dest fuzz target (encode/decode with undersized buffers) - Improve doc examples to show sentinel append/strip convention Infrastructure: - Add justfile with test (nextest), check, bench, fuzz, miri, fmt targets - cargo-nextest for parallel test execution - Update .gitignore for Python cache files Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
33 lines
484 B
TOML
33 lines
484 B
TOML
[package]
|
|
name = "ucobs-fuzz"
|
|
version = "0.0.0"
|
|
publish = false
|
|
edition = "2021"
|
|
|
|
[workspace]
|
|
|
|
[package.metadata]
|
|
cargo-fuzz = true
|
|
|
|
[dependencies]
|
|
libfuzzer-sys = "0.4"
|
|
ucobs = { path = ".." }
|
|
|
|
[[bin]]
|
|
name = "fuzz_decode"
|
|
path = "fuzz_targets/fuzz_decode.rs"
|
|
test = false
|
|
doc = false
|
|
|
|
[[bin]]
|
|
name = "fuzz_roundtrip"
|
|
path = "fuzz_targets/fuzz_roundtrip.rs"
|
|
test = false
|
|
doc = false
|
|
|
|
[[bin]]
|
|
name = "fuzz_small_dest"
|
|
path = "fuzz_targets/fuzz_small_dest.rs"
|
|
test = false
|
|
doc = false
|