Curated collection of data structures for the JavaScript language.
Mnemonist is a collection of data structures implemented in JavaScript.
It gathers classic data structures (think heap, trie etc.) as well as more exotic ones such as Burkhard-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.
Installation
You can download the source directly from the Github repository or using npm:
npm install --save mnemonist
Documentation
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.
Contribution
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
Changelog
The full changelog for the library can be found here.
About
This documentation has been built using Jekyll, using the Papyrus theme by @hugoferreira.
License
MIT