Skip to content

Latest commit

 

History

History

core

npm version Deno

Licence

@rimbu/core

Welcome to @rimbu/core! This package is your all-in-one access point to the powerful Rimbu collections, along with the essential utilities from the @rimbu/common package. It is designed to provide a seamless and efficient experience for managing collections in your applications.

Key Features:

  • Comprehensive Collections: Access all Rimbu collections in one place.
  • Utility Integration: Includes all the utilities from @rimbu/common for enhanced functionality.
  • Ease of Use: Simplifies the process of working with collections and utilities.

Documentation

For complete documentation, please visit the Rimbu Docs, or directly explore the Rimbu Core API Docs.

Try It Out

Experience the power of @rimbu/core in action! Try Out Rimbu on CodeSandBox.

Installation

Compabitity

Package Managers

Yarn:

yarn add @rimbu/core

npm:

npm install @rimbu/core

Bun:

bun add @rimbu/core

Deno Setup

Create or edit import_map.json in your project root:

{
  "imports": {
    "@rimbu/": "https://deno.land/x/rimbu@x.y.z/"
  }
}

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

Direct imports

import { List, Stream, SortedMap } from '@rimbu/core';

const list = List.of(1, 3, 2, 4, 2);

const stream = Stream.from(list).map((v) => [v, String(v * 2)]);

const map = SortedMap.from(stream);

console.log(map.toArray());
// => [[1, '2'], [2, '4'], [3, '6'], [4, '8']]

Using the creation 'menu'

The same code using the creation 'menu':

import Rimbu from '@rimbu/core/menu';

const list = Rimbu.List.of(1, 3, 2, 4, 2);

const stream = Rimbu.Stream.from(list).map((v) => [v, String(v * 2)]);

const map = Rimbu.Map.Sorted.from(stream);

console.log(map.toArray());
// => [[1, '2'], [2, '4'], [3, '6'], [4, '8']]

Contents

This package exports everything from the following sub-packages, each designed to provide specialized data structures and utilities:

Package Description
@rimbu/bimap A bidirectional map where each key maps to a unique value and vice versa.
@rimbu/bimultimap A bidirectional multimap allowing many-to-many mappings between keys and values.
@rimbu/collection-types Definitions for generic collection types, serving as the foundation for specific implementations.
@rimbu/common Public types and functions used throughout the entire library.
@rimbu/deep Tools for handling plain JavaScript objects as immutable objects.
@rimbu/graph Various graph implementations to represent data as nodes and edges.
@rimbu/hashed HashMap and HashSet implementations using hash functions for efficient key retrieval.
@rimbu/list List data structure for ordered sequences of elements with efficient random access and manipulation.
@rimbu/multimap A map where each key can map to multiple values.
@rimbu/multiset A set where elements can occur multiple times.
@rimbu/ordered OrderedSet and OrderedMap collections that maintain insertion order.
@rimbu/proximity ProximityMap for retrieving values based on key proximity.
@rimbu/sorted SortedMap and SortedSet implementations using compare functions to keep elements sorted.
@rimbu/stream Methods for manipulating sequences of data.
@rimbu/table Table data structures where a combination of row and column keys maps to a single value.

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.