Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Yomguithereal/mnemonist
Curated collection of data structures for the JavaScript/TypeScript language.
https://github.com/Yomguithereal/mnemonist
data-structure
Last synced: about 2 months ago
JSON representation
Curated collection of data structures for the JavaScript/TypeScript language.
- Host: GitHub
- URL: https://github.com/Yomguithereal/mnemonist
- Owner: Yomguithereal
- License: mit
- Created: 2016-10-22T15:53:07.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-02-06T13:06:13.000Z (10 months ago)
- Last Synced: 2024-10-14T10:04:30.159Z (2 months ago)
- Topics: data-structure
- Language: JavaScript
- Homepage: https://yomguithereal.github.io/mnemonist
- Size: 2.56 MB
- Stars: 2,266
- Watchers: 22
- Forks: 92
- Open Issues: 71
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE.txt
Awesome Lists containing this project
- awesome - Yomguithereal/mnemonist - Curated collection of data structures for the JavaScript/TypeScript language. (JavaScript)
README
[![Build Status](https://github.com/Yomguithereal/mnemonist/actions/workflows/tests.yml/badge.svg)](https://github.com/Yomguithereal/mnemonist/actions)
# Mnemonist
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.## Installation
```
npm install --save mnemonist
```## Documentation
Full documentation for the library can be found [here](https://yomguithereal.github.io/mnemonist).
**Classics**
* [Heap](https://yomguithereal.github.io/mnemonist/heap)
* [Linked List](https://yomguithereal.github.io/mnemonist/linked-list)
* [LRUCache](https://yomguithereal.github.io/mnemonist/lru-cache), [LRUMap](https://yomguithereal.github.io/mnemonist/lru-map)
* [MultiMap](https://yomguithereal.github.io/mnemonist/multi-map)
* [MultiSet](https://yomguithereal.github.io/mnemonist/multi-set)
* [Queue](https://yomguithereal.github.io/mnemonist/queue)
* [Set (helpers)](https://yomguithereal.github.io/mnemonist/set)
* [Stack](https://yomguithereal.github.io/mnemonist/stack)
* [Trie](https://yomguithereal.github.io/mnemonist/trie)
* [TrieMap](https://yomguithereal.github.io/mnemonist/trie-map)**Low-level & structures for very specific use cases**
* [Circular Buffer](https://yomguithereal.github.io/mnemonist/circular-buffer)
* [Fixed Deque](https://yomguithereal.github.io/mnemonist/fixed-deque)
* [Fibonacci Heap](https://yomguithereal.github.io/mnemonist/fibonacci-heap)
* [Fixed Reverse Heap](https://yomguithereal.github.io/mnemonist/fixed-reverse-heap)
* [Fixed Stack](https://yomguithereal.github.io/mnemonist/fixed-stack)
* [Hashed Array Tree](https://yomguithereal.github.io/mnemonist/hashed-array-tree)
* [Static DisjointSet](https://yomguithereal.github.io/mnemonist/static-disjoint-set)
* [SparseQueueSet](https://yomguithereal.github.io/mnemonist/sparse-queue-set)
* [SparseMap](https://yomguithereal.github.io/mnemonist/sparse-map)
* [SparseSet](https://yomguithereal.github.io/mnemonist/sparse-set)
* [Suffix Array](https://yomguithereal.github.io/mnemonist/suffix-array)
* [Generalized Suffix Array](https://yomguithereal.github.io/mnemonist/generalized-suffix-array)
* [Vector](https://yomguithereal.github.io/mnemonist/vector)**Information retrieval & Natural language processing**
* [Fuzzy Map](https://yomguithereal.github.io/mnemonist/fuzzy-map)
* [Fuzzy MultiMap](https://yomguithereal.github.io/mnemonist/fuzzy-multi-map)
* [Inverted Index](https://yomguithereal.github.io/mnemonist/inverted-index)
* [Passjoin Index](https://yomguithereal.github.io/mnemonist/passjoin-index)
* [SymSpell](https://yomguithereal.github.io/mnemonist/symspell)**Space & time indexation**
* [Static IntervalTree](https://yomguithereal.github.io/mnemonist/static-interval-tree)
* [KD-Tree](https://yomguithereal.github.io/mnemonist/kd-tree)**Metric space indexation**
* [Burkhard-Keller Tree](https://yomguithereal.github.io/mnemonist/bk-tree)
* [Vantage Point Tree](https://yomguithereal.github.io/mnemonist/vp-tree)**Probabilistic & succinct data structures**
* [BitSet](https://yomguithereal.github.io/mnemonist/bit-set)
* [BitVector](https://yomguithereal.github.io/mnemonist/bit-vector)
* [Bloom Filter](https://yomguithereal.github.io/mnemonist/bloom-filter)**Utility classes**
* [BiMap](https://yomguithereal.github.io/mnemonist/bi-map)
* [DefaultMap](https://yomguithereal.github.io/mnemonist/default-map)
* [DefaultWeakMap](https://yomguithereal.github.io/mnemonist/default-weak-map)---
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`](https://graphology.github.io/) library instead.
Don't find the data structure you need? Maybe we can work it out [together](https://github.com/Yomguithereal/mnemonist/issues).
## Contribution
Contributions are obviously welcome. Be sure to lint the code & add relevant unit tests.
```
# Installing
git clone [email protected]:Yomguithereal/mnemonist.git
cd mnemonist
npm install# Linting
npm run lint# Running the unit tests
npm test
```## License
[MIT](LICENSE.txt)