**
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
- Finite Stack
- Hashed Array Tree
- Static DisjointSet
- 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