@rimbu/stream

Efficient structure representing a sequence of elements, with powerful operations for TypeScript

Usage no npm install needed!

<script type="module">
  import rimbuStream from 'https://cdn.skypack.dev/@rimbu/stream';
</script>

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 Try Out Rimbu in CodeSandBox.

Installation

All types are exported through @rimbu/core. It is recommended to use that package.

To install separately:

Yarn/NPM

yarn add @rimbu/stream

or

npm i @rimbu/stream

Deno

Create a file called rimbu.ts and add the following:

export * from 'https://deno.land/x/rimbu/stream/mod.ts';

Or using a pinned version (x.y.z):

export * from 'https://deno.land/x/rimbu/stream@x.y.z/mod.ts';

Then import what you need from rimbu.ts:

import { Stream } from './rimbu.ts';

Because Rimbu uses complex types, it's recommended to use the --no-check flag (your editor should already have checked your code) and to specify a tsconfig.json file with the settings described below.

Running your script then becomes:

deno run --no-check --config tsconfig.json <your-script>.ts

Usage

import { Stream } from '@rimbu/stream';

console.log(Stream.range({ start: 10, amount: 15 }).toArray());

Author

Arvid Nicolaas

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.