From 06c8ec93e38b58f52e2610b2882ebc880b316903 Mon Sep 17 00:00:00 2001 From: Arvid Nicolaas Date: Fri, 30 Aug 2024 14:06:39 +0200 Subject: [PATCH 1/2] docs: update README files --- README.md | 6 +- deno_dist/README.md | 6 +- deno_dist/actor/README.md | 42 ++++++------ deno_dist/base/README.md | 42 ++++++------ deno_dist/bimap/README.md | 73 +++++++++++---------- deno_dist/bimultimap/README.md | 74 +++++++++++---------- deno_dist/channel/README.md | 67 +++++++++++-------- deno_dist/collection-types/README.md | 50 +++++++------- deno_dist/common/README.md | 84 ++++++++++++------------ deno_dist/core/README.md | 98 +++++++++++++++------------- deno_dist/deep/README.md | 64 ++++++++++-------- deno_dist/graph/README.md | 88 +++++++++++++------------ deno_dist/hashed/README.md | 72 +++++++++++--------- deno_dist/list/README.md | 62 ++++++++++-------- deno_dist/multimap/README.md | 72 +++++++++++--------- deno_dist/multiset/README.md | 76 +++++++++++---------- deno_dist/ordered/README.md | 72 +++++++++++--------- deno_dist/proximity/README.md | 69 +++++++++++--------- deno_dist/sorted/README.md | 72 +++++++++++--------- deno_dist/spy/README.md | 36 +++++----- deno_dist/stream/README.md | 78 ++++++++++++---------- deno_dist/table/README.md | 72 +++++++++++--------- deno_dist/typical/README.md | 45 ++++++++----- docs/docs/index.mdx | 46 +++++++------ packages/actor/README.md | 42 ++++++------ packages/base/README.md | 42 ++++++------ packages/bimap/README.md | 73 +++++++++++---------- packages/bimultimap/README.md | 74 +++++++++++---------- packages/channel/README.md | 67 +++++++++++-------- packages/collection-types/README.md | 50 +++++++------- packages/common/README.md | 84 ++++++++++++------------ packages/core/README.md | 98 +++++++++++++++------------- packages/deep/README.md | 64 ++++++++++-------- packages/graph/README.md | 88 +++++++++++++------------ packages/hashed/README.md | 72 +++++++++++--------- packages/list/README.md | 62 ++++++++++-------- packages/multimap/README.md | 72 +++++++++++--------- packages/multiset/README.md | 76 +++++++++++---------- packages/ordered/README.md | 72 +++++++++++--------- packages/proximity/README.md | 69 +++++++++++--------- packages/sorted/README.md | 72 +++++++++++--------- packages/spy/README.md | 36 +++++----- packages/stream/README.md | 78 ++++++++++++---------- packages/table/README.md | 72 +++++++++++--------- packages/typical/README.md | 45 ++++++++----- 45 files changed, 1589 insertions(+), 1285 deletions(-) diff --git a/README.md b/README.md index 528dff0ae..db183c6cc 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,10 @@

