@rimbu/stream
v2.2.0
Published
Efficient structure representing a sequence of elements, with powerful operations for TypeScript
Downloads
20,943
Maintainers
Readme
@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.
This package exports the following main types:
| Name | Description |
| ----------------- | ---------------------------------------------------------------------------------------------------- |
| FastIterable<T>
| an Iterable that supports faster iterating than the Iterable
type |
| FastIterator<T>
| an Iterator that supports faster iterating than the Iterator
type |
| Stream<T>
| an Iterable-like structure that represents a source that can produce values of type T when requested |
| Streamable<T>
| an interface requiring that an object has a .stream()
method |
| StreamSource<T>
| a convenience type that covers all types that can be automatically converted to a Stream
|
For complete documentation please visit the Stream page in the Rimbu Docs, or directly see the Rimbu Stream API Docs.
Or Try Out Rimbu in CodeSandBox.
Installation
Compabitity
Yarn / NPM / Bun
For convenience, all main types are also exported through @rimbu/core
.
To install this package only:
For yarn
:
yarn add @rimbu/stream
For npm
:
npm i @rimbu/stream
For bun
:
bun add @rimbu/stream
Deno
For Deno, the following approach is recommended:
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):
{
"imports": {
"@rimbu/": "https://deno.land/x/[email protected]/"
}
}
Note: The trailing slashes are important!
In this way you can use relative imports from Rimbu in your code, like so:
import { List } from '@rimbu/core/mod.ts';
import { HashMap } from '@rimbu/hashed/mod.ts';
Note that for sub-packages, due to conversion limitations it is needed to import the index.ts
instead of mod.ts
, like so:
import { HashMap } from '@rimbu/hashed/map/index.ts';
To run your script (let's assume the entry point is in src/main.ts
):
deno run --import-map import_map.json src/main.ts
Usage
import { Stream } from '@rimbu/stream';
console.log(Stream.range({ start: 10, amount: 15 }).toArray());
Author
Contributing
Feel very welcome to contribute to further improve Rimbu. Please read our Contributing guide.
Contributors
Made with contributors-img.
License
Licensed under the MIT License, Copyright © 2020-present Arvid Nicolaas.
See LICENSE for more information.