Immutable collections and tools for TypeScript
Rimbu is a TypeScript library focused on immutable, performant, and type-safe collections and other tools. Its main aim is to allow programmers to create safe and performant programs without getting in the way. It is inspired by various other collection libraries, mainly Java's Guava library, the Java 8 Collection library, and Scala's collection library plus various ideas from the Scala community.
Quick overview of features and benefits
- Extensive set of collection types to cover many problems that would otherwise require more coding to solve.
- Advanced typing uses the TS compiler to offer strict type inference without much explicit typing, and to prove collection non-emptiness.
- Avoid 'monad' style programming / chaining (e.g. using types like Option) by offering flexible fallback options for simple methods that can 'fail'.
- No external dependencies.
- Provides sane defaults but allows extensive customization and configuration.
- A novel and efficient immutable random-access List implementation.
For complete documentation please visit the Rimbu Docs.
Or Try Out Rimbu in CodeSandBox.
The main exported projects are:
|@rimbu/core||Immutable collections including
|@rimbu/actor||A framework-agnostic synchronous state management library that uses immutable objects under the hood.|
|@rimbu/reactor||A framework that allows usage of
Getting started with this monorepo
- Clone this repository
To build all the packages:
To start the Rimbu Docs locally:
To run the tests:
Feel very welcome to contribute to further improve Rimbu. Please read our Contributing guide.
Made with contributors-img.
Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas.
See LICENSE for more information.