-[![npm version](https://badge.fury.io/js/@rimbu%2Fcore.svg)](https://www.npmjs.com/package/@rimbu/core) [![Deno](https://shield.deno.dev/x/rimbu)](http://deno.land/x/rimbu) -![Licence](https://img.shields.io/github/license/rimbu-org/rimbu) [![codecov](https://codecov.io/gh/rimbu-org/rimbu/branch/main/graph/badge.svg?token=RSFK5B0N0Z)](https://codecov.io/gh/rimbu-org/rimbu) +[![npm version](https://badge.fury.io/js/@rimbu%2Fcore.svg)](https://www.npmjs.com/package/@rimbu/core) +[![Deno](https://shield.deno.dev/x/rimbu)](http://deno.land/x/rimbu) +![Licence](https://img.shields.io/github/license/rimbu-org/rimbu) +[![codecov](https://codecov.io/gh/rimbu-org/rimbu/branch/main/graph/badge.svg?token=RSFK5B0N0Z)](https://codecov.io/gh/rimbu-org/rimbu) # Rimbu: Immutable Collections and Tools for TypeScript diff --git a/deno_dist/README.md b/deno_dist/README.md index df9033cf2..a9005e4b3 100644 --- a/deno_dist/README.md +++ b/deno_dist/README.md @@ -2,8 +2,10 @@

-[![npm version](https://badge.fury.io/js/@rimbu%2Fcore.svg)](https://www.npmjs.com/package/@rimbu/core) [![Deno](https://shield.deno.dev/x/rimbu)](http://deno.land/x/rimbu) -![Licence](https://img.shields.io/github/license/rimbu-org/rimbu) [![codecov](https://codecov.io/gh/rimbu-org/rimbu/branch/main/graph/badge.svg?token=RSFK5B0N0Z)](https://codecov.io/gh/rimbu-org/rimbu) +[![npm version](https://badge.fury.io/js/@rimbu%2Fcore.svg)](https://www.npmjs.com/package/@rimbu/core) +[![Deno](https://shield.deno.dev/x/rimbu)](http://deno.land/x/rimbu) +![Licence](https://img.shields.io/github/license/rimbu-org/rimbu) +[![codecov](https://codecov.io/gh/rimbu-org/rimbu/branch/main/graph/badge.svg?token=RSFK5B0N0Z)](https://codecov.io/gh/rimbu-org/rimbu) # Rimbu: Immutable Collections and Tools for TypeScript diff --git a/deno_dist/actor/README.md b/deno_dist/actor/README.md index de9a0d993..afc935fef 100644 --- a/deno_dist/actor/README.md +++ b/deno_dist/actor/README.md @@ -18,30 +18,34 @@ For complete documentation please visit the _[Rimbu Docs](https://rimbu.org)_ or ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/actor` - -For `npm`: +```sh +yarn add @rimbu/actor +``` -> `npm i @rimbu/actor` +**npm:** -For `bun`: +```sh +npm install @rimbu/actor +``` -> `bun add @rimbu/actor` +**Bun:** -### Deno +```sh +bun add @rimbu/actor +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -51,7 +55,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -97,20 +101,18 @@ console.log(actor.state) ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/deno_dist/base/README.md b/deno_dist/base/README.md index 1d2c8b1b4..a133b4869 100644 --- a/deno_dist/base/README.md +++ b/deno_dist/base/README.md @@ -18,30 +18,34 @@ For complete documentation please visit the _[Rimbu Docs](https://rimbu.org)_ or ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/base` - -For `npm`: +```sh +yarn add @rimbu/base +``` -> `npm i @rimbu/base` +**npm:** -For `bun`: +```sh +npm install @rimbu/base +``` -> `bun add @rimbu/base` +**Bun:** -### Deno +```sh +bun add @rimbu/base +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -51,7 +55,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -85,20 +89,18 @@ console.log(arr); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/deno_dist/bimap/README.md b/deno_dist/bimap/README.md index f7da0cc4c..e2d447df8 100644 --- a/deno_dist/bimap/README.md +++ b/deno_dist/bimap/README.md @@ -8,52 +8,61 @@ # @rimbu/bimap -A BiMap is a bidirectional Map of keys and values, where each key has exactly one value, and each value has exactly one key. There is a one-to-one mapping between keys and values. +Welcome to `@rimbu/bimap`! A BiMap is a powerful bidirectional map that ensures a one-to-one mapping between keys and values. Each key is associated with exactly one value, and each value is associated with exactly one key. -This package exports the following types: +### Key Features: -| Name | Description | -| ------------------- | ---------------------------------------------------------------------------------------------- | -| `BiMap` | a generic BiMap between keys of type K and values of type V | -| `HashBiMap` | a BiMap between keys of type K and values of type V, where both the keys and values are hashed | -| `SortedBiMap` | a BiMap between keys of type K and values of type V, where both the keys and values are sorted | +- **Bidirectional Mapping**: Effortlessly navigate between keys and values. +- **Unique Associations**: Guarantees unique key-value pairs, ensuring data integrity. -For complete documentation please visit the [BiMap page](https://rimbu.org/docs/collections/bimap) in the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu BiMap API Docs](https://rimbu.org/api/rimbu/bimap)_. +### Exported Types: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +| Name | Description | +| ------------------- | --------------------------------------------------------------------------------------- | +| `BiMap` | A generic BiMap for keys of type `K` and values of type `V`. | +| `HashBiMap` | A BiMap where both keys and values are hashed for efficient lookups. | +| `SortedBiMap` | A BiMap where both keys and values are sorted, providing ordered traversal and lookups. | + +### Documentation + +For complete documentation, please visit the [BiMap page](https://rimbu.org/docs/collections/bimap) in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu BiMap API Docs](https://rimbu.org/api/rimbu/bimap). + +### Try It Out + +Experience `@rimbu/bimap` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/bimap` - -For `npm`: +```sh +yarn add @rimbu/bimap +``` -> `npm i @rimbu/bimap` +**npm:** -For `bun`: +```sh +npm install @rimbu/bimap +``` -> `bun add @rimbu/bimap` +**Bun:** -### Deno +```sh +bun add @rimbu/bimap +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -63,7 +72,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -94,20 +103,18 @@ console.log(biMap.toString()); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/deno_dist/bimultimap/README.md b/deno_dist/bimultimap/README.md index 50880454d..b35ff0f32 100644 --- a/deno_dist/bimultimap/README.md +++ b/deno_dist/bimultimap/README.md @@ -8,52 +8,62 @@ # @rimbu/bimultimap -A BiMultiMap is a bidirectional MultiMap of keys and values, where each key-value association also has an inverse value-key association. There is a many-to-many mapping between keys and values. +Welcome to `@rimbu/bimultimap`! A BiMultiMap is a powerful bidirectional MultiMap that allows many-to-many mappings between keys and values. Each key-value association also has an inverse value-key association, making it easy to navigate in both directions. -This package exports the following types: +### Key Features: -| Name | Description | -| ------------------------ | ---------------------------------------------------------------- | -| `BiMultiMap` | a generic BiMultiMap between keys of type K and values of type V | -| `HashBiMultiMap` | a BiMultiMap implementation where keys and values are hashed | -| `SortedBiMultiMap` | a BiMultiMap implementation where keys and values are sorted | +- **Bidirectional MultiMap**: Navigate seamlessly between keys and values and vice versa. +- **Many-to-Many Mapping**: Supports multiple values for a single key and multiple keys for a single value. +- **Flexible Implementations**: Choose between hashed and sorted implementations based on your needs. -For complete documentation please visit the [BiMultiap page](https://rimbu.org/docs/collections/bimultimap) in the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu BiMultiMap API Docs](https://rimbu.org/api/rimbu/bimultimap)_. +### Exported Types: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +| Name | Description | +| ------------------------ | -------------------------------------------------------------------------------------------- | +| `BiMultiMap` | A generic BiMultiMap for keys of type `K` and values of type `V`. | +| `HashBiMultiMap` | A BiMultiMap where both keys and values are hashed for efficient lookups. | +| `SortedBiMultiMap` | A BiMultiMap where both keys and values are sorted, providing ordered traversal and lookups. | + +### Documentation + +For complete documentation, please visit the [BiMultiMap page](https://rimbu.org/docs/collections/bimultimap) in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu BiMultiMap API Docs](https://rimbu.org/api/rimbu/bimultimap). + +### Try It Out + +Experience `@rimbu/bimultimap` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/bimultimap` - -For `npm`: +```sh +yarn add @rimbu/bimultimap +``` -> `npm i @rimbu/bimultimap` +**npm:** -For `bun`: +```sh +npm install @rimbu/bimultimap +``` -> `bun add @rimbu/bimultimap` +**Bun:** -### Deno +```sh +bun add @rimbu/bimultimap +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -63,7 +73,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -99,20 +109,18 @@ console.log(biMultiMap.getKeys('b').toArray()); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/deno_dist/channel/README.md b/deno_dist/channel/README.md index 83917074f..a08a3c600 100644 --- a/deno_dist/channel/README.md +++ b/deno_dist/channel/README.md @@ -2,46 +2,63 @@

-[![npm version](https://badge.fury.io/js/@rimbu%2Fordered.svg)](https://www.npmjs.com/package/@rimbu/ordered) [![Deno](https://shield.deno.dev/x/rimbu)](http://deno.land/x/rimbu) - +[![npm version](https://badge.fury.io/js/@rimbu%channel.svg)](https://www.npmjs.com/package/@rimbu/channel) +[![Deno](https://shield.deno.dev/x/rimbu)](http://deno.land/x/rimbu) ![Licence](https://img.shields.io/github/license/rimbu-org/rimbu) # @rimbu/channel -This package provides various channel implementation in the spirit of Go to allow synchronous or buffered one-to-one communication in an asynchronous context. The `Channel` offers communication between asynchronous processes in the same thread. `CrossChannel` consist of pairs of channels that allow different types of messages for sending and receiving. `RemoteChannel` offers communication between (worker) threads. `RemoteObject` offers a way to interact with a remote API/object as though it is available locally over a channel. `RemoteChannelServer` and `RemoteChannelClient` allow easy cross-thread creation of new channels. Finally, this package offers various cross-process synchronization utilities like `Mutex`, `Semaphore` and `WaitGroup`. +Welcome to the `@rimbu/channel` package! This package brings you powerful channel implementations inspired by Go, designed to facilitate synchronous or buffered one-to-one communication in an asynchronous context. + +### Key Features: + +- **Channel**: Seamlessly communicate between asynchronous processes within the same thread. +- **CrossChannel**: Utilize pairs of channels for sending and receiving different types of messages. +- **RemoteChannel**: Enable communication between (worker) threads effortlessly. +- **RemoteObject**: Interact with remote APIs/objects as if they are available locally over a channel. +- **RemoteChannelServer & RemoteChannelClient**: Easily create new channels across threads. +- **Synchronization Utilities**: Leverage cross-process synchronization tools like `Mutex`, `Semaphore`, and `WaitGroup`. -For complete documentation please visit the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Core API Docs](https://rimbu.org/api/rimbu/channel)_. +### Why Use `@rimbu/channel`? + +- **Simplicity**: Simplifies complex asynchronous communication patterns. +- **Flexibility**: Supports various communication models and synchronization mechanisms. +- **Efficiency**: Optimized for performance in concurrent environments. + +For complete documentation, please visit the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu Core API Docs](https://rimbu.org/api/rimbu/channel). ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -To install this package: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/channel` - -For `npm`: +```sh +yarn add @rimbu/channel +``` -> `npm i @rimbu/channel` +**npm:** -For `bun`: +```sh +npm install @rimbu/channel +``` -> `bun add @rimbu/channel` +**Bun:** -### Deno +```sh +bun add @rimbu/channel +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -51,7 +68,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -104,20 +121,18 @@ consume(channel); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/deno_dist/collection-types/README.md b/deno_dist/collection-types/README.md index 03caf2686..f41b2a0d6 100644 --- a/deno_dist/collection-types/README.md +++ b/deno_dist/collection-types/README.md @@ -2,8 +2,8 @@

-[![npm version](https://badge.fury.io/js/@rimbu%2Fcollection-types.svg)](https://www.npmjs.com/package/@rimbu/collection-types) [![Deno](https://shield.deno.dev/x/rimbu)](http://deno.land/x/rimbu) - +[![npm version](https://badge.fury.io/js/@rimbu%2Fcollection-types.svg)](https://www.npmjs.com/package/@rimbu/collection-types) +[![Deno](https://shield.deno.dev/x/rimbu)](http://deno.land/x/rimbu) ![Licence](https://img.shields.io/github/license/rimbu-org/rimbu) # @rimbu/collection-types @@ -18,34 +18,34 @@ Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/mai ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: - -For `yarn`: +### Package Managers -> `yarn add @rimbu/collection-types` +**Yarn:** -For `npm`: +```sh +yarn add @rimbu/collection-types +``` -> `npm i @rimbu/collection-types` +**npm:** -For `bun`: +```sh +npm install @rimbu/collection-types +``` -> `bun add @rimbu/collection-types` +**Bun:** -### Deno +```sh +bun add @rimbu/collection-types +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -55,7 +55,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -76,20 +76,18 @@ To run your script (let's assume the entry point is in `src/main.ts`): ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/deno_dist/common/README.md b/deno_dist/common/README.md index 0d514bb20..98af3e4e5 100644 --- a/deno_dist/common/README.md +++ b/deno_dist/common/README.md @@ -8,62 +8,64 @@ # @rimbu/common -This package exports common types and objects used in many other Rimbu packages. +Welcome to `@rimbu/common`! This package exports essential types and utilities that are widely used across various Rimbu packages. It provides a robust foundation for building efficient and reliable applications. -Here is a brief overview: +### Overview of most important Exported Types: -| Name | Description | -| --------------- | -------------------------------------------------------------------------------------------------------- | -| `CollectFun` | types and values used in various `collect` methods in the collection. | -| `Comp` | an interface and default implementations of comparison functions to order/sort values. | -| `Eq` | an interface and default implementations of equality functions to check value equality | -| `Err` | functions to easily create error throwing behavior as fallback values | -| `FastIterable` | an `Iterable` implementation that can be more performant than usual iterables | -| `IndexRange` | utilities to select index ranges in indexed collections | -| `OptLazy` | a utility to provide values that can optionally be lazy | -| `Range` | utility types to specify ranges for comparable types | -| `Reducer` | an API to create reusable pieces of logic that process streams of data that can be processed in parallel | -| `TraverseState` | a utility for loops to maintain the traversal state | -| `Update` | a standard way to update a value | +| Name | Description | +| --------------- | ----------------------------------------------------------------------------------------------------- | +| `CollectFun` | Types and values used in various `collect` methods within collections. | +| `Comp` | Interface and default implementations of comparison functions for ordering/sorting values. | +| `Eq` | Interface and default implementations of equality functions for checking value equality. | +| `Err` | Functions to easily create error-throwing behavior as fallback values. | +| `FastIterable` | An `Iterable` implementation that offers better performance than standard iterables. | +| `IndexRange` | Utilities for selecting index ranges in indexed collections. | +| `OptLazy` | A utility to provide values that can optionally be lazy. | +| `Range` | Utility types to specify ranges for comparable types. | +| `Reducer` | An API to create reusable logic pieces that process data streams, which can be processed in parallel. | +| `TraverseState` | A utility for loops to maintain traversal state. | +| `Update` | A standard way to update a value. | -Other than these values, there are a number of utility types that are exported that are also used throughout the collection. +### Documentation -For complete documentation please visit the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Common API Docs](https://rimbu.org/api/rimbu/common)_. +For complete documentation, please visit the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu Common API Docs](https://rimbu.org/api/rimbu/common). -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +### Try It Out + +Experience `@rimbu/common` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: - -For `yarn`: +### Package Managers -> `yarn add @rimbu/common` +**Yarn:** -For `npm`: +```sh +yarn add @rimbu/common +``` -> `npm i @rimbu/common` +**npm:** -For `bun`: +```sh +npm install @rimbu/common +``` -> `bun add @rimbu/common` +**Bun:** -### Deno +```sh +bun add @rimbu/common +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -73,7 +75,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -103,20 +105,18 @@ console.log(Eq.stringCaseInsentitive()('abc', 'AbC')); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/deno_dist/core/README.md b/deno_dist/core/README.md index de1649f95..56613d0f5 100644 --- a/deno_dist/core/README.md +++ b/deno_dist/core/README.md @@ -8,42 +8,54 @@ # @rimbu/core -This package exports all the Rimbu collections, plus the contents of the `@rimbu/common` package. Its aim is to provide an easy to use access point for the collections. +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. -For complete documentation please visit the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Core API Docs](https://rimbu.org/api/rimbu/core)_. +### Key Features: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +- **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](https://rimbu.org), or directly explore the [Rimbu Core API Docs](https://rimbu.org/api/rimbu/core). + +### Try It Out + +Experience the power of `@rimbu/core` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -To get started with the immutable collections, which are exported through `@rimbu/core`, you can use the following. +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/core` - -For `npm`: +```sh +yarn add @rimbu/core +``` -> `npm i @rimbu/core` +**npm:** -For `bun`: +```sh +npm install @rimbu/core +``` -> `bun add @rimbu/core` +**Bun:** -### Deno +```sh +bun add @rimbu/core +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -53,7 +65,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -108,42 +120,40 @@ console.log(map.toArray()); ## Contents -This package exports everything from the following packages: - -| Name | Description | -| ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -| [@rimbu/bimap](../bimap) | a bidirectional map in which keys and values have a one-to-one mapping | -| [@rimbu/bimultimap](../bimultimap) | a bidirectional multimap in which keys and values have a many-to-many mapping | -| [@rimbu/collection-types](../collection-types) | definitions for many of the generic collection types, used to derive more specific implementations | -| [@rimbu/common](../common) | contains public types and functions that are used throughout the whole library | -| [@rimbu/deep](../deep) | offers tools to use handle plain JS objects as immutable objects. library | -| [@rimbu/graph](../graph) | provides various graph implementations to represent data in forms of nodes and edges | -| [@rimbu/hashed](../hashed) | provides a HashMap and HashSet implementation, using hash functions to efficiently retrieve keys | -| [@rimbu/list](../list) | provides the List datastructure containing an ordered sequence of elements that can be manipulated and accessed randomly in an efficient way | -| [@rimbu/multimap](../multimap) | provides a map in which keys and values have a one-to-many mapping | -| [@rimbu/multiset](../multiset) | provides a set in which elements can occur multiple times | -| [@rimbu/ordered](../ordered) | provides the OrderedSet and OrderedMap collections, that keep insertion order | -| [@rimbu/proximity](../proximity) | provides ProximityMap, that retrieves values based on key proximity | -| [@rimbu/sorted](../sorted) | provides a SortedMap and SortedSet implementation, using compare functions to efficiently keep the elements sorted | -| [@rimbu/stream](../stream) | contains methods to easily manipulate sequences of data | -| [@rimbu/table](../table) | provides various Table data structures where a combination of a row key and column key maps to a single value. | +This package exports everything from the following sub-packages, each designed to provide specialized data structures and utilities: + +| Package | Description | +| ---------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| [@rimbu/bimap](../bimap) | A bidirectional map where each key maps to a unique value and vice versa. | +| [@rimbu/bimultimap](../bimultimap) | A bidirectional multimap allowing many-to-many mappings between keys and values. | +| [@rimbu/collection-types](../collection-types) | Definitions for generic collection types, serving as the foundation for specific implementations. | +| [@rimbu/common](../common) | Public types and functions used throughout the entire library. | +| [@rimbu/deep](../deep) | Tools for handling plain JavaScript objects as immutable objects. | +| [@rimbu/graph](../graph) | Various graph implementations to represent data as nodes and edges. | +| [@rimbu/hashed](../hashed) | HashMap and HashSet implementations using hash functions for efficient key retrieval. | +| [@rimbu/list](../list) | List data structure for ordered sequences of elements with efficient random access and manipulation. | +| [@rimbu/multimap](../multimap) | A map where each key can map to multiple values. | +| [@rimbu/multiset](../multiset) | A set where elements can occur multiple times. | +| [@rimbu/ordered](../ordered) | OrderedSet and OrderedMap collections that maintain insertion order. | +| [@rimbu/proximity](../proximity) | ProximityMap for retrieving values based on key proximity. | +| [@rimbu/sorted](../sorted) | SortedMap and SortedSet implementations using compare functions to keep elements sorted. | +| [@rimbu/stream](../stream) | Methods for manipulating sequences of data. | +| [@rimbu/table](../table) | Table data structures where a combination of row and column keys maps to a single value. | ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/deno_dist/deep/README.md b/deno_dist/deep/README.md index 32a2ebdf9..0a958e0d4 100644 --- a/deno_dist/deep/README.md +++ b/deno_dist/deep/README.md @@ -8,44 +8,56 @@ # @rimbu/deep -Offers tools to use handle plain JS objects as immutable objects. The [`Patch` object](https://rimbu.org/docs/deep/patch) allows convenient immutable modification of simple objects. The [`Match` object](https://rimbu.org/docs/deep/match) allows easy matching on plain objects. The [`Path` object](https://rimbu.org/docs/deep/path) allows easy querying of nested values. The [`Immutable` type](https://rimbu.org/docs/deep/immutable) makes it easy to create plain objects that that have compile-time protection against mutation. The [`Tuple` type](https://rimbu.org/docs/deep/tuple) is a utility to have similar functionality as `as const` but less strict. +Welcome to `@rimbu/deep`! This package offers powerful tools to handle plain JavaScript objects as immutable objects, making your code more robust and maintainable. -For complete documentation please visit the [Immutable Objects overview](https://rimbu.org/docs/deep/overview) in the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Deep API Docs](https://rimbu.org/api/rimbu/deep)_. +### Key Features: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +- **Immutable Modification**: Use the [`Patch` object](https://rimbu.org/docs/deep/patch) for convenient and immutable modifications of simple objects. +- **Pattern Matching**: The [`Match` object](https://rimbu.org/docs/deep/match) allows easy pattern matching on plain objects. +- **Nested Value Querying**: Easily query nested values with the [`Path` object](https://rimbu.org/docs/deep/path). +- **Compile-Time Protection**: The [`Immutable` type](https://rimbu.org/docs/deep/immutable) helps create plain objects with compile-time protection against mutation. +- **Flexible Tuples**: The [`Tuple` type](https://rimbu.org/docs/deep/tuple) provides similar functionality to `as const` but with more flexibility. + +### Documentation + +For complete documentation, please visit the [Immutable Objects overview](https://rimbu.org/docs/deep/overview) in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu Deep API Docs](https://rimbu.org/api/rimbu/deep). + +### Try It Out + +Experience `@rimbu/deep` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/deep` - -For `npm`: +```sh +yarn add @rimbu/deep +``` -> `npm i @rimbu/deep` +**npm:** -For `bun`: +```sh +npm install @rimbu/deep +``` -> `bun add @rimbu/deep` +**Bun:** -### Deno +```sh +bun add @rimbu/deep +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -55,7 +67,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -93,20 +105,18 @@ console.log( ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/deno_dist/graph/README.md b/deno_dist/graph/README.md index 5731af57d..c59b4a7c8 100644 --- a/deno_dist/graph/README.md +++ b/deno_dist/graph/README.md @@ -8,59 +8,69 @@ # @rimbu/graph -A Graph is a data structure consisting of nodes that can be connected through edges. Each node has a unique value or identifier. Edges can be directed, in which case we will call it an Arrow Graph, or undirected, in which case we will call it an Edge Graph. Furthermore, edges and arrows can also have values, in which case we call it a Valued Graph. +Welcome to `@rimbu/graph`! This package provides a versatile and powerful Graph data structure, allowing you to model complex relationships between nodes with ease. -This package exports the following main types: +### Key Features: -| Name | Description | -| -------------------------- | ----------------------------------------------------------------------------- | -| `ArrowGraph` | a generic directed graph with nodes of type N | -| `ArrowGraphHashed` | a directed graph with hashed nodes of type N | -| `ArrowGraphSorted` | a directed graph with sorted nodes of type N | -| `EdgeGraph` | a generic undirected graph with nodes of type N | -| `EdgeGraphHashed` | an undirected graph with hashed nodes of type N | -| `EdgeGraphSorted` | an undirected graph with sorted nodes of type N | -| `Graph` | a generic graph with nodes of type N | -| `ValuedGraph` | a generic graph with nodes of type N and edges with value type V | -| `VariantGraph` | a generic type-variant graph with nodes of type N | -| `VariantValuedGraph` | a generic type-variant graph with nodes of type N and edges with value type V | +- **Directed and Undirected Graphs**: Choose between Arrow Graphs (directed) and Edge Graphs (undirected) based on your needs. +- **Valued Graphs**: Add values to your edges for richer data representation. +- **Hashed and Sorted Implementations**: Optimize your graphs with hashed or sorted nodes for efficient lookups and ordered traversal. -For complete documentation please visit the [Graph page](https://rimbu.org/docs/collections/graph) _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Graph API Docs](https://rimbu.org/api/rimbu/graph)_. +### Exported Types: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +| Name | Description | +| -------------------------- | ---------------------------------------------------------------------------------- | +| `ArrowGraph` | A generic directed graph with nodes of type `N`. | +| `ArrowGraphHashed` | A directed graph with hashed nodes of type `N`. | +| `ArrowGraphSorted` | A directed graph with sorted nodes of type `N`. | +| `EdgeGraph` | A generic undirected graph with nodes of type `N`. | +| `EdgeGraphHashed` | An undirected graph with hashed nodes of type `N`. | +| `EdgeGraphSorted` | An undirected graph with sorted nodes of type `N`. | +| `Graph` | A generic graph with nodes of type `N`. | +| `ValuedGraph` | A generic graph with nodes of type `N` and edges with value type `V`. | +| `VariantGraph` | A generic type-variant graph with nodes of type `N`. | +| `VariantValuedGraph` | A generic type-variant graph with nodes of type `N` and edges with value type `V`. | + +### Documentation + +For complete documentation, please visit the [Graph page](https://rimbu.org/docs/collections/graph) in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu Graph API Docs](https://rimbu.org/api/rimbu/graph). + +### Try It Out + +Experience `@rimbu/graph` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/graph` - -For `npm`: +```sh +yarn add @rimbu/graph +``` -> `npm i @rimbu/graph` +**npm:** -For `bun`: +```sh +npm install @rimbu/graph +``` -> `bun add @rimbu/graph` +**Bun:** -### Deno +```sh +bun add @rimbu/graph +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -70,7 +80,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -99,20 +109,18 @@ console.log(EdgeGraphSorted.of([1, 2], [2, 3], [3, 1], [5]).toString()); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/deno_dist/hashed/README.md b/deno_dist/hashed/README.md index ded41c0af..91a7818b3 100644 --- a/deno_dist/hashed/README.md +++ b/deno_dist/hashed/README.md @@ -8,51 +8,61 @@ # @rimbu/hashed -This package contains the implementation for the `HashMap` and `HashSet` types, which form the basis of all Rimbu Hashed collections. The collections use a `Hasher` instance that is configurable to determine the equality of values/objects. +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. -This package exports the following main types: +### Key Features: -| Name | Description | -| --------------- | ---------------------------------------------------------------------------------------- | -| `HashMap` | a map with entries of key type K and value type V, where keys are hashed with a `Hasher` | -| `HashSet` | a set of value type T where items are hashed with a `Hasher` | +- **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. -For complete documentation please visit the [Map](https://rimbu.org/docs/collections/map) or [Set](https://rimbu.org/docs/collections/set) page _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Hashed API Docs](https://rimbu.org/api/rimbu/hashed)_. +### Exported Types: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +| Name | Description | +| --------------- | --------------------------------------------------------------------------------------------- | +| `HashMap` | A map with entries of key type `K` and value type `V`, where keys are hashed with a `Hasher`. | +| `HashSet` | A set of value type `T` where items are hashed with a `Hasher`. | + +### Documentation + +For complete documentation, please visit the [Map](https://rimbu.org/docs/collections/map) or [Set](https://rimbu.org/docs/collections/set) pages in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu Hashed API Docs](https://rimbu.org/api/rimbu/hashed). + +### Try It Out + +Experience `@rimbu/hashed` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/hashed` - -For `npm`: +```sh +yarn add @rimbu/hashed +``` -> `npm i @rimbu/hashed` +**npm:** -For `bun`: +```sh +npm install @rimbu/hashed +``` -> `bun add @rimbu/hashed` +**Bun:** -### Deno +```sh +bun add @rimbu/hashed +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -62,7 +72,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -91,20 +101,18 @@ console.log(HashSet.of(1, 3, 2, 4, 3, 1).toString()); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/deno_dist/list/README.md b/deno_dist/list/README.md index bcede4ad9..3701bc5c0 100644 --- a/deno_dist/list/README.md +++ b/deno_dist/list/README.md @@ -8,44 +8,54 @@ # @rimbu/list -The List is an immutable ordered sequence of elements that can be manipulated and accessed randomly in a relatively efficient way. +Welcome to `@rimbu/list`! This package provides an immutable, ordered sequence of elements that can be efficiently accessed and manipulated. -For complete documentation please visit the [List page](https://rimbu.org/docs/collections/list) in the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu List API Docs](https://rimbu.org/api/rimbu/list)_. +### Key Features: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +- **Immutable**: Ensures data integrity by preventing modifications to the original list. +- **Ordered**: Maintains the order of elements, allowing for predictable iteration. +- **Efficient Access**: Supports random access and manipulation with high performance. + +### Documentation + +For complete documentation, please visit the [List page](https://rimbu.org/docs/collections/list) in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu List API Docs](https://rimbu.org/api/rimbu/list). + +### Try It Out + +Experience `@rimbu/list` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/list` - -For `npm`: +```sh +yarn add @rimbu/list +``` -> `npm i @rimbu/list` +**npm:** -For `bun`: +```sh +npm install @rimbu/list +``` -> `bun add @rimbu/list` +**Bun:** -### Deno +```sh +bun add @rimbu/list +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -55,7 +65,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -84,20 +94,18 @@ console.log(List.of(1, 3, 2, 4, 3, 1).toString()); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/deno_dist/multimap/README.md b/deno_dist/multimap/README.md index b7a44c535..fb4d93bcb 100644 --- a/deno_dist/multimap/README.md +++ b/deno_dist/multimap/README.md @@ -8,49 +8,61 @@ # @rimbu/multimap -A Rimbu MultiMap is a Map in which each key has one or more values. For each key, it's associated values are unique, that is, the values for each key are kept in a `Set`. +Welcome to `@rimbu/multimap`! A Rimbu MultiMap is a powerful data structure where each key can have one or more unique values, stored in a `Set`. This ensures that each key's associated values are unique and easily manageable. -This package exports the following types: +### Key Features: -| Name | Description | -| --------------------------------- | ---------------------------------------------------------------------- | -| `HashMultiMapHashValue` | a multimap between hashed values of type K and hashed values of type V | -| `HashMultiMapSortedValue` | a multimap between hashed values of type K and sorted values of type V | -| `MultiMap` | a generic multimap between values of type K and values of type V | -| `SortedMultiMapHashValue` | a multimap between sorted values of type K and hashed values of type V | -| `SortedMultiMapSortedValue` | a multimap between sorted values of type K and sorted values of type V | -| `VariantMultiMap` | a type-variant multimap between values of type K and values of type V | +- **Multiple Values per Key**: Each key can map to multiple unique values. +- **Unique Values**: Values for each key are stored in a `Set`, ensuring uniqueness. +- **Flexible Implementations**: Choose between hashed and sorted implementations based on your needs. -For complete documentation please visit the [MultiMap page](https://rimbu.org/docs/collections/multimap) in the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu MultiMap API Docs](https://rimbu.org/api/rimbu/multimap)_. +### Exported Types: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +| Name | Description | +| --------------------------------- | -------------------------------------------------------------------- | +| `HashMultiMapHashValue` | A multimap with hashed keys and hashed values. | +| `HashMultiMapSortedValue` | A multimap with hashed keys and sorted values. | +| `MultiMap` | A generic multimap for keys of type `K` and values of type `V`. | +| `SortedMultiMapHashValue` | A multimap with sorted keys and hashed values. | +| `SortedMultiMapSortedValue` | A multimap with sorted keys and sorted values. | +| `VariantMultiMap` | A type-variant multimap for keys of type `K` and values of type `V`. | + +### Documentation + +For complete documentation, please visit the [MultiMap page](https://rimbu.org/docs/collections/multimap) in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu MultiMap API Docs](https://rimbu.org/api/rimbu/multimap). + +### Try It Out + +Experience `@rimbu/multimap` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). +### Package Managers -To install this package only: +**Yarn:** -For `yarn`: - -> `yarn add @rimbu/multimap` +```sh +yarn add @rimbu/multimap +``` -For `npm`: +**npm:** -> `npm i @rimbu/multimap` +```sh +npm install @rimbu/multimap +``` -For `bun`: +**Bun:** -> `bun add @rimbu/multimap` +```sh +bun add @rimbu/multimap +``` ### Deno @@ -97,20 +109,18 @@ console.log(HashMultiMapHashValue.of([1, 2], [1, 3], [2, 3]).toString()); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/deno_dist/multiset/README.md b/deno_dist/multiset/README.md index a18eac53f..fdebde5aa 100644 --- a/deno_dist/multiset/README.md +++ b/deno_dist/multiset/README.md @@ -8,53 +8,63 @@ # @rimbu/multiset -A Rimbu MultiSet is a Set-like structure where each unique element can be added multiple times. Each element in the MultiSet occurs one or more times. The MultiSet keeps track of the amount of times an element was added. +Welcome to `@rimbu/multiset`! A Rimbu MultiSet is a powerful Set-like structure where each unique element can be added multiple times. It keeps track of the number of occurrences of each element, making it ideal for scenarios where element frequency matters. -This package exports the following main types: +### Key Features: -| Name | Description | -| -------------------- | ----------------------------------------------- | -| `HashMultiSet` | a MultiSet with hashed elements of type T | -| `MultiSet` | a generic MultiSet with elements of type T | -| `SortedMultiSet` | a MultiSet with sorted elements of type T | -| `VariantMultiSet` | a type-variant MultiSet with elements of type T | +- **Multiple Occurrences**: Each element can occur one or more times. +- **Frequency Tracking**: Efficiently keeps track of how many times each element was added. +- **Flexible Implementations**: Choose between hashed and sorted implementations based on your needs. -For complete documentation please visit the [MultiSet page](https://rimbu.org/docs/collections/multiset) in the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu MultiSet API Docs](https://rimbu.org/api/rimbu/multiset)_. +### Exported Types: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +| Name | Description | +| -------------------- | -------------------------------------------------- | +| `HashMultiSet` | A MultiSet with hashed elements of type `T`. | +| `MultiSet` | A generic MultiSet with elements of type `T`. | +| `SortedMultiSet` | A MultiSet with sorted elements of type `T`. | +| `VariantMultiSet` | A type-variant MultiSet with elements of type `T`. | + +### Documentation + +For complete documentation, please visit the [MultiSet page](https://rimbu.org/docs/collections/multiset) in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu MultiSet API Docs](https://rimbu.org/api/rimbu/multiset). + +### Try It Out + +Experience `@rimbu/multiset` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/multiset` - -For `npm`: +```sh +yarn add @rimbu/multiset +``` -> `npm i @rimbu/multiset` +**npm:** -For `bun`: +```sh +npm install @rimbu/multiset +``` -> `bun add @rimbu/multiset` +**Bun:** -### Deno +```sh +bun add @rimbu/multiset +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -64,7 +74,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -93,20 +103,18 @@ console.log(SortedMultiSet.of(1, 3, 2, 3, 2, 3).toString()); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/deno_dist/ordered/README.md b/deno_dist/ordered/README.md index 65b3be033..2672dc9c3 100644 --- a/deno_dist/ordered/README.md +++ b/deno_dist/ordered/README.md @@ -8,51 +8,61 @@ # @rimbu/ordered -This packages contains an implementation of `OrderedMap` and `OrderedSet`, which are wrappers around other `RMap` and `RSet` implementations, and that add the capability to remember insertion order. Iterating over the collections will return the values in this insertion order. +Welcome to `@rimbu/ordered`! This package provides implementations of `OrderedMap` and `OrderedSet`, which are designed to maintain the insertion order of elements. These collections are wrappers around other `RMap` and `RSet` implementations, ensuring that iteration over the collections returns values in the order they were added. -This package exports the following types: +### Key Features: -| Name | Description | -| ------------------ | ------------------------------------------------------------------------------------------ | -| `OrderedMap` | a map with entries of key type K and value type V, where key insertion order is maintained | -| `OrderedSet` | a set of value type T where insertion order is maintained | +- **Insertion Order**: Maintains the order in which elements are added. +- **Flexible Wrappers**: Wraps around existing `RMap` and `RSet` implementations. +- **Efficient Iteration**: Iterating over the collections respects the insertion order. -For complete documentation please visit the [Map](https://rimbu.org/docs/collections/map) or [Se](https://rimbu.org/docs/collections/set) page in the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Ordered API Docs](https://rimbu.org/api/rimbu/ordered)_. +### Exported Types: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +| Name | Description | +| ------------------ | ----------------------------------------------------------------------------------------------- | +| `OrderedMap` | A map with entries of key type `K` and value type `V`, where key insertion order is maintained. | +| `OrderedSet` | A set of value type `T` where insertion order is maintained. | + +### Documentation + +For complete documentation, please visit the [Map](https://rimbu.org/docs/collections/map) or [Set](https://rimbu.org/docs/collections/set) pages in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu Ordered API Docs](https://rimbu.org/api/rimbu/ordered). + +### Try It Out + +Experience `@rimbu/ordered` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/ordered` - -For `npm`: +```sh +yarn add @rimbu/ordered +``` -> `npm i @rimbu/ordered` +**npm:** -For `bun`: +```sh +npm install @rimbu/ordered +``` -> `bun add @rimbu/ordered` +**Bun:** -### Deno +```sh +bun add @rimbu/ordered +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -62,7 +72,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -91,20 +101,18 @@ console.log(OrderedHashSet.of(1, 3, 2, 3, 1).toString()); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/deno_dist/proximity/README.md b/deno_dist/proximity/README.md index 72ca97644..cac025d27 100644 --- a/deno_dist/proximity/README.md +++ b/deno_dist/proximity/README.md @@ -8,48 +8,59 @@ # @rimbu/proximity -This package contains all Rimbu proximity-based collections - especially the `ProximityMap` type. The collections use a configurable `DistanceFunction` to determine the proximity of values/objects. +Welcome to `@rimbu/proximity`! This package provides proximity-based collections, with the `ProximityMap` type being the highlight. These collections use a configurable `DistanceFunction` to determine the proximity of values or objects, making them ideal for scenarios where spatial relationships matter. -This package exports the following main types: +### Key Features: -| Name | Description | -| -------------------- | --------------------------------------------------------------------------------------------------- | -| `ProximityMap` | a map with entries of key type K and value type V, where keys are compared via a `DistanceFunction` | +- **Proximity-Based Mapping**: Use a `DistanceFunction` to compare keys based on their proximity. +- **Flexible Configurations**: Customize how proximity is calculated to suit your specific needs. -For complete documentation please visit the [Map](https://rimbu.org/docs/collections/map) page _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Proximity API Docs](https://rimbu.org/api/rimbu/proximity)_. +### Exported Types: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +| Name | Description | +| -------------------- | -------------------------------------------------------------------------------------------------------- | +| `ProximityMap` | A map with entries of key type `K` and value type `V`, where keys are compared via a `DistanceFunction`. | + +### Documentation + +For complete documentation, please visit the [Map](https://rimbu.org/docs/collections/map) page in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu Proximity API Docs](https://rimbu.org/api/rimbu/proximity). + +### Try It Out + +Experience `@rimbu/proximity` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -To install this package only: - -For `yarn`: +### Package Managers -> `yarn add @rimbu/proximity` +**Yarn:** -For `npm`: +```sh +yarn add @rimbu/proximity +``` -> `npm i @rimbu/proximity` +**npm:** -For `bun`: +```sh +npm install @rimbu/proximity +``` -> `bun add @rimbu/proximity` +**Bun:** -### Deno +```sh +bun add @rimbu/proximity +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -59,7 +70,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -93,22 +104,18 @@ console.log( ## Author -[Arvid Nicolaas](https://github.com/vitoke) - -[Gianluca Costa](https://gianlucacosta.info) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke) and [Gianluca Costa](https://gianlucacosta.info). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/deno_dist/sorted/README.md b/deno_dist/sorted/README.md index a30d649ec..781ee41f4 100644 --- a/deno_dist/sorted/README.md +++ b/deno_dist/sorted/README.md @@ -8,51 +8,61 @@ # @rimbu/sorted -This package contains the implementation for the `SortedMap` and `SortedSet` types, which form the basis of all Rimbu Sorted collections. The collections use a `Comp` instance that is configurable to determine the equality and order of values/objects. +Welcome to `@rimbu/sorted`! This package provides robust implementations for `SortedMap` and `SortedSet`, forming the foundation of all Rimbu Sorted collections. These collections use a configurable `Comp` instance to determine the equality and order of values/objects, ensuring efficient and reliable data management. -This package exports the following types: +### Key Features: -| Name | Description | -| ----------------- | -------------------------------------------------------------------------------------- | -| `SortedMap` | a map with entries of key type K and value type V, where keys are sorted with a `Comp` | -| `SortedSet` | a set of value type T where items are sorted with a `Comp` | +- **Sorted Collections**: Maintain elements in a sorted order based on a configurable comparator. +- **Efficient Lookups**: Optimized for fast retrieval and manipulation of data. +- **Flexible Configurations**: Customize how elements are compared and ordered. -For complete documentation please visit the [Map](https://rimbu.org/docs/collections/map) or [Se](https://rimbu.org/docs/collections/set) page in the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Sorted API Docs](https://rimbu.org/api/rimbu/sorted)_. +### Exported Types: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +| Name | Description | +| ----------------- | ------------------------------------------------------------------------------------------- | +| `SortedMap` | A map with entries of key type `K` and value type `V`, where keys are sorted with a `Comp`. | +| `SortedSet` | A set of value type `T` where items are sorted with a `Comp`. | + +### Documentation + +For complete documentation, please visit the [Map](https://rimbu.org/docs/collections/map) or [Set](https://rimbu.org/docs/collections/set) pages in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu Sorted API Docs](https://rimbu.org/api/rimbu/sorted). + +### Try It Out + +Experience `@rimbu/sorted` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/sorted` - -For `npm`: +```sh +yarn add @rimbu/sorted +``` -> `npm i @rimbu/sorted` +**npm:** -For `bun`: +```sh +npm install @rimbu/sorted +``` -> `bun add @rimbu/sorted` +**Bun:** -### Deno +```sh +bun add @rimbu/sorted +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -62,7 +72,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -91,20 +101,18 @@ console.log(SortedSet.of(1, 3, 4, 2, 3).toString()); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/deno_dist/spy/README.md b/deno_dist/spy/README.md index 6a091ea02..96961359e 100644 --- a/deno_dist/spy/README.md +++ b/deno_dist/spy/README.md @@ -8,23 +8,29 @@ # @rimbu/spy -This package supports testing through utilities that can create spies and mocks for functions, objects, classes. It is still in experimental phase. +Welcome to `@rimbu/spy`! This package provides utilities for creating spies and mocks for functions, objects, and classes, aimed at enhancing your testing experience. Note that it is currently in the experimental phase. ## Motivation -With frameworks like Deno and ES Modules it becomes much harder/impossible to mock modules like for example Jest does. Deno [recommends](https://deno.land/manual@v1.25.2/testing/mocking) to use specific ways to expose dependencies so that they can be replaced without mocking modules. +Testing frameworks like Deno and ES Modules present challenges for module mocking, unlike Jest. Deno [recommends](https://deno.land/manual@v1.25.2/testing/mocking) exposing dependencies in a way that allows replacement without module mocking. -Alternatives like [vitest](https://vitest.dev/) do offer support for ES Modules, so if you like (to keep) this way of testing, that may be a viable option. +While alternatives like [Vitest](https://vitest.dev/) support ES Modules and may be a viable option for those who prefer module mocking, `@rimbu/spy` focuses on testing without module mocking. This means you cannot replace functions inside other files/modules directly. Instead, dependencies should be encapsulated in an object passed into the dependent code, which can then be spied/mocked. -It is important to note that `@rimbu/spy` is aimed at testing without module mocking. This means that it is not possible to replace functions inside of other files/modules. The only way is to ensure the dependencies are in an object that is passed into the code that depends on it. This object can then be spied/mocked and passed into the code. +### Key Benefits -One motivation to use an external spying/mocking framework is to be independent of a specific testing framework, so that the pain of switching becomes much less if one decides to switch. +- **Framework Independence**: Using an external spying/mocking framework reduces dependency on a specific testing framework, easing the transition if you decide to switch. +- **Minimal and Simple API**: `@rimbu/spy` offers a straightforward API that is easy to learn and use, ensuring type consistency with original implementations. +- **Alternative to Sinon JS**: While [Sinon JS](https://sinonjs.org/) provides extensive functionality, `@rimbu/spy` offers a simpler, more minimalistic approach. -A popular external spying/mocking framework is [Sinon JS](https://sinonjs.org/), which offers probably most of the functionality available in this package. Like `@rimbu/spy` it is also aimed at spying/mocking without module mocking. +### Why Use `@rimbu/spy`? -The `@rimbu/spy` package however offers a more simple and minimal API that is easy to learn and use. It also takes care that types are consistent with their original implementations. +- **No Module Mocking**: Ideal for scenarios where module mocking is not feasible or desired. +- **Consistent Types**: Ensures that types remain consistent with their original implementations. +- **Ease of Use**: Designed to be easy to learn and integrate into your testing workflow. -It depends on preference and also use case coverage whether this package offers a full alternative. Please feel free to try it out and provide feedback, and don't forget to create issues if you find anything that is not working correctly. +### Feedback and Contributions + +We encourage you to try out `@rimbu/spy` and provide feedback. If you encounter any issues or have suggestions for improvement, please don't hesitate to create issues on our repository. ## Docs @@ -36,9 +42,9 @@ Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/mai ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) ### Yarn / NPM / Bun @@ -102,20 +108,18 @@ spyConsole[Spy.META].callSequence; ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/deno_dist/stream/README.md b/deno_dist/stream/README.md index 15e529eca..97df4aee8 100644 --- a/deno_dist/stream/README.md +++ b/deno_dist/stream/README.md @@ -8,54 +8,64 @@ # @rimbu/stream -A Stream is an Iterable-like structure that represents a source that can stream values when requested. The source is unspecified, it may be a materialized object (e.g. an Array), or a calculated sequence (e.g. the fibonacci numbers). However, unlike an Iterable, a Stream offers many methods to change the values produced by the Stream, before it is consumed, without the need to `materialize` intermediate instances. +Welcome to `@rimbu/stream`! A `Stream` is an Iterable-like structure that represents a source capable of streaming values upon request. The source can be a materialized object (e.g., an Array) or a calculated sequence (e.g., Fibonacci numbers). Unlike an Iterable, a Stream offers numerous methods to transform the values produced before consumption, without needing to materialize intermediate instances. -This package exports the following main types: +### Key Features: -| Name | Description | -| ----------------- | ---------------------------------------------------------------------------------------------------- | -| `FastIterable` | an Iterable that supports faster iterating than the `Iterable` type | -| `FastIterator` | an Iterator that supports faster iterating than the `Iterator` type | -| `Stream` | an Iterable-like structure that represents a source that can produce values of type T when requested | -| `Streamable` | an interface requiring that an object has a `.stream()` method | -| `StreamSource` | a convenience type that covers all types that can be automatically converted to a `Stream` | +- **Flexible Sources**: Stream values from various sources, whether materialized or calculated. +- **Transformation Methods**: Modify the stream's values on-the-fly without creating intermediate objects. +- **Efficient Iteration**: Optimized for performance, providing faster iteration capabilities. -For complete documentation please visit the [Stream page](https://rimbu.org/docs/collections/stream) in the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Stream API Docs](https://rimbu.org/api/rimbu/stream)_. +### Exported Types: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +| Name | Description | +| ----------------- | ------------------------------------------------------------------------------------------------------- | +| `FastIterable` | An Iterable that supports faster iterating than the `Iterable` type. | +| `FastIterator` | An Iterator that supports faster iterating than the `Iterator` type. | +| `Stream` | An Iterable-like structure that represents a source that can produce values of type `T` when requested. | +| `Streamable` | An interface requiring that an object has a `.stream()` method. | +| `StreamSource` | A convenience type that covers all types that can be automatically converted to a `Stream`. | + +### Documentation + +For complete documentation, please visit the [Stream page](https://rimbu.org/docs/collections/stream) in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu Stream API Docs](https://rimbu.org/api/rimbu/stream). + +### Try It Out + +Experience `@rimbu/stream` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/stream` - -For `npm`: +```sh +yarn add @rimbu/stream +``` -> `npm i @rimbu/stream` +**npm:** -For `bun`: +```sh +npm install @rimbu/stream +``` -> `bun add @rimbu/stream` +**Bun:** -### Deno +```sh +bun add @rimbu/stream +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -65,7 +75,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -94,20 +104,18 @@ console.log(Stream.range({ start: 10, amount: 15 }).toArray()); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/deno_dist/table/README.md b/deno_dist/table/README.md index 761d56c6e..3d535be37 100644 --- a/deno_dist/table/README.md +++ b/deno_dist/table/README.md @@ -8,51 +8,61 @@ # @rimbu/table -A `Table` is an immutable 2-dimensional Map, containing row keys and column keys, where a combination of a row and column key can contain one value. +Welcome to `@rimbu/table`! A `Table` is an immutable 2-dimensional Map, containing row keys and column keys, where a combination of a row and column key can contain one value. This structure is ideal for scenarios where you need to manage data in a grid-like format. -This package exports the following main types: +### Key Features: -| Name | Description | -| ----------------------- | ------------------------------------------------------------------- | -| `Table` | a generic `Table` with row keys R, column keys C, and values V | -| `VariantTable` | a type-variant `Table` with row keys R, column keys C, and values V | +- **Immutable Structure**: Ensures data integrity by preventing modifications to the original table. +- **2-Dimensional Mapping**: Efficiently map combinations of row and column keys to values. +- **Flexible and Type-Safe**: Supports generic and type-variant tables for robust type safety. -For complete documentation please visit the [Table page](https://rimbu.org/docs/collections/table) in the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Table API Docs](https://rimbu.org/api/rimbu/table)_. +### Exported Types: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +| Name | Description | +| ----------------------- | -------------------------------------------------------------------------------------------------- | +| `Table` | A generic `Table` with row keys of type `R`, column keys of type `C`, and values of type `V`. | +| `VariantTable` | A type-variant `Table` with row keys of type `R`, column keys of type `C`, and values of type `V`. | + +### Documentation + +For complete documentation, please visit the [Table page](https://rimbu.org/docs/collections/table) in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu Table API Docs](https://rimbu.org/api/rimbu/table). + +### Try It Out + +Experience `@rimbu/table` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/table` - -For `npm`: +```sh +yarn add @rimbu/table +``` -> `npm i @rimbu/table` +**npm:** -For `bun`: +```sh +npm install @rimbu/table +``` -> `bun add @rimbu/table` +**Bun:** -### Deno +```sh +bun add @rimbu/table +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -62,7 +72,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -83,20 +93,18 @@ To run your script (let's assume the entry point is in `src/main.ts`): ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/deno_dist/typical/README.md b/deno_dist/typical/README.md index 824f67c40..1bf985558 100644 --- a/deno_dist/typical/README.md +++ b/deno_dist/typical/README.md @@ -34,27 +34,38 @@ Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/mai ## Installation -### Yarn / NPM / Bun +### Compabitity -This library only contains type definitions. You should therefore install it as a dev dependency: +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -For `yarn`: +### Package Managers -> `yarn add --dev @rimbu/typical` +This library only contains type definitions. You should therefore install it as a dev dependency: -For `npm`: +**Yarn:** -> `npm i @rimbu/typical --save-dev` +```sh +yarn add --dev @rimbu/typical +``` -For `bun`: +**npm:** -> `bun add --development @rimbu/typical` +```sh +npm i @rimbu/typical --save-dev +``` -### Deno +**Bun:** -For Deno, the following approach is recommended: +```sh +bun add --development @rimbu/typical +``` + +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -64,7 +75,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -119,20 +130,18 @@ limitedString('abc'); // compiler error ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/docs/docs/index.mdx b/docs/docs/index.mdx index 35723397f..203991bee 100644 --- a/docs/docs/index.mdx +++ b/docs/docs/index.mdx @@ -5,35 +5,43 @@ title: Introduction slug: . --- -Rimbu is a TypeScript library focused on _immutable, performant, and type-safe collections_ and other tools. Its main aim is to allow coders 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. +# Welcome to Rimbu -## Library contents +Rimbu is a TypeScript library focused on **immutable, performant, and type-safe collections** and other tools. Its main aim is to enable developers to create safe and efficient programs without getting in the way. Inspired by various collection libraries such as Java's Guava, Java 8 Collection, and Scala's collection library, Rimbu brings together the best ideas from these sources and the Scala community. + +## Library Contents ### Collections -Rimbu's main package is the `@rimbu/core` package that contains many commonly used collection types: +Rimbu's core package, `@rimbu/core`, includes a wide range of commonly used collection types: -- [`List`](docs/collections/list): a block-based random-access structure akin to a `Vector` -- [Maps](docs/collections/map): `HashMap`, `SortedMap`, `OrderedMap` -- [Sets](docs/collections/set): `HashSet`, `SortedSet` `OrderedSet` -- [`Stream`](docs/collections/stream): a way to create and convert streams of data +- [`List`](docs/collections/list): A block-based random-access structure similar to a `Vector`. +- [Maps](docs/collections/map): Includes `HashMap`, `SortedMap`, and `OrderedMap`. +- [Sets](docs/collections/set): Includes `HashSet`, `SortedSet`, and `OrderedSet`. +- [`Stream`](docs/collections/stream): Facilitates the creation and conversion of data streams. -It also contains less commonly used, but very useful collections, like [`MultiMap`](docs/collections/multimap), [`BiMultiMap`](docs/collections/bimultimap), [`MultiSet`](docs/collections/multiset), [`Table`](docs/collections/table), [`Graph`](docs/collections/graph). +Additionally, Rimbu offers less commonly used but highly useful collections: -### Immutable object utilities +- [`MultiMap`](docs/collections/multimap) +- [`BiMultiMap`](docs/collections/bimultimap) +- [`MultiSet`](docs/collections/multiset) +- [`Table`](docs/collections/table) +- [`Graph`](docs/collections/graph) -Next to collections, there are also tools to treat plain JS objects as immutable or deep readonly objects, most notable are [`Patch`](docs/deep/patch) [`Match`](docs/deep/match), and [`Path`](docs/deep/path). +### Immutable Object Utilities -All collections are designed to efficiently support data sets from small to really large (as long as it fits in memory). Persistence is maximally used to ensure that memory load is kept to a mimimum. This means that, when changing a collection instance, maximum effort is made to keep references to elements that did not change equal. +Beyond collections, Rimbu provides tools to treat plain JavaScript objects as immutable or deeply readonly objects. Key utilities include: -### Other packages +- [`Patch`](docs/deep/patch) +- [`Match`](docs/deep/match) +- [`Path`](docs/deep/path) -Next to the `@rimbu/core` package, the `@rimbu/actor` package contains a library to easily create and update immutable state. For convenience there is also a library to allow for easy integration with state management in React `@rimbu/reactor`. +All collections are designed to efficiently handle data sets ranging from small to very large (as long as they fit in memory). Persistence is maximized to ensure minimal memory usage. When modifying a collection instance, Rimbu makes every effort to keep references to unchanged elements the same. -## Quick overview of features and benefits +## 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. -- No external dependencies (except for ts-lib). -- Provides sane defaults but allows extensive customization and configuration. -- A unique novel and efficient immutable random-access List implementation. +- **Extensive Collection Types**: Covers a wide range of problems, reducing the need for additional coding. +- **Advanced Typing**: Leverages the TypeScript compiler for strict type inference with minimal explicit typing. +- **No External Dependencies**: Except for `ts-lib`, ensuring lightweight and fast performance. +- **Customizable and Configurable**: Provides sensible defaults with extensive customization options. +- **Efficient Immutable List**: Features a unique and efficient immutable random-access List implementation. diff --git a/packages/actor/README.md b/packages/actor/README.md index de9a0d993..afc935fef 100644 --- a/packages/actor/README.md +++ b/packages/actor/README.md @@ -18,30 +18,34 @@ For complete documentation please visit the _[Rimbu Docs](https://rimbu.org)_ or ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/actor` - -For `npm`: +```sh +yarn add @rimbu/actor +``` -> `npm i @rimbu/actor` +**npm:** -For `bun`: +```sh +npm install @rimbu/actor +``` -> `bun add @rimbu/actor` +**Bun:** -### Deno +```sh +bun add @rimbu/actor +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -51,7 +55,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -97,20 +101,18 @@ console.log(actor.state) ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/packages/base/README.md b/packages/base/README.md index 1d2c8b1b4..a133b4869 100644 --- a/packages/base/README.md +++ b/packages/base/README.md @@ -18,30 +18,34 @@ For complete documentation please visit the _[Rimbu Docs](https://rimbu.org)_ or ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/base` - -For `npm`: +```sh +yarn add @rimbu/base +``` -> `npm i @rimbu/base` +**npm:** -For `bun`: +```sh +npm install @rimbu/base +``` -> `bun add @rimbu/base` +**Bun:** -### Deno +```sh +bun add @rimbu/base +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -51,7 +55,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -85,20 +89,18 @@ console.log(arr); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/packages/bimap/README.md b/packages/bimap/README.md index f7da0cc4c..e2d447df8 100644 --- a/packages/bimap/README.md +++ b/packages/bimap/README.md @@ -8,52 +8,61 @@ # @rimbu/bimap -A BiMap is a bidirectional Map of keys and values, where each key has exactly one value, and each value has exactly one key. There is a one-to-one mapping between keys and values. +Welcome to `@rimbu/bimap`! A BiMap is a powerful bidirectional map that ensures a one-to-one mapping between keys and values. Each key is associated with exactly one value, and each value is associated with exactly one key. -This package exports the following types: +### Key Features: -| Name | Description | -| ------------------- | ---------------------------------------------------------------------------------------------- | -| `BiMap` | a generic BiMap between keys of type K and values of type V | -| `HashBiMap` | a BiMap between keys of type K and values of type V, where both the keys and values are hashed | -| `SortedBiMap` | a BiMap between keys of type K and values of type V, where both the keys and values are sorted | +- **Bidirectional Mapping**: Effortlessly navigate between keys and values. +- **Unique Associations**: Guarantees unique key-value pairs, ensuring data integrity. -For complete documentation please visit the [BiMap page](https://rimbu.org/docs/collections/bimap) in the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu BiMap API Docs](https://rimbu.org/api/rimbu/bimap)_. +### Exported Types: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +| Name | Description | +| ------------------- | --------------------------------------------------------------------------------------- | +| `BiMap` | A generic BiMap for keys of type `K` and values of type `V`. | +| `HashBiMap` | A BiMap where both keys and values are hashed for efficient lookups. | +| `SortedBiMap` | A BiMap where both keys and values are sorted, providing ordered traversal and lookups. | + +### Documentation + +For complete documentation, please visit the [BiMap page](https://rimbu.org/docs/collections/bimap) in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu BiMap API Docs](https://rimbu.org/api/rimbu/bimap). + +### Try It Out + +Experience `@rimbu/bimap` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/bimap` - -For `npm`: +```sh +yarn add @rimbu/bimap +``` -> `npm i @rimbu/bimap` +**npm:** -For `bun`: +```sh +npm install @rimbu/bimap +``` -> `bun add @rimbu/bimap` +**Bun:** -### Deno +```sh +bun add @rimbu/bimap +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -63,7 +72,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -94,20 +103,18 @@ console.log(biMap.toString()); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/packages/bimultimap/README.md b/packages/bimultimap/README.md index 50880454d..b35ff0f32 100644 --- a/packages/bimultimap/README.md +++ b/packages/bimultimap/README.md @@ -8,52 +8,62 @@ # @rimbu/bimultimap -A BiMultiMap is a bidirectional MultiMap of keys and values, where each key-value association also has an inverse value-key association. There is a many-to-many mapping between keys and values. +Welcome to `@rimbu/bimultimap`! A BiMultiMap is a powerful bidirectional MultiMap that allows many-to-many mappings between keys and values. Each key-value association also has an inverse value-key association, making it easy to navigate in both directions. -This package exports the following types: +### Key Features: -| Name | Description | -| ------------------------ | ---------------------------------------------------------------- | -| `BiMultiMap` | a generic BiMultiMap between keys of type K and values of type V | -| `HashBiMultiMap` | a BiMultiMap implementation where keys and values are hashed | -| `SortedBiMultiMap` | a BiMultiMap implementation where keys and values are sorted | +- **Bidirectional MultiMap**: Navigate seamlessly between keys and values and vice versa. +- **Many-to-Many Mapping**: Supports multiple values for a single key and multiple keys for a single value. +- **Flexible Implementations**: Choose between hashed and sorted implementations based on your needs. -For complete documentation please visit the [BiMultiap page](https://rimbu.org/docs/collections/bimultimap) in the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu BiMultiMap API Docs](https://rimbu.org/api/rimbu/bimultimap)_. +### Exported Types: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +| Name | Description | +| ------------------------ | -------------------------------------------------------------------------------------------- | +| `BiMultiMap` | A generic BiMultiMap for keys of type `K` and values of type `V`. | +| `HashBiMultiMap` | A BiMultiMap where both keys and values are hashed for efficient lookups. | +| `SortedBiMultiMap` | A BiMultiMap where both keys and values are sorted, providing ordered traversal and lookups. | + +### Documentation + +For complete documentation, please visit the [BiMultiMap page](https://rimbu.org/docs/collections/bimultimap) in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu BiMultiMap API Docs](https://rimbu.org/api/rimbu/bimultimap). + +### Try It Out + +Experience `@rimbu/bimultimap` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/bimultimap` - -For `npm`: +```sh +yarn add @rimbu/bimultimap +``` -> `npm i @rimbu/bimultimap` +**npm:** -For `bun`: +```sh +npm install @rimbu/bimultimap +``` -> `bun add @rimbu/bimultimap` +**Bun:** -### Deno +```sh +bun add @rimbu/bimultimap +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -63,7 +73,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -99,20 +109,18 @@ console.log(biMultiMap.getKeys('b').toArray()); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/packages/channel/README.md b/packages/channel/README.md index 83917074f..a08a3c600 100644 --- a/packages/channel/README.md +++ b/packages/channel/README.md @@ -2,46 +2,63 @@

-[![npm version](https://badge.fury.io/js/@rimbu%2Fordered.svg)](https://www.npmjs.com/package/@rimbu/ordered) [![Deno](https://shield.deno.dev/x/rimbu)](http://deno.land/x/rimbu) - +[![npm version](https://badge.fury.io/js/@rimbu%channel.svg)](https://www.npmjs.com/package/@rimbu/channel) +[![Deno](https://shield.deno.dev/x/rimbu)](http://deno.land/x/rimbu) ![Licence](https://img.shields.io/github/license/rimbu-org/rimbu) # @rimbu/channel -This package provides various channel implementation in the spirit of Go to allow synchronous or buffered one-to-one communication in an asynchronous context. The `Channel` offers communication between asynchronous processes in the same thread. `CrossChannel` consist of pairs of channels that allow different types of messages for sending and receiving. `RemoteChannel` offers communication between (worker) threads. `RemoteObject` offers a way to interact with a remote API/object as though it is available locally over a channel. `RemoteChannelServer` and `RemoteChannelClient` allow easy cross-thread creation of new channels. Finally, this package offers various cross-process synchronization utilities like `Mutex`, `Semaphore` and `WaitGroup`. +Welcome to the `@rimbu/channel` package! This package brings you powerful channel implementations inspired by Go, designed to facilitate synchronous or buffered one-to-one communication in an asynchronous context. + +### Key Features: + +- **Channel**: Seamlessly communicate between asynchronous processes within the same thread. +- **CrossChannel**: Utilize pairs of channels for sending and receiving different types of messages. +- **RemoteChannel**: Enable communication between (worker) threads effortlessly. +- **RemoteObject**: Interact with remote APIs/objects as if they are available locally over a channel. +- **RemoteChannelServer & RemoteChannelClient**: Easily create new channels across threads. +- **Synchronization Utilities**: Leverage cross-process synchronization tools like `Mutex`, `Semaphore`, and `WaitGroup`. -For complete documentation please visit the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Core API Docs](https://rimbu.org/api/rimbu/channel)_. +### Why Use `@rimbu/channel`? + +- **Simplicity**: Simplifies complex asynchronous communication patterns. +- **Flexibility**: Supports various communication models and synchronization mechanisms. +- **Efficiency**: Optimized for performance in concurrent environments. + +For complete documentation, please visit the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu Core API Docs](https://rimbu.org/api/rimbu/channel). ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -To install this package: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/channel` - -For `npm`: +```sh +yarn add @rimbu/channel +``` -> `npm i @rimbu/channel` +**npm:** -For `bun`: +```sh +npm install @rimbu/channel +``` -> `bun add @rimbu/channel` +**Bun:** -### Deno +```sh +bun add @rimbu/channel +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -51,7 +68,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -104,20 +121,18 @@ consume(channel); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/packages/collection-types/README.md b/packages/collection-types/README.md index 03caf2686..f41b2a0d6 100644 --- a/packages/collection-types/README.md +++ b/packages/collection-types/README.md @@ -2,8 +2,8 @@

-[![npm version](https://badge.fury.io/js/@rimbu%2Fcollection-types.svg)](https://www.npmjs.com/package/@rimbu/collection-types) [![Deno](https://shield.deno.dev/x/rimbu)](http://deno.land/x/rimbu) - +[![npm version](https://badge.fury.io/js/@rimbu%2Fcollection-types.svg)](https://www.npmjs.com/package/@rimbu/collection-types) +[![Deno](https://shield.deno.dev/x/rimbu)](http://deno.land/x/rimbu) ![Licence](https://img.shields.io/github/license/rimbu-org/rimbu) # @rimbu/collection-types @@ -18,34 +18,34 @@ Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/mai ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: - -For `yarn`: +### Package Managers -> `yarn add @rimbu/collection-types` +**Yarn:** -For `npm`: +```sh +yarn add @rimbu/collection-types +``` -> `npm i @rimbu/collection-types` +**npm:** -For `bun`: +```sh +npm install @rimbu/collection-types +``` -> `bun add @rimbu/collection-types` +**Bun:** -### Deno +```sh +bun add @rimbu/collection-types +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -55,7 +55,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -76,20 +76,18 @@ To run your script (let's assume the entry point is in `src/main.ts`): ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/packages/common/README.md b/packages/common/README.md index 0d514bb20..98af3e4e5 100644 --- a/packages/common/README.md +++ b/packages/common/README.md @@ -8,62 +8,64 @@ # @rimbu/common -This package exports common types and objects used in many other Rimbu packages. +Welcome to `@rimbu/common`! This package exports essential types and utilities that are widely used across various Rimbu packages. It provides a robust foundation for building efficient and reliable applications. -Here is a brief overview: +### Overview of most important Exported Types: -| Name | Description | -| --------------- | -------------------------------------------------------------------------------------------------------- | -| `CollectFun` | types and values used in various `collect` methods in the collection. | -| `Comp` | an interface and default implementations of comparison functions to order/sort values. | -| `Eq` | an interface and default implementations of equality functions to check value equality | -| `Err` | functions to easily create error throwing behavior as fallback values | -| `FastIterable` | an `Iterable` implementation that can be more performant than usual iterables | -| `IndexRange` | utilities to select index ranges in indexed collections | -| `OptLazy` | a utility to provide values that can optionally be lazy | -| `Range` | utility types to specify ranges for comparable types | -| `Reducer` | an API to create reusable pieces of logic that process streams of data that can be processed in parallel | -| `TraverseState` | a utility for loops to maintain the traversal state | -| `Update` | a standard way to update a value | +| Name | Description | +| --------------- | ----------------------------------------------------------------------------------------------------- | +| `CollectFun` | Types and values used in various `collect` methods within collections. | +| `Comp` | Interface and default implementations of comparison functions for ordering/sorting values. | +| `Eq` | Interface and default implementations of equality functions for checking value equality. | +| `Err` | Functions to easily create error-throwing behavior as fallback values. | +| `FastIterable` | An `Iterable` implementation that offers better performance than standard iterables. | +| `IndexRange` | Utilities for selecting index ranges in indexed collections. | +| `OptLazy` | A utility to provide values that can optionally be lazy. | +| `Range` | Utility types to specify ranges for comparable types. | +| `Reducer` | An API to create reusable logic pieces that process data streams, which can be processed in parallel. | +| `TraverseState` | A utility for loops to maintain traversal state. | +| `Update` | A standard way to update a value. | -Other than these values, there are a number of utility types that are exported that are also used throughout the collection. +### Documentation -For complete documentation please visit the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Common API Docs](https://rimbu.org/api/rimbu/common)_. +For complete documentation, please visit the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu Common API Docs](https://rimbu.org/api/rimbu/common). -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +### Try It Out + +Experience `@rimbu/common` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: - -For `yarn`: +### Package Managers -> `yarn add @rimbu/common` +**Yarn:** -For `npm`: +```sh +yarn add @rimbu/common +``` -> `npm i @rimbu/common` +**npm:** -For `bun`: +```sh +npm install @rimbu/common +``` -> `bun add @rimbu/common` +**Bun:** -### Deno +```sh +bun add @rimbu/common +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -73,7 +75,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -103,20 +105,18 @@ console.log(Eq.stringCaseInsentitive()('abc', 'AbC')); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/packages/core/README.md b/packages/core/README.md index de1649f95..56613d0f5 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -8,42 +8,54 @@ # @rimbu/core -This package exports all the Rimbu collections, plus the contents of the `@rimbu/common` package. Its aim is to provide an easy to use access point for the collections. +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. -For complete documentation please visit the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Core API Docs](https://rimbu.org/api/rimbu/core)_. +### Key Features: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +- **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](https://rimbu.org), or directly explore the [Rimbu Core API Docs](https://rimbu.org/api/rimbu/core). + +### Try It Out + +Experience the power of `@rimbu/core` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -To get started with the immutable collections, which are exported through `@rimbu/core`, you can use the following. +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/core` - -For `npm`: +```sh +yarn add @rimbu/core +``` -> `npm i @rimbu/core` +**npm:** -For `bun`: +```sh +npm install @rimbu/core +``` -> `bun add @rimbu/core` +**Bun:** -### Deno +```sh +bun add @rimbu/core +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -53,7 +65,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -108,42 +120,40 @@ console.log(map.toArray()); ## Contents -This package exports everything from the following packages: - -| Name | Description | -| ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -| [@rimbu/bimap](../bimap) | a bidirectional map in which keys and values have a one-to-one mapping | -| [@rimbu/bimultimap](../bimultimap) | a bidirectional multimap in which keys and values have a many-to-many mapping | -| [@rimbu/collection-types](../collection-types) | definitions for many of the generic collection types, used to derive more specific implementations | -| [@rimbu/common](../common) | contains public types and functions that are used throughout the whole library | -| [@rimbu/deep](../deep) | offers tools to use handle plain JS objects as immutable objects. library | -| [@rimbu/graph](../graph) | provides various graph implementations to represent data in forms of nodes and edges | -| [@rimbu/hashed](../hashed) | provides a HashMap and HashSet implementation, using hash functions to efficiently retrieve keys | -| [@rimbu/list](../list) | provides the List datastructure containing an ordered sequence of elements that can be manipulated and accessed randomly in an efficient way | -| [@rimbu/multimap](../multimap) | provides a map in which keys and values have a one-to-many mapping | -| [@rimbu/multiset](../multiset) | provides a set in which elements can occur multiple times | -| [@rimbu/ordered](../ordered) | provides the OrderedSet and OrderedMap collections, that keep insertion order | -| [@rimbu/proximity](../proximity) | provides ProximityMap, that retrieves values based on key proximity | -| [@rimbu/sorted](../sorted) | provides a SortedMap and SortedSet implementation, using compare functions to efficiently keep the elements sorted | -| [@rimbu/stream](../stream) | contains methods to easily manipulate sequences of data | -| [@rimbu/table](../table) | provides various Table data structures where a combination of a row key and column key maps to a single value. | +This package exports everything from the following sub-packages, each designed to provide specialized data structures and utilities: + +| Package | Description | +| ---------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| [@rimbu/bimap](../bimap) | A bidirectional map where each key maps to a unique value and vice versa. | +| [@rimbu/bimultimap](../bimultimap) | A bidirectional multimap allowing many-to-many mappings between keys and values. | +| [@rimbu/collection-types](../collection-types) | Definitions for generic collection types, serving as the foundation for specific implementations. | +| [@rimbu/common](../common) | Public types and functions used throughout the entire library. | +| [@rimbu/deep](../deep) | Tools for handling plain JavaScript objects as immutable objects. | +| [@rimbu/graph](../graph) | Various graph implementations to represent data as nodes and edges. | +| [@rimbu/hashed](../hashed) | HashMap and HashSet implementations using hash functions for efficient key retrieval. | +| [@rimbu/list](../list) | List data structure for ordered sequences of elements with efficient random access and manipulation. | +| [@rimbu/multimap](../multimap) | A map where each key can map to multiple values. | +| [@rimbu/multiset](../multiset) | A set where elements can occur multiple times. | +| [@rimbu/ordered](../ordered) | OrderedSet and OrderedMap collections that maintain insertion order. | +| [@rimbu/proximity](../proximity) | ProximityMap for retrieving values based on key proximity. | +| [@rimbu/sorted](../sorted) | SortedMap and SortedSet implementations using compare functions to keep elements sorted. | +| [@rimbu/stream](../stream) | Methods for manipulating sequences of data. | +| [@rimbu/table](../table) | Table data structures where a combination of row and column keys maps to a single value. | ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/packages/deep/README.md b/packages/deep/README.md index 32a2ebdf9..0a958e0d4 100644 --- a/packages/deep/README.md +++ b/packages/deep/README.md @@ -8,44 +8,56 @@ # @rimbu/deep -Offers tools to use handle plain JS objects as immutable objects. The [`Patch` object](https://rimbu.org/docs/deep/patch) allows convenient immutable modification of simple objects. The [`Match` object](https://rimbu.org/docs/deep/match) allows easy matching on plain objects. The [`Path` object](https://rimbu.org/docs/deep/path) allows easy querying of nested values. The [`Immutable` type](https://rimbu.org/docs/deep/immutable) makes it easy to create plain objects that that have compile-time protection against mutation. The [`Tuple` type](https://rimbu.org/docs/deep/tuple) is a utility to have similar functionality as `as const` but less strict. +Welcome to `@rimbu/deep`! This package offers powerful tools to handle plain JavaScript objects as immutable objects, making your code more robust and maintainable. -For complete documentation please visit the [Immutable Objects overview](https://rimbu.org/docs/deep/overview) in the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Deep API Docs](https://rimbu.org/api/rimbu/deep)_. +### Key Features: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +- **Immutable Modification**: Use the [`Patch` object](https://rimbu.org/docs/deep/patch) for convenient and immutable modifications of simple objects. +- **Pattern Matching**: The [`Match` object](https://rimbu.org/docs/deep/match) allows easy pattern matching on plain objects. +- **Nested Value Querying**: Easily query nested values with the [`Path` object](https://rimbu.org/docs/deep/path). +- **Compile-Time Protection**: The [`Immutable` type](https://rimbu.org/docs/deep/immutable) helps create plain objects with compile-time protection against mutation. +- **Flexible Tuples**: The [`Tuple` type](https://rimbu.org/docs/deep/tuple) provides similar functionality to `as const` but with more flexibility. + +### Documentation + +For complete documentation, please visit the [Immutable Objects overview](https://rimbu.org/docs/deep/overview) in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu Deep API Docs](https://rimbu.org/api/rimbu/deep). + +### Try It Out + +Experience `@rimbu/deep` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/deep` - -For `npm`: +```sh +yarn add @rimbu/deep +``` -> `npm i @rimbu/deep` +**npm:** -For `bun`: +```sh +npm install @rimbu/deep +``` -> `bun add @rimbu/deep` +**Bun:** -### Deno +```sh +bun add @rimbu/deep +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -55,7 +67,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -93,20 +105,18 @@ console.log( ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/packages/graph/README.md b/packages/graph/README.md index 5731af57d..c59b4a7c8 100644 --- a/packages/graph/README.md +++ b/packages/graph/README.md @@ -8,59 +8,69 @@ # @rimbu/graph -A Graph is a data structure consisting of nodes that can be connected through edges. Each node has a unique value or identifier. Edges can be directed, in which case we will call it an Arrow Graph, or undirected, in which case we will call it an Edge Graph. Furthermore, edges and arrows can also have values, in which case we call it a Valued Graph. +Welcome to `@rimbu/graph`! This package provides a versatile and powerful Graph data structure, allowing you to model complex relationships between nodes with ease. -This package exports the following main types: +### Key Features: -| Name | Description | -| -------------------------- | ----------------------------------------------------------------------------- | -| `ArrowGraph` | a generic directed graph with nodes of type N | -| `ArrowGraphHashed` | a directed graph with hashed nodes of type N | -| `ArrowGraphSorted` | a directed graph with sorted nodes of type N | -| `EdgeGraph` | a generic undirected graph with nodes of type N | -| `EdgeGraphHashed` | an undirected graph with hashed nodes of type N | -| `EdgeGraphSorted` | an undirected graph with sorted nodes of type N | -| `Graph` | a generic graph with nodes of type N | -| `ValuedGraph` | a generic graph with nodes of type N and edges with value type V | -| `VariantGraph` | a generic type-variant graph with nodes of type N | -| `VariantValuedGraph` | a generic type-variant graph with nodes of type N and edges with value type V | +- **Directed and Undirected Graphs**: Choose between Arrow Graphs (directed) and Edge Graphs (undirected) based on your needs. +- **Valued Graphs**: Add values to your edges for richer data representation. +- **Hashed and Sorted Implementations**: Optimize your graphs with hashed or sorted nodes for efficient lookups and ordered traversal. -For complete documentation please visit the [Graph page](https://rimbu.org/docs/collections/graph) _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Graph API Docs](https://rimbu.org/api/rimbu/graph)_. +### Exported Types: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +| Name | Description | +| -------------------------- | ---------------------------------------------------------------------------------- | +| `ArrowGraph` | A generic directed graph with nodes of type `N`. | +| `ArrowGraphHashed` | A directed graph with hashed nodes of type `N`. | +| `ArrowGraphSorted` | A directed graph with sorted nodes of type `N`. | +| `EdgeGraph` | A generic undirected graph with nodes of type `N`. | +| `EdgeGraphHashed` | An undirected graph with hashed nodes of type `N`. | +| `EdgeGraphSorted` | An undirected graph with sorted nodes of type `N`. | +| `Graph` | A generic graph with nodes of type `N`. | +| `ValuedGraph` | A generic graph with nodes of type `N` and edges with value type `V`. | +| `VariantGraph` | A generic type-variant graph with nodes of type `N`. | +| `VariantValuedGraph` | A generic type-variant graph with nodes of type `N` and edges with value type `V`. | + +### Documentation + +For complete documentation, please visit the [Graph page](https://rimbu.org/docs/collections/graph) in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu Graph API Docs](https://rimbu.org/api/rimbu/graph). + +### Try It Out + +Experience `@rimbu/graph` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/graph` - -For `npm`: +```sh +yarn add @rimbu/graph +``` -> `npm i @rimbu/graph` +**npm:** -For `bun`: +```sh +npm install @rimbu/graph +``` -> `bun add @rimbu/graph` +**Bun:** -### Deno +```sh +bun add @rimbu/graph +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -70,7 +80,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -99,20 +109,18 @@ console.log(EdgeGraphSorted.of([1, 2], [2, 3], [3, 1], [5]).toString()); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/packages/hashed/README.md b/packages/hashed/README.md index ded41c0af..91a7818b3 100644 --- a/packages/hashed/README.md +++ b/packages/hashed/README.md @@ -8,51 +8,61 @@ # @rimbu/hashed -This package contains the implementation for the `HashMap` and `HashSet` types, which form the basis of all Rimbu Hashed collections. The collections use a `Hasher` instance that is configurable to determine the equality of values/objects. +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. -This package exports the following main types: +### Key Features: -| Name | Description | -| --------------- | ---------------------------------------------------------------------------------------- | -| `HashMap` | a map with entries of key type K and value type V, where keys are hashed with a `Hasher` | -| `HashSet` | a set of value type T where items are hashed with a `Hasher` | +- **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. -For complete documentation please visit the [Map](https://rimbu.org/docs/collections/map) or [Set](https://rimbu.org/docs/collections/set) page _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Hashed API Docs](https://rimbu.org/api/rimbu/hashed)_. +### Exported Types: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +| Name | Description | +| --------------- | --------------------------------------------------------------------------------------------- | +| `HashMap` | A map with entries of key type `K` and value type `V`, where keys are hashed with a `Hasher`. | +| `HashSet` | A set of value type `T` where items are hashed with a `Hasher`. | + +### Documentation + +For complete documentation, please visit the [Map](https://rimbu.org/docs/collections/map) or [Set](https://rimbu.org/docs/collections/set) pages in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu Hashed API Docs](https://rimbu.org/api/rimbu/hashed). + +### Try It Out + +Experience `@rimbu/hashed` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/hashed` - -For `npm`: +```sh +yarn add @rimbu/hashed +``` -> `npm i @rimbu/hashed` +**npm:** -For `bun`: +```sh +npm install @rimbu/hashed +``` -> `bun add @rimbu/hashed` +**Bun:** -### Deno +```sh +bun add @rimbu/hashed +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -62,7 +72,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -91,20 +101,18 @@ console.log(HashSet.of(1, 3, 2, 4, 3, 1).toString()); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/packages/list/README.md b/packages/list/README.md index bcede4ad9..3701bc5c0 100644 --- a/packages/list/README.md +++ b/packages/list/README.md @@ -8,44 +8,54 @@ # @rimbu/list -The List is an immutable ordered sequence of elements that can be manipulated and accessed randomly in a relatively efficient way. +Welcome to `@rimbu/list`! This package provides an immutable, ordered sequence of elements that can be efficiently accessed and manipulated. -For complete documentation please visit the [List page](https://rimbu.org/docs/collections/list) in the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu List API Docs](https://rimbu.org/api/rimbu/list)_. +### Key Features: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +- **Immutable**: Ensures data integrity by preventing modifications to the original list. +- **Ordered**: Maintains the order of elements, allowing for predictable iteration. +- **Efficient Access**: Supports random access and manipulation with high performance. + +### Documentation + +For complete documentation, please visit the [List page](https://rimbu.org/docs/collections/list) in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu List API Docs](https://rimbu.org/api/rimbu/list). + +### Try It Out + +Experience `@rimbu/list` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/list` - -For `npm`: +```sh +yarn add @rimbu/list +``` -> `npm i @rimbu/list` +**npm:** -For `bun`: +```sh +npm install @rimbu/list +``` -> `bun add @rimbu/list` +**Bun:** -### Deno +```sh +bun add @rimbu/list +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -55,7 +65,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -84,20 +94,18 @@ console.log(List.of(1, 3, 2, 4, 3, 1).toString()); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/packages/multimap/README.md b/packages/multimap/README.md index b7a44c535..fb4d93bcb 100644 --- a/packages/multimap/README.md +++ b/packages/multimap/README.md @@ -8,49 +8,61 @@ # @rimbu/multimap -A Rimbu MultiMap is a Map in which each key has one or more values. For each key, it's associated values are unique, that is, the values for each key are kept in a `Set`. +Welcome to `@rimbu/multimap`! A Rimbu MultiMap is a powerful data structure where each key can have one or more unique values, stored in a `Set`. This ensures that each key's associated values are unique and easily manageable. -This package exports the following types: +### Key Features: -| Name | Description | -| --------------------------------- | ---------------------------------------------------------------------- | -| `HashMultiMapHashValue` | a multimap between hashed values of type K and hashed values of type V | -| `HashMultiMapSortedValue` | a multimap between hashed values of type K and sorted values of type V | -| `MultiMap` | a generic multimap between values of type K and values of type V | -| `SortedMultiMapHashValue` | a multimap between sorted values of type K and hashed values of type V | -| `SortedMultiMapSortedValue` | a multimap between sorted values of type K and sorted values of type V | -| `VariantMultiMap` | a type-variant multimap between values of type K and values of type V | +- **Multiple Values per Key**: Each key can map to multiple unique values. +- **Unique Values**: Values for each key are stored in a `Set`, ensuring uniqueness. +- **Flexible Implementations**: Choose between hashed and sorted implementations based on your needs. -For complete documentation please visit the [MultiMap page](https://rimbu.org/docs/collections/multimap) in the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu MultiMap API Docs](https://rimbu.org/api/rimbu/multimap)_. +### Exported Types: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +| Name | Description | +| --------------------------------- | -------------------------------------------------------------------- | +| `HashMultiMapHashValue` | A multimap with hashed keys and hashed values. | +| `HashMultiMapSortedValue` | A multimap with hashed keys and sorted values. | +| `MultiMap` | A generic multimap for keys of type `K` and values of type `V`. | +| `SortedMultiMapHashValue` | A multimap with sorted keys and hashed values. | +| `SortedMultiMapSortedValue` | A multimap with sorted keys and sorted values. | +| `VariantMultiMap` | A type-variant multimap for keys of type `K` and values of type `V`. | + +### Documentation + +For complete documentation, please visit the [MultiMap page](https://rimbu.org/docs/collections/multimap) in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu MultiMap API Docs](https://rimbu.org/api/rimbu/multimap). + +### Try It Out + +Experience `@rimbu/multimap` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). +### Package Managers -To install this package only: +**Yarn:** -For `yarn`: - -> `yarn add @rimbu/multimap` +```sh +yarn add @rimbu/multimap +``` -For `npm`: +**npm:** -> `npm i @rimbu/multimap` +```sh +npm install @rimbu/multimap +``` -For `bun`: +**Bun:** -> `bun add @rimbu/multimap` +```sh +bun add @rimbu/multimap +``` ### Deno @@ -97,20 +109,18 @@ console.log(HashMultiMapHashValue.of([1, 2], [1, 3], [2, 3]).toString()); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/packages/multiset/README.md b/packages/multiset/README.md index a18eac53f..fdebde5aa 100644 --- a/packages/multiset/README.md +++ b/packages/multiset/README.md @@ -8,53 +8,63 @@ # @rimbu/multiset -A Rimbu MultiSet is a Set-like structure where each unique element can be added multiple times. Each element in the MultiSet occurs one or more times. The MultiSet keeps track of the amount of times an element was added. +Welcome to `@rimbu/multiset`! A Rimbu MultiSet is a powerful Set-like structure where each unique element can be added multiple times. It keeps track of the number of occurrences of each element, making it ideal for scenarios where element frequency matters. -This package exports the following main types: +### Key Features: -| Name | Description | -| -------------------- | ----------------------------------------------- | -| `HashMultiSet` | a MultiSet with hashed elements of type T | -| `MultiSet` | a generic MultiSet with elements of type T | -| `SortedMultiSet` | a MultiSet with sorted elements of type T | -| `VariantMultiSet` | a type-variant MultiSet with elements of type T | +- **Multiple Occurrences**: Each element can occur one or more times. +- **Frequency Tracking**: Efficiently keeps track of how many times each element was added. +- **Flexible Implementations**: Choose between hashed and sorted implementations based on your needs. -For complete documentation please visit the [MultiSet page](https://rimbu.org/docs/collections/multiset) in the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu MultiSet API Docs](https://rimbu.org/api/rimbu/multiset)_. +### Exported Types: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +| Name | Description | +| -------------------- | -------------------------------------------------- | +| `HashMultiSet` | A MultiSet with hashed elements of type `T`. | +| `MultiSet` | A generic MultiSet with elements of type `T`. | +| `SortedMultiSet` | A MultiSet with sorted elements of type `T`. | +| `VariantMultiSet` | A type-variant MultiSet with elements of type `T`. | + +### Documentation + +For complete documentation, please visit the [MultiSet page](https://rimbu.org/docs/collections/multiset) in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu MultiSet API Docs](https://rimbu.org/api/rimbu/multiset). + +### Try It Out + +Experience `@rimbu/multiset` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/multiset` - -For `npm`: +```sh +yarn add @rimbu/multiset +``` -> `npm i @rimbu/multiset` +**npm:** -For `bun`: +```sh +npm install @rimbu/multiset +``` -> `bun add @rimbu/multiset` +**Bun:** -### Deno +```sh +bun add @rimbu/multiset +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -64,7 +74,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -93,20 +103,18 @@ console.log(SortedMultiSet.of(1, 3, 2, 3, 2, 3).toString()); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/packages/ordered/README.md b/packages/ordered/README.md index 65b3be033..2672dc9c3 100644 --- a/packages/ordered/README.md +++ b/packages/ordered/README.md @@ -8,51 +8,61 @@ # @rimbu/ordered -This packages contains an implementation of `OrderedMap` and `OrderedSet`, which are wrappers around other `RMap` and `RSet` implementations, and that add the capability to remember insertion order. Iterating over the collections will return the values in this insertion order. +Welcome to `@rimbu/ordered`! This package provides implementations of `OrderedMap` and `OrderedSet`, which are designed to maintain the insertion order of elements. These collections are wrappers around other `RMap` and `RSet` implementations, ensuring that iteration over the collections returns values in the order they were added. -This package exports the following types: +### Key Features: -| Name | Description | -| ------------------ | ------------------------------------------------------------------------------------------ | -| `OrderedMap` | a map with entries of key type K and value type V, where key insertion order is maintained | -| `OrderedSet` | a set of value type T where insertion order is maintained | +- **Insertion Order**: Maintains the order in which elements are added. +- **Flexible Wrappers**: Wraps around existing `RMap` and `RSet` implementations. +- **Efficient Iteration**: Iterating over the collections respects the insertion order. -For complete documentation please visit the [Map](https://rimbu.org/docs/collections/map) or [Se](https://rimbu.org/docs/collections/set) page in the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Ordered API Docs](https://rimbu.org/api/rimbu/ordered)_. +### Exported Types: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +| Name | Description | +| ------------------ | ----------------------------------------------------------------------------------------------- | +| `OrderedMap` | A map with entries of key type `K` and value type `V`, where key insertion order is maintained. | +| `OrderedSet` | A set of value type `T` where insertion order is maintained. | + +### Documentation + +For complete documentation, please visit the [Map](https://rimbu.org/docs/collections/map) or [Set](https://rimbu.org/docs/collections/set) pages in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu Ordered API Docs](https://rimbu.org/api/rimbu/ordered). + +### Try It Out + +Experience `@rimbu/ordered` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/ordered` - -For `npm`: +```sh +yarn add @rimbu/ordered +``` -> `npm i @rimbu/ordered` +**npm:** -For `bun`: +```sh +npm install @rimbu/ordered +``` -> `bun add @rimbu/ordered` +**Bun:** -### Deno +```sh +bun add @rimbu/ordered +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -62,7 +72,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -91,20 +101,18 @@ console.log(OrderedHashSet.of(1, 3, 2, 3, 1).toString()); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/packages/proximity/README.md b/packages/proximity/README.md index 72ca97644..cac025d27 100644 --- a/packages/proximity/README.md +++ b/packages/proximity/README.md @@ -8,48 +8,59 @@ # @rimbu/proximity -This package contains all Rimbu proximity-based collections - especially the `ProximityMap` type. The collections use a configurable `DistanceFunction` to determine the proximity of values/objects. +Welcome to `@rimbu/proximity`! This package provides proximity-based collections, with the `ProximityMap` type being the highlight. These collections use a configurable `DistanceFunction` to determine the proximity of values or objects, making them ideal for scenarios where spatial relationships matter. -This package exports the following main types: +### Key Features: -| Name | Description | -| -------------------- | --------------------------------------------------------------------------------------------------- | -| `ProximityMap` | a map with entries of key type K and value type V, where keys are compared via a `DistanceFunction` | +- **Proximity-Based Mapping**: Use a `DistanceFunction` to compare keys based on their proximity. +- **Flexible Configurations**: Customize how proximity is calculated to suit your specific needs. -For complete documentation please visit the [Map](https://rimbu.org/docs/collections/map) page _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Proximity API Docs](https://rimbu.org/api/rimbu/proximity)_. +### Exported Types: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +| Name | Description | +| -------------------- | -------------------------------------------------------------------------------------------------------- | +| `ProximityMap` | A map with entries of key type `K` and value type `V`, where keys are compared via a `DistanceFunction`. | + +### Documentation + +For complete documentation, please visit the [Map](https://rimbu.org/docs/collections/map) page in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu Proximity API Docs](https://rimbu.org/api/rimbu/proximity). + +### Try It Out + +Experience `@rimbu/proximity` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -To install this package only: - -For `yarn`: +### Package Managers -> `yarn add @rimbu/proximity` +**Yarn:** -For `npm`: +```sh +yarn add @rimbu/proximity +``` -> `npm i @rimbu/proximity` +**npm:** -For `bun`: +```sh +npm install @rimbu/proximity +``` -> `bun add @rimbu/proximity` +**Bun:** -### Deno +```sh +bun add @rimbu/proximity +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -59,7 +70,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -93,22 +104,18 @@ console.log( ## Author -[Arvid Nicolaas](https://github.com/vitoke) - -[Gianluca Costa](https://gianlucacosta.info) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke) and [Gianluca Costa](https://gianlucacosta.info). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/packages/sorted/README.md b/packages/sorted/README.md index a30d649ec..781ee41f4 100644 --- a/packages/sorted/README.md +++ b/packages/sorted/README.md @@ -8,51 +8,61 @@ # @rimbu/sorted -This package contains the implementation for the `SortedMap` and `SortedSet` types, which form the basis of all Rimbu Sorted collections. The collections use a `Comp` instance that is configurable to determine the equality and order of values/objects. +Welcome to `@rimbu/sorted`! This package provides robust implementations for `SortedMap` and `SortedSet`, forming the foundation of all Rimbu Sorted collections. These collections use a configurable `Comp` instance to determine the equality and order of values/objects, ensuring efficient and reliable data management. -This package exports the following types: +### Key Features: -| Name | Description | -| ----------------- | -------------------------------------------------------------------------------------- | -| `SortedMap` | a map with entries of key type K and value type V, where keys are sorted with a `Comp` | -| `SortedSet` | a set of value type T where items are sorted with a `Comp` | +- **Sorted Collections**: Maintain elements in a sorted order based on a configurable comparator. +- **Efficient Lookups**: Optimized for fast retrieval and manipulation of data. +- **Flexible Configurations**: Customize how elements are compared and ordered. -For complete documentation please visit the [Map](https://rimbu.org/docs/collections/map) or [Se](https://rimbu.org/docs/collections/set) page in the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Sorted API Docs](https://rimbu.org/api/rimbu/sorted)_. +### Exported Types: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +| Name | Description | +| ----------------- | ------------------------------------------------------------------------------------------- | +| `SortedMap` | A map with entries of key type `K` and value type `V`, where keys are sorted with a `Comp`. | +| `SortedSet` | A set of value type `T` where items are sorted with a `Comp`. | + +### Documentation + +For complete documentation, please visit the [Map](https://rimbu.org/docs/collections/map) or [Set](https://rimbu.org/docs/collections/set) pages in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu Sorted API Docs](https://rimbu.org/api/rimbu/sorted). + +### Try It Out + +Experience `@rimbu/sorted` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/sorted` - -For `npm`: +```sh +yarn add @rimbu/sorted +``` -> `npm i @rimbu/sorted` +**npm:** -For `bun`: +```sh +npm install @rimbu/sorted +``` -> `bun add @rimbu/sorted` +**Bun:** -### Deno +```sh +bun add @rimbu/sorted +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -62,7 +72,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -91,20 +101,18 @@ console.log(SortedSet.of(1, 3, 4, 2, 3).toString()); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/packages/spy/README.md b/packages/spy/README.md index 6a091ea02..96961359e 100644 --- a/packages/spy/README.md +++ b/packages/spy/README.md @@ -8,23 +8,29 @@ # @rimbu/spy -This package supports testing through utilities that can create spies and mocks for functions, objects, classes. It is still in experimental phase. +Welcome to `@rimbu/spy`! This package provides utilities for creating spies and mocks for functions, objects, and classes, aimed at enhancing your testing experience. Note that it is currently in the experimental phase. ## Motivation -With frameworks like Deno and ES Modules it becomes much harder/impossible to mock modules like for example Jest does. Deno [recommends](https://deno.land/manual@v1.25.2/testing/mocking) to use specific ways to expose dependencies so that they can be replaced without mocking modules. +Testing frameworks like Deno and ES Modules present challenges for module mocking, unlike Jest. Deno [recommends](https://deno.land/manual@v1.25.2/testing/mocking) exposing dependencies in a way that allows replacement without module mocking. -Alternatives like [vitest](https://vitest.dev/) do offer support for ES Modules, so if you like (to keep) this way of testing, that may be a viable option. +While alternatives like [Vitest](https://vitest.dev/) support ES Modules and may be a viable option for those who prefer module mocking, `@rimbu/spy` focuses on testing without module mocking. This means you cannot replace functions inside other files/modules directly. Instead, dependencies should be encapsulated in an object passed into the dependent code, which can then be spied/mocked. -It is important to note that `@rimbu/spy` is aimed at testing without module mocking. This means that it is not possible to replace functions inside of other files/modules. The only way is to ensure the dependencies are in an object that is passed into the code that depends on it. This object can then be spied/mocked and passed into the code. +### Key Benefits -One motivation to use an external spying/mocking framework is to be independent of a specific testing framework, so that the pain of switching becomes much less if one decides to switch. +- **Framework Independence**: Using an external spying/mocking framework reduces dependency on a specific testing framework, easing the transition if you decide to switch. +- **Minimal and Simple API**: `@rimbu/spy` offers a straightforward API that is easy to learn and use, ensuring type consistency with original implementations. +- **Alternative to Sinon JS**: While [Sinon JS](https://sinonjs.org/) provides extensive functionality, `@rimbu/spy` offers a simpler, more minimalistic approach. -A popular external spying/mocking framework is [Sinon JS](https://sinonjs.org/), which offers probably most of the functionality available in this package. Like `@rimbu/spy` it is also aimed at spying/mocking without module mocking. +### Why Use `@rimbu/spy`? -The `@rimbu/spy` package however offers a more simple and minimal API that is easy to learn and use. It also takes care that types are consistent with their original implementations. +- **No Module Mocking**: Ideal for scenarios where module mocking is not feasible or desired. +- **Consistent Types**: Ensures that types remain consistent with their original implementations. +- **Ease of Use**: Designed to be easy to learn and integrate into your testing workflow. -It depends on preference and also use case coverage whether this package offers a full alternative. Please feel free to try it out and provide feedback, and don't forget to create issues if you find anything that is not working correctly. +### Feedback and Contributions + +We encourage you to try out `@rimbu/spy` and provide feedback. If you encounter any issues or have suggestions for improvement, please don't hesitate to create issues on our repository. ## Docs @@ -36,9 +42,9 @@ Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/mai ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) ### Yarn / NPM / Bun @@ -102,20 +108,18 @@ spyConsole[Spy.META].callSequence; ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/packages/stream/README.md b/packages/stream/README.md index 15e529eca..97df4aee8 100644 --- a/packages/stream/README.md +++ b/packages/stream/README.md @@ -8,54 +8,64 @@ # @rimbu/stream -A Stream is an Iterable-like structure that represents a source that can stream values when requested. The source is unspecified, it may be a materialized object (e.g. an Array), or a calculated sequence (e.g. the fibonacci numbers). However, unlike an Iterable, a Stream offers many methods to change the values produced by the Stream, before it is consumed, without the need to `materialize` intermediate instances. +Welcome to `@rimbu/stream`! A `Stream` is an Iterable-like structure that represents a source capable of streaming values upon request. The source can be a materialized object (e.g., an Array) or a calculated sequence (e.g., Fibonacci numbers). Unlike an Iterable, a Stream offers numerous methods to transform the values produced before consumption, without needing to materialize intermediate instances. -This package exports the following main types: +### Key Features: -| Name | Description | -| ----------------- | ---------------------------------------------------------------------------------------------------- | -| `FastIterable` | an Iterable that supports faster iterating than the `Iterable` type | -| `FastIterator` | an Iterator that supports faster iterating than the `Iterator` type | -| `Stream` | an Iterable-like structure that represents a source that can produce values of type T when requested | -| `Streamable` | an interface requiring that an object has a `.stream()` method | -| `StreamSource` | a convenience type that covers all types that can be automatically converted to a `Stream` | +- **Flexible Sources**: Stream values from various sources, whether materialized or calculated. +- **Transformation Methods**: Modify the stream's values on-the-fly without creating intermediate objects. +- **Efficient Iteration**: Optimized for performance, providing faster iteration capabilities. -For complete documentation please visit the [Stream page](https://rimbu.org/docs/collections/stream) in the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Stream API Docs](https://rimbu.org/api/rimbu/stream)_. +### Exported Types: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +| Name | Description | +| ----------------- | ------------------------------------------------------------------------------------------------------- | +| `FastIterable` | An Iterable that supports faster iterating than the `Iterable` type. | +| `FastIterator` | An Iterator that supports faster iterating than the `Iterator` type. | +| `Stream` | An Iterable-like structure that represents a source that can produce values of type `T` when requested. | +| `Streamable` | An interface requiring that an object has a `.stream()` method. | +| `StreamSource` | A convenience type that covers all types that can be automatically converted to a `Stream`. | + +### Documentation + +For complete documentation, please visit the [Stream page](https://rimbu.org/docs/collections/stream) in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu Stream API Docs](https://rimbu.org/api/rimbu/stream). + +### Try It Out + +Experience `@rimbu/stream` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/stream` - -For `npm`: +```sh +yarn add @rimbu/stream +``` -> `npm i @rimbu/stream` +**npm:** -For `bun`: +```sh +npm install @rimbu/stream +``` -> `bun add @rimbu/stream` +**Bun:** -### Deno +```sh +bun add @rimbu/stream +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -65,7 +75,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -94,20 +104,18 @@ console.log(Stream.range({ start: 10, amount: 15 }).toArray()); ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/packages/table/README.md b/packages/table/README.md index 761d56c6e..3d535be37 100644 --- a/packages/table/README.md +++ b/packages/table/README.md @@ -8,51 +8,61 @@ # @rimbu/table -A `Table` is an immutable 2-dimensional Map, containing row keys and column keys, where a combination of a row and column key can contain one value. +Welcome to `@rimbu/table`! A `Table` is an immutable 2-dimensional Map, containing row keys and column keys, where a combination of a row and column key can contain one value. This structure is ideal for scenarios where you need to manage data in a grid-like format. -This package exports the following main types: +### Key Features: -| Name | Description | -| ----------------------- | ------------------------------------------------------------------- | -| `Table` | a generic `Table` with row keys R, column keys C, and values V | -| `VariantTable` | a type-variant `Table` with row keys R, column keys C, and values V | +- **Immutable Structure**: Ensures data integrity by preventing modifications to the original table. +- **2-Dimensional Mapping**: Efficiently map combinations of row and column keys to values. +- **Flexible and Type-Safe**: Supports generic and type-variant tables for robust type safety. -For complete documentation please visit the [Table page](https://rimbu.org/docs/collections/table) in the _[Rimbu Docs](https://rimbu.org)_, or directly see the _[Rimbu Table API Docs](https://rimbu.org/api/rimbu/table)_. +### Exported Types: -Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) in CodeSandBox. +| Name | Description | +| ----------------------- | -------------------------------------------------------------------------------------------------- | +| `Table` | A generic `Table` with row keys of type `R`, column keys of type `C`, and values of type `V`. | +| `VariantTable` | A type-variant `Table` with row keys of type `R`, column keys of type `C`, and values of type `V`. | + +### Documentation + +For complete documentation, please visit the [Table page](https://rimbu.org/docs/collections/table) in the [Rimbu Docs](https://rimbu.org), or directly explore the [Rimbu Table API Docs](https://rimbu.org/api/rimbu/table). + +### Try It Out + +Experience `@rimbu/table` in action! [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/main?previewwindow=console&view=split&editorsize=65&moduleview=1&module=/src/index.ts) on CodeSandBox. ## Installation ### Compabitity -- [`Node >= 16` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) - [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) -- [`Bun >= 0.6.0` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) - `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -### Yarn / NPM / Bun - -For convenience, all main types are also exported through [`@rimbu/core`](../core). - -To install this package only: +### Package Managers -For `yarn`: +**Yarn:** -> `yarn add @rimbu/table` - -For `npm`: +```sh +yarn add @rimbu/table +``` -> `npm i @rimbu/table` +**npm:** -For `bun`: +```sh +npm install @rimbu/table +``` -> `bun add @rimbu/table` +**Bun:** -### Deno +```sh +bun add @rimbu/table +``` -For Deno, the following approach is recommended: +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -62,7 +72,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -83,20 +93,18 @@ To run your script (let's assume the entry point is in `src/main.ts`): ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. diff --git a/packages/typical/README.md b/packages/typical/README.md index 824f67c40..1bf985558 100644 --- a/packages/typical/README.md +++ b/packages/typical/README.md @@ -34,27 +34,38 @@ Or [Try Out Rimbu](https://codesandbox.io/s/github/vitoke/rimbu-sandbox/tree/mai ## Installation -### Yarn / NPM / Bun +### Compabitity -This library only contains type definitions. You should therefore install it as a dev dependency: +- [`Node` ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?logo=node.js&logoColor=white)](https://nodejs.org) +- [`Deno` ![Deno JS](https://img.shields.io/badge/deno%20js-000000?logo=deno&logoColor=white)](https://deno.com/runtime) +- [`Bun` ![Bun](https://img.shields.io/badge/Bun-%23000000.svg?logoColor=white)](https://bun.sh/) +- `Web` ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?logoColor=white) -For `yarn`: +### Package Managers -> `yarn add --dev @rimbu/typical` +This library only contains type definitions. You should therefore install it as a dev dependency: -For `npm`: +**Yarn:** -> `npm i @rimbu/typical --save-dev` +```sh +yarn add --dev @rimbu/typical +``` -For `bun`: +**npm:** -> `bun add --development @rimbu/typical` +```sh +npm i @rimbu/typical --save-dev +``` -### Deno +**Bun:** -For Deno, the following approach is recommended: +```sh +bun add --development @rimbu/typical +``` + +### Deno Setup -In the root folder of your project, create or edit a file called `import_map.json` with the following contents (where you should replace `x.y.z` with the desired version of Rimbu): +Create or edit `import_map.json` in your project root: ```json { @@ -64,7 +75,7 @@ In the root folder of your project, create or edit a file called `import_map.jso } ``` -**Note: The trailing slashes are important!** +_Replace `x.y.z` with the desired version._ In this way you can use relative imports from Rimbu in your code, like so: @@ -119,20 +130,18 @@ limitedString('abc'); // compiler error ## Author -[Arvid Nicolaas](https://github.com/vitoke) +Created and maintained by [Arvid Nicolaas](https://github.com/vitoke). ## Contributing -Feel very welcome to contribute to further improve Rimbu. Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). +We welcome contributions! Please read our [Contributing guide](https://github.com/rimbu-org/rimbu/blob/main/CONTRIBUTING.md). ## Contributors -Made with [contributors-img](https://contrib.rocks). +_Made with [contributors-img](https://contrib.rocks)._ ## License -Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas. - -See [LICENSE](./LICENSE) for more information. +This project is licensed under the MIT License. See the [LICENSE](./LICENSE) for details. From d5f6e13fd01d71269ca0b76a6dc4670370ce5d46 Mon Sep 17 00:00:00 2001 From: Arvid Nicolaas Date: Fri, 8 Nov 2024 14:00:13 +0100 Subject: [PATCH 2/2] chore: update versions of dependencies --- package.json | 4 ++-- yarn.lock | 26 +++++++++++++------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 586a18898..54403e271 100644 --- a/package.json +++ b/package.json @@ -65,8 +65,8 @@ "prettier": "^2.8.8", "rimraf": "^5.0.1", "ts-node": "^10.9.1", - "tsd": "^0.30.4", - "typescript": "^5.5.2", + "tsd": "^0.31.1", + "typescript": "^5.5.4", "vite-tsconfig-paths": "^4.3.1", "vitest": "^1.2.1" }, diff --git a/yarn.lock b/yarn.lock index edc015ba7..8dc79af74 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1108,10 +1108,10 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== -"@tsd/typescript@~5.3.3": - version "5.3.3" - resolved "https://registry.yarnpkg.com/@tsd/typescript/-/typescript-5.3.3.tgz#bc01854b6e0e746b5f70a6b48c30c7b95b81a74e" - integrity sha512-CQlfzol0ldaU+ftWuG52vH29uRoKboLinLy84wS8TQOu+m+tWoaUfk4svL4ij2V8M5284KymJBlHUusKj6k34w== +"@tsd/typescript@~5.4.3": + version "5.4.5" + resolved "https://registry.yarnpkg.com/@tsd/typescript/-/typescript-5.4.5.tgz#a7c11d3a97ddfa201f831f4e4270a169a87f7655" + integrity sha512-saiCxzHRhUrRxQV2JhH580aQUZiKQUXI38FcAcikcfOomAil4G4lxT0RfrrKywoAYP/rqAdYXYmNRLppcd+hQQ== "@tufjs/canonical-json@1.0.0": version "1.0.0" @@ -6468,12 +6468,12 @@ tsconfig-paths@^4.1.2: minimist "^1.2.6" strip-bom "^3.0.0" -tsd@^0.30.4: - version "0.30.4" - resolved "https://registry.yarnpkg.com/tsd/-/tsd-0.30.4.tgz#bd7ab29befd23fb4d1c827c3db740a930a626ca1" - integrity sha512-ncC4SwAeUk0OTcXt5h8l0/gOLHJSp9ogosvOADT6QYzrl0ITm398B3wkz8YESqefIsEEwvYAU8bvo7/rcN/M0Q== +tsd@^0.31.1: + version "0.31.1" + resolved "https://registry.yarnpkg.com/tsd/-/tsd-0.31.1.tgz#350f8332169b30faf50ad0b3e66fe87f51b1d4c7" + integrity sha512-sSL84A0SFwx2xGMWrxlGaarKFSQszWjJS2vgNDDLwatytzg2aq6ShlwHsBYxRNmjzXISODwMva5ZOdAg/4AoOA== dependencies: - "@tsd/typescript" "~5.3.3" + "@tsd/typescript" "~5.4.3" eslint-formatter-pretty "^4.1.0" globby "^11.0.1" jest-diff "^29.0.3" @@ -6564,10 +6564,10 @@ typescript@5.3.3, "typescript@>=3 < 6": resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== -typescript@^5.5.2: - version "5.5.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.2.tgz#c26f023cb0054e657ce04f72583ea2d85f8d0507" - integrity sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew== +typescript@^5.5.4: + version "5.5.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" + integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== ufo@^1.3.2: version "1.3.2"