ego | sdsl-lite | |
---|---|---|
1 | 5 | |
56 | 2,174 | |
- | - | |
4.0 | 0.0 | |
3 months ago | 11 months ago | |
OCaml | C++ | |
GNU General Public License v3.0 only | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ego
-
Ask HN: What are some 'cool' but obscure data structures you know about?
Shameless plug, I also maintain an OCaml implementation of egraphs (named ego) at https://github.com/verse-lab/ego
While the most popular implementation at the moment seems to be egg in Rust, I find that OCaml serves as a much more ergonomic environment for quickly prototyping out uses of egraphs in practice. As a bonus, ego also shares the same logical interface as egg itself, so once you've finalised your designs, you shouldn't have much trouble porting them to egg if you need the performance gains.
sdsl-lite
- SDSL – Succinct Data Structure Library
-
Ask HN: What are some 'cool' but obscure data structures you know about?
Succinct Data Structures [0] [1]. It encompass many different underlying data structure types but the overarching idea is that you want small data size while still keeping "big O" run time.
In other words, data structures that effectively reach a 'practical' entropy lower bound while still keeping asymptotic run time.
[0] https://en.wikipedia.org/wiki/Succinct_data_structure
[1] https://github.com/simongog/sdsl-lite
-
SDSL-RS: A Rust interface for the C++ Succinct Data Structure Library.
The book mentioned in another comment is probably the best way to go. But FYI, documentation for some data structures include references. An SDSL-lite example can be found here. And its equivalent in SDSL-RS can be found here.
What are some alternatives?
PSI - Private Set Intersection Cardinality protocol based on ECDH and Bloom Filters
plurid-data-structures-typescript - Utility Data Structures Implemented in TypeScript
us - An alternative interface to Sia
sdsl-lite - Succinct Data Structure Library 3.0
RVS_Generic_Swift_Toolbox - A Collection Of Various Swift Tools, Like Extensions and Utilities
minisketch - Minisketch: an optimized library for BCH-based set reconciliation
Folly - An open-source C++ library developed and used at Facebook.
dictomaton - Finite state dictionaries in Java
multiversion-concurrency-control - Implementation of multiversion concurrency control, Raft, Left Right concurrency Hashmaps and a multi consumer multi producer Ringbuffer, concurrent and parallel load-balanced loops, parallel actors implementation in Main.java, Actor2.java and a parallel interpreter
gring - Golang circular linked list with array backend
FusionCache - FusionCache is an easy to use, fast and robust cache with advanced resiliency features and an optional distributed 2nd level.
pyroscope - Continuous Profiling Platform. Debug performance issues down to a single line of code [Moved to: https://github.com/grafana/pyroscope]