https://github.com/vorner/contrie
Concurrent hash trie
https://github.com/vorner/contrie
Last synced: 12 months ago
JSON representation
Concurrent hash trie
- Host: GitHub
- URL: https://github.com/vorner/contrie
- Owner: vorner
- License: apache-2.0
- Created: 2019-05-05T10:03:12.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2020-09-29T17:58:11.000Z (almost 6 years ago)
- Last Synced: 2025-03-05T16:40:53.670Z (over 1 year ago)
- Language: Rust
- Size: 190 KB
- Stars: 51
- Watchers: 4
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# ConTrie
[](https://travis-ci.org/vorner/contrie)
[](https://ci.appveyor.com/project/vorner/contrie/branch/master)
A concurrent hash-trie map & set.
Still in somewhat experimental state, large parts are missing and some API
changes are to be expected (though it'll probably still stay being a concurrent
map & set).
Inspired by this [article] and [Wikipedia entry], though simplified
significantly (at the cost of some features).
Read [the documentation](https://docs.rs/contrie) before using, there are some
quirks to be aware of.
## Practical performance & project status
It turns out the data structure is somewhat memory hungry and not performing
that well in practice. This, and my lack of time leads to this project being a
bit neglected.
That being said, it is possible the performance & memory consumption is due to
the simplifications (this always uses full nodes, the article compresses them to
contain only the relevant pointers) and if someone else wants to play with it
and improve the state of the project, I'll happily accept pull requests doing
so.
## License
Licensed under either of
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
at your option.
### Contribution
Unless you explicitly state otherwise, any contribution intentionally
submitted for inclusion in the work by you, as defined in the Apache-2.0
license, shall be dual licensed as above, without any additional terms
or conditions.
[article]: https://www.researchgate.net/publication/221643801_Concurrent_Tries_with_Efficient_Non-Blocking_Snapshots
[Wikipedia entry]: https://en.wikipedia.org/wiki/Ctrie