Rimbu is a TypeScript library focused on immutable, performant, and type-safe collections and other tools.
Repository
Current version released
2 months ago
Versions
- 1.2.3Latest
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.0
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.14.2
- 0.14.1
- 0.14.0
- 0.13.6
- 0.13.5
- 0.13.4
- 0.13.3
- 0.13.2
- 0.13.1
- 0.13.0
- 0.12.3
- 0.12.2
- 0.12.1
- 0.12.0
- 0.11.7
- 0.11.6
- 0.11.5
- 0.11.4
- 0.11.3
- 0.11.2
- 0.11.1
- 0.10.4
- 10.0.4
- 0.10.4-alpha
- 0.10.3
- @rimbu/core@0.9.13
- 0.10.2
- 0.10.1
- 0.10.0
- @rimbu/core@0.9.11
- @rimbu/graph@0.9.11
- 0.8.9
- 0.8.8
- 0.8.7
- 0.8.6
- 0.8.5
- 0.8.4
- 0.8.3-alpha.2
- 0.8.3-alpha.1
- 0.8.3-alpha.0
- 0.8.2
- 0.8.1
- 0.8.0
- 0.7.4
- 0.7.3
- 0.7.2
- 0.7.1
- 0.7.0
- 0.6.11
- 0.6.10
- 0.6.9
- @rimbu/typical@0.2.0
- 0.6.8
- 0.6.7
- 0.6.6
- 0.6.5
- 0.6.4
- 0.6.3
- 0.6.2
- 0.6.1
- 0.5.14
- v0.5.13
Rimbu: Immutable Collections and Tools for TypeScript
Welcome to Rimbu—your go-to TypeScript library for highly performant, type-safe, and immutable collections. With Rimbu, your data manipulation tasks become more efficient and predictable, offering enhanced data integrity and type safety.
Why Choose Rimbu?
- Data Integrity: Prevent accidental modifications and safeguard your original data.
- Debugging Made Easy: Simplify reasoning about your code and catch bugs early.
- Type Safety: Full compatibility with TypeScript ensures robust code.
- Performance Boost: Reduce the need for deep copies.
- Functional Programming: Supports immutability-based change detection, undo/redo features, and safe concurrent programming.
- Simplified Testing: Eliminate side effects and simplify your tests.
- Versatile: Works seamlessly across Web, Node.js, Bun, and Deno environments.
Quick Links
Installation
Compatibility
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.
Main Packages
Package | Description |
---|---|
@rimbu/bimap | Bidirectional map with one-to-one key-value mapping |
@rimbu/bimultimap | Bidirectional multimap with many-to-many key-value mapping |
@rimbu/collection-types | Generic collection types definitions |
@rimbu/common | Common types and functions across the library |
@rimbu/core | Exports most main types from other packages |
@rimbu/deep | Tools for treating JS objects as immutable |
@rimbu/graph | Graph implementations with nodes and edges |
@rimbu/hashed | HashMap and HashSet implementations |
@rimbu/list | Efficiently ordered sequence manipulations |
@rimbu/multimap | Map with one-to-many key-value mapping |
@rimbu/multiset | Set allowing multiple occurrences of elements |
@rimbu/ordered | OrderedSet and OrderedMap collections |
@rimbu/sorted | SortedMap and SortedSet with efficient sorting |
@rimbu/stream | Data sequence manipulation methods |
@rimbu/table | Table structures with row and column key mapping |
Development Setup
- Clone the repository.
- Run
yarn
to install dependencies. - To build packages, use
yarn build
. - Run tests with
yarn test
.
Author
Created and maintained by Arvid Nicolaas.
Contributing
We welcome contributions! Please read our Contributing guide.
Contributors
Made with contributors-img.
Acknowledgements
Special thanks to bglgwyng for being the first Rimbu sponsor. You’re awesome!
License
This project is licensed under the MIT License. See the LICENSE for details.