A fast push & pull stream library for Reason/OCaml, Flow, and TypeScript

Usage no npm install needed!

<script type="module">
  import wonka from 'https://cdn.skypack.dev/wonka';



A fast push & pull stream library for Reason, loosely following the callbag spec

NOTE: The master branch currently points to the v4 Release Candidate version! If you're looking for v3, please check the v3.2.2

NPM Version License Test Coverage Minified gzip size

“There’s no earthly way of knowing
Which direction we are going
There’s no knowing where we’re rowing
Or which way the river’s flowing” - Willy Wonka


Wonka is a lightweight iterable and observable library loosely based on the callbag spec. It exposes a set of helpers to create streams, which are sources of multiple values, which allow you to create, transform and consume event streams or iterable sets of data.

Wonka is written in Reason, a dialect of OCaml, and can hence be used for native applications. It is also compiled using BuckleScript to plain JavaScript and has typings for TypeScript and Flow.

This means that out of the box Wonka is usable in any project that use the following:

  • Plain JavaScript
  • TypeScript
  • Flow
  • Reason/OCaml with BuckleScript
  • Reason/OCaml with bs-native
  • Reason/OCaml with Dune and Esy


See the documentation at wonka.kitten.sh for more information about using wonka!

The raw markdown files can be found in this repository in the docs folder.