https://github.com/raviqqe/hamt-rs
HAMT implementation whose sub-trees can be shared over threads
https://github.com/raviqqe/hamt-rs
arc hamt rust send sync
Last synced: about 1 year ago
JSON representation
HAMT implementation whose sub-trees can be shared over threads
- Host: GitHub
- URL: https://github.com/raviqqe/hamt-rs
- Owner: raviqqe
- License: mit
- Created: 2018-01-17T05:18:43.000Z (over 8 years ago)
- Default Branch: main
- Last Pushed: 2023-12-07T11:07:23.000Z (over 2 years ago)
- Last Synced: 2025-03-29T03:41:35.241Z (about 1 year ago)
- Topics: arc, hamt, rust, send, sync
- Language: Rust
- Homepage:
- Size: 115 KB
- Stars: 10
- Watchers: 3
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# hamt-rs
[](https://github.com/raviqqe/hamt-rs/actions?query=workflow%3Atest)
[](https://opensource.org/licenses/MIT)
HAMT implementation whose sub-trees can be shared over threads.
[Hash-Array Mapped Trie (HAMT)](https://en.wikipedia.org/wiki/Hash_array_mapped_trie)
is a data structure popular as a map (a.k.a. associative array or dictionary)
or set.
Its immutable variant is adopted widely by functional programming languages
like Scala and Clojure to implement immutable and memory-efficient associative
arrays and sets.
## Technical notes
The implementation normalizes tree structures of HAMTs by eliminating
intermediate nodes during delete operations as described
in [the CHAMP paper][champ].
## References
- [Ideal Hash Trees](https://infoscience.epfl.ch/record/64398/files/idealhashtrees.pdf)
- [Optimizing Hash-Array Mapped Tries for Fast and Lean Immutable JVM Collections][champ]
## License
[MIT](LICENSE)
[champ]: https://michael.steindorfer.name/publications/oopsla15.pdf