All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Faster insertions for non-concurrent trees by @lorlouis
- get_mut sometimes returns the wrong value by @lorlouis
0.14.0 - 2026-01-13
- Added the option to provide a
valuewhen deciding if it is necessary to split. This is useful for cases with customNodeimplementations where length is either not taken into account, or something else might be necessary such as e.g in-memory size. Change done by @Handy-caT
0.13.0 - 2026-01-12
- CDC Now relies on monotonic ids. Change done by @Handy-caT
0.12.7 - 2026-01-07
- Range with excluding start is not handled correctly: #42
0.12.6 - 2026-01-07
- Attempt to subtract with overflow with reverse iterator: #41
0.12.5 - 2026-01-05
iter_mutyielding an empty iterator after.revhaving been called: #43
0.12.4 - 2026-01-04
- Bumped
ftree's version
- Overflow/underflow with empty maps
0.12.3 - 2025-06-28
- A Bug with CDC.
0.12.2 - 2025-04-22
- A Bug that affects only the non-concurrent versions of the Tree.
- Made
range_idxpublic for BTreeSet and BTreeMap.
0.12.1 - 2025-04-21
- Range for all concurrent B-Trees was misbehaving in certain edge cases.
0.12.0 - 2025-04-15
- The BTree is now generic over the container.
0.11.3 - 2025-04-04
- capacity and node_count methods.
0.11.2 - 2025-03-08
- derive
CloneandDebugforChangeEvent
0.11.1 - 2025-03-06
crate::coreis now public
0.11.0 - 2025-03-03
remove_some_cdctoBTreeMultiMap
MultiPairhas a bijection toPair
0.10.4 - 2025-02-15
BTreeMap::getgetting the closest value instead of the exact value
0.10.3 - 2025-01-27
- Made
pair,node,multipairandconstantspublic
0.10.2 - 2025-01-11
- Improved the README.
0.10.1 - 2025-01-11
- Some edge cases in
concurrent::set::Range
0.10.0 - 2025-01-09
BTreeMultiMap, a concurrent BTree that allows multiple values per key.
0.9.0 - 2025-01-04
CDCAPI now does not return clones of Nodes anymore, instead returning where to insert and remove elements.
0.8.1 - 2025-01-03
- Add docs.rs coverage for opt-in feats
0.8.0 - 2024-12-29
- erroneously returning false even when insertion was correct in
concurrent::{set, map}.
rangemethod toconcurrent::map::BTreeMap
0.7.1 - 2024-12-27
concurrentfeature works withoutcdcbeing enabled.
0.7.0 - 2024-12-22
- CDC feature. If toggled on, returns the change events associated with the mutating operation.
with_maximum_node_sizemethod forBTreeSetandBTreeMap
0.6.1 - 2024-12-20
removemethod for concurrentBTreeSetandBTreeMapdoes not need a mutable reference.
0.6.0 - 2024-12-19
- A benchmark for concurrent implementations
- A new much faster partially lock free concurrent implementation
- Reorganized the library
0.5.0 - 2024-09-18
- Concurrent implementations
0.4.1 - 2024-08-19
- Inconsistent index after many duplicated items are inserted thanks to @michaelsutton
0.4.0 - 2024-05-24
- Implementations of
PartialEq,Eq,Ord,HashforBTreeSetandBTreeMap
- Bumped
ftreecrate
- Requirement for
Tto implementClone
0.3.8 - 2024-02-18
- Bumped
ftreecrate
0.3.7 - 2024-02-18
- Many overflows relating to range bounds thanks to @Cydhra
0.3.6 - 2023-08-12
- solved many clippy warnings
- added a custom binary search with fixed iteration bound
0.3.5 - 2023-07-17
- new
with_maximum_node_sizemethod forBTreeSetandBTreeMap
0.3.4 - 2023-07-14
- upgraded
ftreeto 1.0.0
0.3.3 - 2023-07-13
- normalized naming across the code
- exposed the
rankfunction inBTreeSetandBTreeMap
0.3.2 - 2023-07-12
- moved
FenwickTreeto another crate - simplified structure
0.3.1 - 2023-07-10
- reworked the internals of
insert - removed dead code
0.3.0 - 2023-07-10
lower_boundproviding initialCursorsupport forBTreeMap
0.2.0 - 2023-07-09
EntryAPI forBTreeMapserdefeature for deserialization ofBTreeSetandBTreeMap
0.1.0 - 2023-07-04
BTreeSetBTreeMap