A Rust HAMT implementation
Andrew Thai, David Lee, Peter Zhao
Implement a Hamt, a trie data structure, in Rust. A HAMT is a hash array mapped trie; HAMTs are often used in functional programming languages (e.g. Clojure, Haskell).
- Learn Rust, a modern systems programming language.
- Learn about Hamts.
- Implement a non-trivial tree data structure that uses hashing in Rust.
A compiling Rust repository containing
- Hamt implementation
- Writeup describing core concepts and implementation details
- Readme explaining usage
- Tests
- Learn Rust (Rust Book)
- Describe and understand Hamt interface, algorithms, and API
- Implement Hamt
- Testing
- Correctness tests: Does Hamt behave as expected and satisfy key features?
- Test API operations
- Atomicity, Linearizability, lock-freedom
- Performance tests: If time permits, compare against another Rust implementation
- NOTE: We will not be using this for reference until we have completed our implementation
- Correctness tests: Does Hamt behave as expected and satisfy key features?
- Writeup (short)
- Explain algorithm
- Describe key aspects of our implementation + simplifications we make
- Testing results + performance
- ???
- Profit!
- 5/8 - Meet to discuss what we've read
- 5/9 - Learn Rust + Read Papers
- 5/19 - Implementation
- 5/23 - Submission