Hi everyone,
We’ve just released stable-structures v0.7.0, a major update focused on significant performance improvements.
Note: This release introduces breaking changes to the public API ![]()
Highlights
- Faster
BTreeMap- Insert avoids cloning by using
into_bytes(breaking API)
- New lazy iterator improves scan performance (breaking API)

- Batched read/write of child nodes and faster traversal logic
- Insert avoids cloning by using
- Breaking API Changes
- Public methods now panic on unrecoverable failures instead of returning
Result
- Public methods now panic on unrecoverable failures instead of returning
- Better Benchmarks
- Expanded coverage: NNS, principal keys, I/O chunking
- Benchmarks show big wins: median −5.16%
, some scans −98% 
- Improved CI & Docs
- Colored CI logs, custom branches benchmarking, and clearer docs
Benchmark Summary (vs v0.6.7)
BTreeMap- 303 benchmarks: 24 regressed, 203 improved
- Worst regression: +13.6%

- Improvements: median −5.16%
, best up to −98% 
- I/O Chunks & NNS
- I/O reads and writes improved: worst -0%, median -49%
, best up to −83% 
- NNS voting benchmarks improved: worst -0%, median -21%
, best up to −52% 
- I/O reads and writes improved: worst -0%, median -49%
- More data here
Migration Guide
To upgrade to v0.7.0, fix any build errors by applying the following changes:
- Implement
into_bytesfor your types to support the updated API - Update iteration logic: instead of
(key, value)tuples, iterate overentryobjects and useentry.key()andentry.value()to lazily access data - Remove
.unwrap()where methods no longer returnResult— these now panic on misuse
Thanks to All Contributors
@maksymar, @ielashi — and everyone testing, benchmarking, and providing feedback!
Let us know how this version performs in your projects!