A Swift implementation of Reactive Extensions (Rx) for composing asynchronous events and data streams via Observable sequences.
janestreet/incremental
An OCaml library for building computations that update efficiently when their inputs change, based on self-adjusting computation.
- Stars
- 1,538
- Forks
- 76
- Open issues
- 0
- Last commit
- 3 days ago
What is it?
Incremental lets you build complex computations out of inputs and derived values, so that when an input changes only the affected parts are recomputed. It is based on the self-adjusting computation research of Umut Acar and colleagues, and is developed by Jane Street.
The typical use is a calculation graph similar to a spreadsheet: you define values in terms of other values, and the library keeps the derived results in sync with their sources. The same model fits GUI views that need to incorporate new data efficiently, and derived data such as filtered or inverted mappings that must stay consistent with the source.
The library is written in OCaml, and its API is documented in the interface file incremental_intf.ml in the repository.
Key features
- 01Builds dependency graphs where changed inputs trigger only the affected recomputation.
- 02Keeps derived values consistent with their sources automatically.
- 03Written in OCaml with its API documented in the interface file.
Use cases
- Building spreadsheet-like calculations that react efficiently to changing data.
- Constructing views in GUI applications that incorporate new data incrementally.
- Maintaining derived data, such as filtered or inverted mappings, in sync with its source.
Quick start
- 1
Install the library via opam
opam install incremental - 2
Use the library in your OCaml project by reading the detailed documentation in incremental_intf.ml
Things to know
- Requires knowledge of OCaml to use.
Topics
FAQ
- What is incremental?
- An OCaml library for building computations that update efficiently when their inputs change, based on self-adjusting computation. Incremental lets you build complex computations out of inputs and derived values, so that when an input changes only the affected parts are recomputed. It is based on the self-adjusting computation research of Umut Acar and colleagues, and is developed by Jane Street.
- Is incremental free to use? What license does it have?
- incremental is open source under the MIT license. Check the license terms before using it in commercial products.
- Is incremental still maintained?
- Actively maintained. The last commit to incremental was on Nov 3, 2026.
- What can I use incremental for?
- Building spreadsheet-like calculations that react efficiently to changing data. Constructing views in GUI applications that incorporate new data incrementally. Maintaining derived data, such as filtered or inverted mappings, in sync with its source.
- How do I install incremental?
- Install the library via opam: opam install incremental Use the library in your OCaml project by reading the detailed documentation in incremental_intf.ml
- Where can I get incremental?
- The source code and installation instructions are on GitHub: https://github.com/janestreet/incremental
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
The Scala 2 compiler, standard library, and language spec, with contribution guidance for the Scala 2 codebase.
A TypeScript utility library offering data-first and data-last functions for arrays, objects and other common operations.
A Haskell kernel for Jupyter that lets you run Haskell code in Jupyter notebooks, console and other frontends.
A JavaScript utility library providing functional helpers like each, map, reduce and filter without extending core objects.
Lila, the Scala server behind lichess.org, a free, ad-free and open source online chess platform.