Mnemonist is a curated collection of data structures for the JavaScript language.
It gathers classic data structures (think heap, trie etc.) as well as more exotic ones such as Buckhard-Keller trees etc.
It strives at being:
- As performant as possible for a high-level language.
- Completely modular (don't need to import the whole library just to use a simple heap).
- Simple & straightforward to use and consistent with JavaScript standard objects' API.
- Completely typed and comfortably usable with Typescript.
npm install --save mnemonist
Full documentation for the library can be found here.
Classics
Low-level & structures for very specific use cases
- Circular Buffer
- Fixed Deque
- Fibonacci Heap
- Fixed Reverse Heap
- Fixed Stack
- Hashed Array Tree
- Static DisjointSet
- SparseQueueSet
- SparseMap
- SparseSet
- Suffix Array
- Generalized Suffix Array
- Vector
Information retrieval & Natural language processing
Space & time indexation
Metric space indexation
Probabilistic & succinct data structures
Utility classes
Note that this list does not include a Graph
data structure, whose implementation is usually far too complex for the scope of this library.
However, we advise the reader to take a look at the graphology
library instead.
Don't find the data structure you need? Maybe we can work it out together.
Contributions are obviously welcome. Be sure to lint the code & add relevant unit tests.
# Installing
git clone git@github.com:Yomguithereal/mnemonist.git
cd mnemonist
npm install
# Linting
npm run lint
# Running the unit tests
npm test