Skip to content

Latest commit

 

History

History

hashed

npm version Deno

Licence

@rimbu/hashed

Welcome to @rimbu/hashed! This package provides robust implementations for HashMap and HashSet, forming the backbone of all Rimbu Hashed collections. These collections use a configurable Hasher instance to determine the equality of values/objects, ensuring efficient and reliable data management.

Key Features:

  • Configurable Hashing: Use a Hasher instance to customize how keys and values are hashed.
  • Efficient Lookups: Optimized for fast retrieval and manipulation of data.
  • Versatile Collections: Suitable for a wide range of applications requiring hashed data structures.

Exported Types:

Name Description
HashMap<K, V> A map with entries of key type K and value type V, where keys are hashed with a Hasher.
HashSet<T> A set of value type T where items are hashed with a Hasher.

Documentation

For complete documentation, please visit the Map or Set pages in the Rimbu Docs, or directly explore the Rimbu Hashed API Docs.

Try It Out

Experience @rimbu/hashed in action! Try Out Rimbu on CodeSandBox.

Installation

Compabitity

Package Managers

Yarn:

yarn add @rimbu/hashed

npm:

npm install @rimbu/hashed

Bun:

bun add @rimbu/hashed

Deno Setup

Create or edit import_map.json in your project root:

{
  "imports": {
    "@rimbu/": "https://deno.land/x/[email protected]/"
  }
}

Replace x.y.z with the desired version.

In this way you can use relative imports from Rimbu in your code, like so:

import { List } from '@rimbu/core/mod.ts';
import { HashMap } from '@rimbu/hashed/mod.ts';

Note that for sub-packages, due to conversion limitations it is needed to import the index.ts instead of mod.ts, like so:

import { HashMap } from '@rimbu/hashed/map/index.ts';

To run your script (let's assume the entry point is in src/main.ts):

deno run --import-map import_map.json src/main.ts

Usage

import { HashSet } from '@rimbu/hashed';

console.log(HashSet.of(1, 3, 2, 4, 3, 1).toString());

Author

Created and maintained by Arvid Nicolaas.

Contributing

We welcome contributions! Please read our Contributing guide.

Contributors

Made with contributors-img.

License

This project is licensed under the MIT License. See the LICENSE for details.