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.


You can download the source directly from the Github repository or using npm:

npm install --save mnemonist



Low-level & structures for very specific use cases

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
cd mnemonist
npm install

# Linting
npm run lint

# Running the unit tests
npm test


The full changelog for the library can be found here.


This documentation has been built using Jekyll, using the Papyrus theme by @hugoferreira.