- Require Rust 1.98.0+ and upgrade the solana feature to Solana v4 and Agave 4.2 (breaking changes).
- Add solana-primitives and solana-types features for lightweight Solana integrations.
- Add bounded reconstruction of legacy, v0, and v1 Solana transactions, plus versioned canonical and dictionary-backed semantic LZ4 entry-batch codecs.
- Add decode_exact and decode_exact_ext to reject trailing bytes, and decode_exact_with_limits to cap input, collection sizes, and allocation.
- Add Error::DecodeLimitExceeded and Error::TrailingData; downstream exhaustive matches must handle both variants.
- Reject oversized and non-canonical native varints while preserving support for canonical 1.x encodings.
- Add configurable diff policies, cache limits, and frame-skipping APIs. Raw XOR mode 3 requires explicit opt-in; default diff modes 0 through 2 remain unchanged.
- Add opt-in unsigned LEB128 dedupe IDs and fix dedupe references across mixed value types.
- Reduce copies and allocations through borrowed dedupe decoding, in-place diff updates, and reusable Solana buffers.
- Retune byte and string compression with a higher size threshold and faster Zstd settings. Encoded bytes may differ, but the existing flagged wire format remains supported.
- Harden short-read handling, allocation arithmetic, and LZ4 expansion limits; reject concatenated or trailing Zstd frames.
- Fix buffered varint compilation on big-endian targets.
- Require ruint 1.20.0+ and update the release lockfile to patched crossbeam-epoch 0.9.20.
Full Changelog: v1.2.1...v2.0.0