Skip to content

Releases: dfinity/stable-structures

v0.6.7

26 Nov 16:36
a6703c9
Compare
Choose a tag to compare

Overview

This release brings in significant performance improvements in various stable structures. There are also some small features included, like the addition of keys and values on StableBTreeMap as well as fix for StableVec.

What's Changed

  • feat: implement keys and values on StableBTreeMap by @hpeebles in #241
  • perf: Optimize how values are stored and handled by @frankdavid in #237
  • test: Add two new benchmarks for benchmarking situations where not every value is read by @frankdavid in #243
  • perf: Refactor the internal Value data structure and make some performance improvements by @frankdavid in #245
  • perf: Add inline hint to Ic0StableMemory methods by @frankdavid in #247
  • perf: Add new efficient APIs read_unsafe and read_to_vec by @frankdavid in #248
  • fix: Fix Vec Iter::count() after next_back() by @frankdavid in #250
  • chore: bump version to 0.6.7 by @dsarlis in #252

Full Changelog: v0.6.6...v0.6.7

v0.6.6

12 Nov 13:16
376db8d
Compare
Choose a tag to compare

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 into Iter by @hpeebles in #231
  • fix: Fix arg names in post-comment action by @frankdavid in #238
  • feat: implement DoubleEndedIterator for StableBTreeMap by @hpeebles in #235
  • chore: bump version to 0.6.6 by @dsarlis in #239

New Contributors

Full Changelog: v0.6.5...v0.6.6

v0.6.5

10 Jun 11:05
4b8e0bc
Compare
Choose a tag to compare

What's Changed

  • fix: grow memory when necessary in BaseVec::set. by @ielashi in #222

Full Changelog: v0.6.4...v0.6.5

v0.6.4

22 Apr 11:01
206fc04
Compare
Choose a tag to compare

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

04 Mar 14:27
3c9c2e7
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.6.2...v0.6.3

v0.6.2

25 Jan 08:19
da24d22
Compare
Choose a tag to compare

What's Changed

  • fix: vec should panic when trying to insert element > MAX_SIZE by @ielashi in #180

Full Changelog: v0.6.1...v0.6.2

v0.6.1

18 Dec 17:05
f610a3e
Compare
Choose a tag to compare

Changed

  • feat: impl DoubleEndedIterator for Vec by @hpeebles in #156
  • feat: impl Storable for ic_principal::Principal by @sesi200 in #163

Full Changelog: v0.6.0...v0.6.1

v0.6.0

13 Oct 10:13
f9483a1
Compare
Choose a tag to compare

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 and Node::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 into Storable 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

Full Changelog: v0.5.6...v0.6.0

v0.6.0-beta.2

05 Oct 09:56
ce317fb
Compare
Choose a tag to compare
v0.6.0-beta.2 Pre-release
Pre-release

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

Full Changelog: v0.6.0-beta.1...v0.6.0-beta.2

v0.6.0-beta.1

21 Sep 11:13
f0f716a
Compare
Choose a tag to compare
v0.6.0-beta.1 Pre-release
Pre-release

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