Incremental – A library for incremental computations

Hacker News Top Tools

Summary

Incremental is a library from Jane Street for building efficient, self-adjusting computations that react to input changes, useful for spreadsheets, GUI views, and derived data synchronization.

No content available
Original Article
View Cached Full Text

Cached at: 07/21/26, 06:36 AM

janestreet/incremental

Source: https://github.com/janestreet/incremental

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]].

Similar Articles

Introducing Incremental

Lobsters Hottest

Jane Street announces Incremental, a library for building self-adjusting computations that efficiently update when inputs change, applicable to online algorithms, GUI construction, and configurable computations.

Inside Zig's Incremental Compilation

Lobsters Hottest

A Zig core team member explains the internals and usage of Zig's incremental compilation, which allows rebuilds in milliseconds by recompiling only changed code and patching it into the binary.

@seclink: Classic pitfall of sccache and incremental being mutually exclusive: enabling both results in 20GB of incremental cache yet dependencies being recompiled every time. After turning off incremental: large third-party libraries (tokio/serde/axum/reqwest, etc.) compile once, across…

X AI KOLs Following

Explains the mutual exclusivity issue between sccache and incremental compilation: enabling both leads to 20GB incremental cache consumption and dependencies being recompiled each time. After disabling incremental, large third-party libraries compile once and are reused across projects, achieving a cache hit rate of 53–93% after the first compilation.