#hash-map #back-end #size #different #key #performance #space

halfbrown

Multi backend HashMap for higher performance on different key space sizes

25 releases

0.2.5 Mar 5, 2024
0.2.4 Jun 26, 2023
0.2.2 May 24, 2023
0.1.18 Dec 1, 2022
0.1.6 Jul 29, 2019

#79 in Algorithms

Download history 12808/week @ 2023-12-23 13574/week @ 2023-12-30 16399/week @ 2024-01-06 16756/week @ 2024-01-13 18824/week @ 2024-01-20 17879/week @ 2024-01-27 15872/week @ 2024-02-03 13045/week @ 2024-02-10 17715/week @ 2024-02-17 18813/week @ 2024-02-24 42158/week @ 2024-03-02 36571/week @ 2024-03-09 45141/week @ 2024-03-16 47169/week @ 2024-03-23 40279/week @ 2024-03-30 31620/week @ 2024-04-06

168,775 downloads per month
Used in 118 crates (9 directly)

Apache-2.0/MIT

125KB
2.5K SLoC

Halfbrown HashMap   Build Status Windows Build Status Latest Version

Hashmap implementation that dynamically switches from a vector based backend to a hashbrown based backend as the number of keys grows


Note: The heavy lifting in this is done in hashbrown, and the docs and API are copied from them.

Halfbrown, is a hashmap implementation that uses two backends to optimize for different cernairos:

VecMap

For less then 32 key value pairs it uses a dumb vector based map implementation. This trades the need to iterator through the vector for not having to hash strings on lookup or inserts.

Hashbrown

For more then 32 elements it upgrades the map to aq hashbrown base map to account for longer itteration times.

License

halfbrown itself is licensed under either of

at your option.

Code / docs copied from hashbrown are obviously licensed under their License.

Dependencies

~2MB
~26K SLoC