ucobs 0.2.0

μCOBS — Consistent Overhead Byte Stuffing. no_std, zero-alloc, fastest, most-tested COBS implementation.
Documentation
# μCOBS development tasks

# default: list all recipes
default:
    @just --list

# run ALL quality gates (tests, clippy, fmt check, doc, fuzz, miri)
test: test-unit test-clippy test-fmt test-doc test-fuzz test-miri

# quick compile check (no tests)
check:
    cargo check

# unit + integration + proptest tests (via nextest for parallelism)
test-unit:
    cargo nextest run
    cargo test --doc

# clippy with all warnings as errors
test-clippy:
    cargo clippy -- -D warnings

# check formatting
test-fmt:
    cargo fmt -- --check

# doc build (catches broken doc links)
test-doc:
    cargo doc --no-deps

# fuzz all targets (60s each, requires nightly + cargo-fuzz)
test-fuzz:
    cd fuzz && cargo +nightly fuzz run fuzz_decode -- -max_total_time=60
    cd fuzz && cargo +nightly fuzz run fuzz_roundtrip -- -max_total_time=60
    cd fuzz && cargo +nightly fuzz run fuzz_small_dest -- -max_total_time=60

# run tests under miri (catches UB, requires nightly + miri component)
# proptest is excluded — its file-persistence layer calls getcwd which miri does not support
test-miri:
    cargo +nightly miri test -- --skip proptests

# run criterion benchmarks (ucobs vs cobs vs corncobs)
bench:
    cargo bench

# run python cobs benchmarks (requires: pip install cobs)
bench-python:
    python3 bench_python.py

# run all benchmarks (rust + python)
bench-all: bench bench-python

# format code
fmt:
    cargo fmt

# build in release mode
build:
    cargo build --release

# clean all build artifacts
clean:
    cargo clean
    rm -rf fuzz/target fuzz/corpus fuzz/artifacts