You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							113 lines
						
					
					
						
							4.5 KiB
						
					
					
				
			
		
		
	
	
							113 lines
						
					
					
						
							4.5 KiB
						
					
					
				| [](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 git@github.com:Yomguithereal/mnemonist.git
 | |
| cd mnemonist
 | |
| npm install
 | |
| 
 | |
| # Linting
 | |
| npm run lint
 | |
| 
 | |
| # Running the unit tests
 | |
| npm test
 | |
| ```
 | |
| 
 | |
| ## License
 | |
| 
 | |
| [MIT](LICENSE.txt)
 |