Releases: dfinity/stable-structures
v0.6.6
Overview
This release adds the ability to iterate backwards in a StableBTreeMap. Additionally includes some other small changes, like bumping some dependency versions and fixing a problem with posting the comment about benchmarks on PRs.
What's Changed
- chore(deps): bump dawidd6/action-download-artifact from 3.1.4 to 6 by @dependabot in #225
- chore: upgrade canbench from 0.1.1 to 0.1.7 by @ielashi in #232
- chore(deps): bump thollander/actions-comment-pull-request from 2 to 3 by @dependabot in #230
- feat: move initialization of
StableBTreeMap
cursors intoIter
by @hpeebles in #231 - fix: Fix arg names in post-comment action by @frankdavid in #238
- feat: implement
DoubleEndedIterator
forStableBTreeMap
by @hpeebles in #235 - chore: bump version to 0.6.6 by @dsarlis in #239
New Contributors
- @frankdavid made their first contribution in #238
Full Changelog: v0.6.5...v0.6.6
v0.6.5
v0.6.4
Overview
This new release addresses a minor memory issue in BTreeMap
and expands its support for tuples.
What's Changed
- feat: Implement Storable for three elements tuples by @dragoljub-duric in #202
- feat: Implement into_memory for memory manager by @bitdivine in #188
- fix: BTreeMap memory issue when deallocating nodes with overflows by @ielashi in #212
Full Changelog: v0.6.3...v0.6.4
v0.6.3
What's Changed
- docs: remove outdated precondition by @ielashi in #184
- feat: implement
storable
forbool
by @linnefromice in #186 - chore: Upgrade Rust version by @dragoljub-duric in #193
- perf: Add benchmarks for BtreeMap::Iterator::count() by @dragoljub-duric in #191
- feat: use canbench for benchmarks by @ielashi in #194
- perf: BTreeMap: make
range().count()
more efficient by @dragoljub-duric in #190 - chore: Reimplement BTreeMap::clear() to not consume self by @dragoljub-duric in #198
New Contributors
- @linnefromice made their first contribution in #186
Full Changelog: v0.6.2...v0.6.3
v0.6.2
v0.6.1
v0.6.0
Summary
This release includes a major upgrade to BTreeMap
to allow it to store unbounded types.
An example showcasing the new BTreeMap functionality can be found here.
What's Changed
- chore: update CHANGELOG.md by @ielashi in #102
- test:
Node::load
andNode::save
by @ielashi in #107 - chore: fix minor error in docs by @ielashi in #112
- test: improve test coverage of
BTreeMap::Node
by @ielashi in #113 - chore: merge
BoundedStorable
intoStorable
by @ielashi in #94 - feat: v2 of
BTreeMap::Node
to support unbounded types. by @ielashi in #114 - feat: BTreeMap V2 (beta) by @ielashi in #115
- feat: add basic profiling to benchmarks by @ielashi in #116
- perf: make BTreeMap V2 2-4x more officient by @ielashi in #118
- fix: memory leak in BTreeMap V2 by @ielashi in #119
- perf: set page size when keys and values are bounded by @ielashi in #120
- feat: introduce new benchmarking script by @ielashi in #121
- perf: do not store key size in BTreeMap if size is fixed. by @ielashi in #122
- perf: update BTreeMap v2 default page size from 500 bytes to 1024 bytes by @ielashi in #123
- feat: prepare beta release + add example for BTreeMap v2 by @ielashi in #124
- perf: reduce storage requirements for bounded btreemaps by ~25%. by @ielashi in #130
- feat(log): add an iterator over thread-local log by @roman-kashitsyn in #132
- perf: [BTreeMap V2] avoid allocating large buffer on save. by @ielashi in #131
- refactor: determine node version automatically on load by @ielashi in #133
- feat: add additional assertions to the
Storable
trait. by @ielashi in #136 - feat: make BTreeMap V2 the default and automatically migrate V1 maps. by @ielashi in #135
- feat: expose helper methods for extracting bounds by @ielashi in #138
- refactor: rewrite BTreeMap proptests using
test_strategy
. by @ielashi in #139 - chore: new beta release by @ielashi in #137
- feat: Improve Error Handling by Adding Display Implementations by @b3hr4d in #140
- feat: Enhance Bound Enum with Utility Methods and Refactor Storable Trait by @b3hr4d in #142
- chore: remove unused error struct by @ielashi in #141
- feat: impl Storable for Option<T: Storable> by @witter-deland in #127
- feat: comprehensive fuzzing for BTreeMap by @ielashi in #143
- chore: remove redundant utility methods by @ielashi in #144
- docs: add docs on how to upgrade the schema of stable structures by @ielashi in #146
- fix: support for migrating from bounded type to unbounded type. by @ielashi in #148
- test: add 'range' operation to btree comprehensive test by @ielashi in #149
- feat: impl pop_last() & pop_first() for BTreeMap by @witter-deland in #150
- chore: bump beta release version by @ielashi in #147
- chore: release 0.6.0 by @ielashi in #152
New Contributors
- @b3hr4d made their first contribution in #140
- @witter-deland made their first contribution in #127
Full Changelog: v0.5.6...v0.6.0
v0.6.0-beta.2
What's Changed
- feat: Improve Error Handling by Adding Display Implementations by @b3hr4d in #140
- feat: Enhance Bound Enum with Utility Methods and Refactor Storable Trait by @b3hr4d in #142
- chore: remove unused error struct by @ielashi in #141
- feat: impl Storable for Option<T: Storable> by @witter-deland in #127
- feat: comprehensive fuzzing for BTreeMap by @ielashi in #143
- chore: remove redundant utility methods by @ielashi in #144
- docs: add docs on how to upgrade the schema of stable structures by @ielashi in #146
- fix: support for migrating from bounded type to unbounded type. by @ielashi in #148
- test: add 'range' operation to btree comprehensive test by @ielashi in #149
- feat: impl pop_last() & pop_first() for BTreeMap by @witter-deland in #150
- chore: bump beta release version by @ielashi in #147
New Contributors
- @b3hr4d made their first contribution in #140
- @witter-deland made their first contribution in #127
Full Changelog: v0.6.0-beta.1...v0.6.0-beta.2
v0.6.0-beta.1
Summary
This beta release contains performance enhancements to BTreeMap V2. It also makes BTreeMap V2 the default implementation, automatically migrating V1 BTreeMaps to V2.
Change Log
- perf: reduce storage requirements for bounded btreemaps by ~25%. by @ielashi in #130
- feat(log): add an iterator over thread-local log by @roman-kashitsyn in #132
- perf: [BTreeMap V2] avoid allocating large buffer on save. by @ielashi in #131
- refactor: determine node version automatically on load by @ielashi in #133
- feat: add additional assertions to the
Storable
trait. by @ielashi in #136 - feat: make BTreeMap V2 the default and automatically migrate V1 maps. by @ielashi in #135
- feat: expose helper methods for extracting bounds by @ielashi in #138
- refactor: rewrite BTreeMap proptests using
test_strategy
. by @ielashi in #139 - chore: new beta release by @ielashi in #137
Full Changelog: v0.6.0-beta.0...v0.6.0-beta.1
v0.6.0-beta.0
This is a beta release that features an early preview of BTreeMap V2, a btree that supports unbounded keys and values. An example showcasing the BTreeMap V2 functionality can be found here.
What's Changed
- chore: update CHANGELOG.md by @ielashi in #102
- test:
Node::load
andNode::save
by @ielashi in #107 - chore: fix minor error in docs by @ielashi in #112
- test: improve test coverage of
BTreeMap::Node
by @ielashi in #113 - chore: merge
BoundedStorable
intoStorable
by @ielashi in #94 - feat: v2 of
BTreeMap::Node
to support unbounded types. by @ielashi in #114 - feat: BTreeMap V2 (beta) by @ielashi in #115
- feat: add basic profiling to benchmarks by @ielashi in #116
- perf: make BTreeMap V2 2-4x more officient by @ielashi in #118
- fix: memory leak in BTreeMap V2 by @ielashi in #119
- perf: set page size when keys and values are bounded by @ielashi in #120
- feat: introduce new benchmarking script by @ielashi in #121
- perf: do not store key size in BTreeMap if size is fixed. by @ielashi in #122
- perf: update BTreeMap v2 default page size from 500 bytes to 1024 bytes by @ielashi in #123
- feat: prepare beta release + add example for BTreeMap v2 by @ielashi in #124
Full Changelog: v0.5.6...v0.6.0-beta.0