#btree-map #b-tree #collection #experiment #insert #memory #allocate

btree_experiment

Crate implements a BTreeMap similar to std::collections::BTreeMap

97 releases

new 0.1.100 May 10, 2024
0.1.99 May 10, 2024
0.1.91 Apr 29, 2024
0.1.39 Mar 31, 2024

#98 in Memory management

Download history 400/week @ 2024-03-17 1494/week @ 2024-03-24 2775/week @ 2024-03-31 1658/week @ 2024-04-07 1431/week @ 2024-04-14 719/week @ 2024-04-21 879/week @ 2024-04-28 962/week @ 2024-05-05

4,291 downloads per month
Used in 2 crates (via rustdb)

MIT/Apache

175KB
5K SLoC

This crate implements a BTreeMap similar to std::collections::BTreeMap.

The standard BtreeMap can use up to twice as much memory as required, this BTreeMap only allocates what is needed ( or a little more to avoid allocating too often ), so memory use can be up to 50% less.

Example

    use btree_experiment::BTreeMap;
    let mut mymap = BTreeMap::new();
    mymap.insert("England", "London");
    mymap.insert("France", "Paris");
    println!("The capital of France is {}", mymap["France"]);

Features

This crate supports the following cargo features:

  • serde : enables serialisation of BTreeMap via serde crate.
  • unsafe-optim : uses unsafe code for extra optimisation.

Dependencies

~235KB