18 releases
| 0.8.1 | Oct 28, 2025 |
|---|---|
| 0.8.0 | May 7, 2025 |
| 0.7.5 | Feb 26, 2025 |
| 0.7.4 | Nov 23, 2024 |
| 0.1.1 | Mar 4, 2021 |
#19 in Data structures
18,352,373 downloads per month
Used in 41,114 crates
(35 directly)
140KB
2.5K
SLoC
litemap 
litemap
litemap is a crate providing LiteMap, a highly simplistic "flat" key-value map
based off of a single sorted vector.
The main goal of this crate is to provide a map that is good enough for small
sizes, and does not carry the binary size impact of HashMap
or BTreeMap.
If binary size is not a concern, std::collections::BTreeMap may be a better choice
for your use case. It behaves very similarly to LiteMap for less than 12 elements,
and upgrades itself gracefully for larger inputs.
Performance characteristics
LiteMap is a data structure with similar characteristics as std::collections::BTreeMap but
with slightly different trade-offs as it's implemented on top of a flat storage (e.g. Vec).
LiteMapiteration is generally faster thanBTreeMapbecause of the flat storage.LiteMapcan be pre-allocated whereasBTreeMapcan't.LiteMaphas a smaller memory footprint thanBTreeMapfor small collections (< 20 items).- Lookup is
O(log(n))likeBTreeMap. - Insertion is generally
O(n), but optimized toO(1)if the new item sorts greater than the current items. InBTreeMapit'sO(log(n)). - Deletion is
O(n)whereasBTreeMapisO(log(n)). - Bulk operations like
from_iter,extendand deserialization have an optimizedO(n)path for inputs that are ordered andO(n*log(n))complexity otherwise.
Pluggable Backends
By default, LiteMap is backed by a Vec; however, it can be backed by any appropriate
random-access data store, giving that data store a map-like interface. See the store
module for more details.
Const construction
LiteMap supports const construction from any store that is const-constructible, such as a
static slice, via [LiteMap::from_sorted_store_unchecked()]. This also makes LiteMap
suitable for use with databake. See impl Bake for LiteMap for more details.
More Information
For more information on development, authorship, contributing etc. please visit ICU4X home page.
Dependencies
~140KB