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.
- 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.
For complete documentation, please visit the Rimbu Docs, or directly explore the Rimbu Core API Docs.
Experience the power of @rimbu/core
in action! Try Out Rimbu on CodeSandBox.
Yarn:
yarn add @rimbu/core
npm:
npm install @rimbu/core
Bun:
bun add @rimbu/core
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
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']]
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']]
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. |
Created and maintained by Arvid Nicolaas.
We welcome contributions! Please read our Contributing guide.
Made with contributors-img.
This project is licensed under the MIT License. See the LICENSE for details.