janestreet/incremental

A library for incremental computations

1,510

stars

172

commits

OCaml

primary language

Jul 10, 2026

updated

Browse cluster: OCaml metaprogramming and PPX

README

Incremental is a library that gives you a way of building complex
computations that can update efficiently in response to their inputs
changing, inspired by the work of [[http://www.umut-acar.org/self-adjusting-computation][Umut Acar et. al.]] on self-adjusting
computations. Incremental can be useful in a number of applications,
including:

- Building large calculations (of the kind you might build into a
  spreadsheet) that can react efficiently to changing data.
- Constructing views in GUI applications that can incorporate new data
  efficiently.
- Computing derived data while guaranteeing that the derived data
  stays in sync with the source data, for instance filtering or
  inversing a mapping.

You can find detailed documentation of the library and how to use
it in [[https://github.com/janestreet/incremental/blob/master/src/incremental_intf.ml][incremental/src/incremental_intf.ml]].  You can also find an
informal introduction to the library in this [[https://blog.janestreet.com/introducing-incremental][blog post]]
and [[https://www.youtube.com/watch?v=G6a5G5i4gQU][this video]].

Not written in Markdown, so it's shown here as plain text — view it formatted on GitHub.

Contributors

xclerc

59 commits

jdimino-js

32 commits

public-release

28 commits

trefis

22 commits

janestreet/incremental

A library for incremental computations

1,510

stars

172

commits

OCaml

primary language

Jul 10, 2026

updated

Browse cluster: OCaml metaprogramming and PPX

README

Incremental is a library that gives you a way of building complex
computations that can update efficiently in response to their inputs
changing, inspired by the work of [[http://www.umut-acar.org/self-adjusting-computation][Umut Acar et. al.]] on self-adjusting
computations. Incremental can be useful in a number of applications,
including:

- Building large calculations (of the kind you might build into a
  spreadsheet) that can react efficiently to changing data.
- Constructing views in GUI applications that can incorporate new data
  efficiently.
- Computing derived data while guaranteeing that the derived data
  stays in sync with the source data, for instance filtering or
  inversing a mapping.

You can find detailed documentation of the library and how to use
it in [[https://github.com/janestreet/incremental/blob/master/src/incremental_intf.ml][incremental/src/incremental_intf.ml]].  You can also find an
informal introduction to the library in this [[https://blog.janestreet.com/introducing-incremental][blog post]]
and [[https://www.youtube.com/watch?v=G6a5G5i4gQU][this video]].

Not written in Markdown, so it's shown here as plain text — view it formatted on GitHub.

Contributors

xclerc

59 commits

jdimino-js

32 commits

public-release

28 commits

trefis

22 commits

Languages

OCaml

99.8%