Displaying 1 to 20 from 35 results

callbag-basics - 👜 Tiny and fast reactive/iterable programming library

  •    Javascript

Basic callbag factories and operators to get started with. Callbag is just a spec, but callbag-basics is a real library you can use. Imagine a hybrid between an Observable and an (Async)Iterable, that's what callbags are all about. In addition, the internals are tiny because it's all done with a few simple callbacks, following the callbag spec. As a result, it's tiny and fast.

callbag - 👜 A standard for JS callbacks that enables lightweight observables and iterables

  •    Javascript

Read also the announcement blog post and this introductory blog post. The capitalized keywords used here follow IETF's RFC 2119.

iterall - 🌻 Minimal zero-dependency utilities for using Iterables in all JavaScript environments.

  •    Javascript

Minimal zero-dependency utilities for using JavaScript Iterables in all environments.

IxJS - The Interactive Extensions for JavaScript

  •    TypeScript

The Interactive Extensions for JavaScript (IxJS) brings the Array#extras combinators to iterables, generators, async iterables and async generators. With the introduction of the Symbol.iterator and generators in ES2015, and subsequent introduction of Symbol.asyncIterator and async generators, it became obvious we need an abstraction over these data structures for composition, querying and more.IxJS unifies both synchronous and asynchronous pull-based collections, just as RxJS unified the world of push-based collections. RxJS is great for event-based workflows where the data can be pushed at the rate of the producer, however, IxJS is great at I/O operations where you as the consumer can pull the data when you are ready.




ixjava - Iterable Extensions for Java 6+

  •    Java

Iterable Extensions for Java, the dual of RxJava. Originally implemented in the Reactive4Java framework, now standalone; no dependencies on any reactive library.The aim is to provide, lazily evaluated, pull-based datastream support with the same naming as in RxJava mainly for the pre-Java-8 world. The Stream API in Java 8 is not exactly the same thing because Streams can be only consumed once while Iterables can be consumed many times. Google Guava features a lot of Iterable operators, plus now they have the FluentIterable with similar setup but far less operators available.

p-waterfall - Run promise-returning & async functions in series, each passing its result to the next

  •    Javascript

Returns a Promise that is fulfilled when all promises returned from calling the functions in tasks are fulfilled, or rejects if any of the promises reject. The fulfilled value is the value returned from the last task.Functions are expected to return a value. If a Promise is returned, it's awaited before continuing with the next task.

iterum - Handling iterables like lazy arrays.

  •    Javascript

iterum library provides a class for handling iterable transformations inspired in Array methods and lodash/fp functions. This library also supplies combinatorial functions like permutations, combinations, variations, product, power and powerSet that has a high computational cost but this library is able to support taking advantage of lazy evaluation.Then, obj can be processed as an ordered list of values. However, unlike built-in iterables (Array, Set, Map, String, etc), obj is a lazy iterable. It means that, thanks to generators, obj does not store the computed values in memory and its values are computed just when are required. These are the essential features for implementing lazy evaluation.


p-each-series - Iterate over promises serially

  •    Javascript

Useful as a side-effect iterator. Prefer p-map if you don't need side-effects, as it's concurrent.Returns a Promise that is fulfilled when all promises in input and ones returned from iterator are fulfilled, or rejects if any of the promises reject. The fulfillment value is the original input.

p-filter - Filter promises concurrently

  •    Javascript

Useful when you need to run promise-returning & async functions multiple times with different inputs concurrently and get a filtered down result.Returns a Promise that is fulfilled when all promises in input and ones returned from filterer are fulfilled, or rejects if any of the promises reject. The fulfilled value is an Array of the fulfilled values returned from filterer in input order.

p-map - Map over promises concurrently

  •    Javascript

Useful when you need to run promise-returning & async functions multiple times with different inputs concurrently.Returns a Promise that is fulfilled when all promises in input and ones returned from mapper are fulfilled, or rejects if any of the promises reject. The fulfilled value is an Array of the fulfilled values returned from mapper in input order.

p-map-series - Map over promises serially

  •    Javascript

Useful as a side-effect mapper. Use p-map if you don't need side-effects, as it's concurrent.Returns a Promise that is fulfilled when all promises in input and ones returned from mapper are fulfilled, or rejects if any of the promises reject. The fulfilled value is an Array of the mapper created promises fulfillment values.

p-reduce - Reduce a list of values using promises into a promise for a value

  •    Javascript

Useful when you need to calculate some accumulated value based on async resources.Returns a Promise that is fulfilled when all promises in input and ones returned from reducer are fulfilled, or rejects if any of the promises reject. The fulfilled value is the result of the reduction.

locate-path - Get the first path that exists on disk of multiple paths

  •    Javascript

Here we find the first file that exists on disk, in array order.Returns a Promise for the first path that exists or undefined if none exists.

is-empty-iterable - Check if an Iterable is empty

  •    Javascript

More efficient than Array.from(iterable).length, as it only iterates the first item, which can make a big difference for dynamic iterators, like a Generator doing an expensive operation.Returns a boolean.