https://github.com/vic-lsh/rsds
Some concurrent rust data structrues.
https://github.com/vic-lsh/rsds
Last synced: 2 months ago
JSON representation
Some concurrent rust data structrues.
- Host: GitHub
- URL: https://github.com/vic-lsh/rsds
- Owner: vic-lsh
- Created: 2022-06-27T01:34:15.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-12-21T21:57:29.000Z (over 2 years ago)
- Last Synced: 2025-01-25T13:07:35.343Z (4 months ago)
- Language: Rust
- Homepage:
- Size: 114 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# rsds
Some concurrent rust data structures.
This is a (slow but ongoing) effort to port data structures in
[The Art of Multiprocessor Programming](https://www.amazon.com/Art-Multiprocessor-Programming-Revised-Reprint/dp/0123973376)
to Rust. `rsds` follows the book's Java implementations in spirit, but the
implementations could differ significantly because of how Rust works.## Roadmap
- LinkedLists (ch. 9)
- [x] `CoarseList` (implemented as `CoarseSet`)
- [x] `FineGrainedList` (implemented as `FineGrainedSet`)
- [ ] `OptimisticList`
- [ ] `LazyList`
- [ ] `LockFreeList`
- Queues (ch. 10)
- [ ] `BoundedQueue` (a bounded, partial queue)
- [ ] `UnboundedQueue` (an unbounded, total queue)
- [ ] `LockFreeQueue` (a lock-free, unbounded queue)
- [ ] `SynchronousDualQueue` (a dual data structure)
- Stacks (ch. 11)
- [ ] `LockFreeStack`
- [ ] `EliminationBackoffStack`
- HashMaps (related to ch. 13 on HashSets)
- Closed addressing
- [x] `CoarseHashSet` (implemented as `CoarseMap`)
- [x] `StripedHashSet` (implemented as `StripedMap`)
- [ ] `RefinableHashSet`
- [ ] `LockFreeHashSet` (recursive split-ordering)
- Open addressing
- [ ] `PhasedCuckooHashSet`
- [ ] `StripedCuckooHashSet`
- [ ] `RefinableCuckooHashSet`
- SkipLists (ch. 14)
- [ ] `LazySkipList`
- [ ] `LockFreeSkipList`