Fruit.Cards · Data-engineering platform

Expanse

A local-first incremental computation and visualization engine.

Fruit.Cards is a data-engineering platform, together with its data computation and visualization engine, currently developed under the working name Expanse (subject to change).

The engine is a local-first incremental computation engine written in Rust and compiled to WebAssembly, running in the browser with a Cloudflare-hosted backend, and is built on permissively licensed open-source foundations, including Salsa and Apache DataFusion.

The engine originated and remains a component of the Fruit.Cards data-engineering project.

RustWebAssemblyCloudflareSalsaApache DataFusion


How it works: change one value, recompute only what depends on it.

The engine records which inputs each result was computed from. Change a value and it re-evaluates only the results downstream of that change, reusing the rest from cache. Adjust an input and watch which results re-run. The evaluation counters tick only when a result actually recomputes.

Inputs

A3
B4
X9

Results

resultformulavaluestatusevals
C= A + B7ready1
Y= X × 218ready1
D= C × 1070ready1

revision: 1

Edit an input to see incremental recomputation.


In a data pipeline: aggregate a table, recompute only the group that changed.

The same idea scales to data. This query groups a source table by region and sums each group. Edit a row and only the group it belongs to is recomputed; the other groups are reused from cache.

SELECT region, SUM(amount) FROM sales GROUP BY region

Source table: sales

zoneregionamountedit
North Westwest120
North Easteast80
South Westwest50
South Easteast40

Group totals

regiontotalstatusevals
west170ready1
east120ready1

revision: 1

Edit a row to recompute its group.


Fruit.Cards · Data-engineering platform.