STDF yield analytics in the browser, data never leaves your machine
Full STDF analytics without uploading data—rare use case, solid engineering with Rust+DuckDB WASM.
Embeddable spreadsheet engine — parse, evaluate & mutate Excel workbooks from Rust, Python, or the browser. Arrow-powered, 320+ functions.
Finally: XLOOKUP, FILTER, dynamic arrays in Python—openpyxl can't, xlcalc won't.
Data engineers, financial analysts, Python developers needing server-side formula evaluation
xlcalc · openpyxl (read-only) · Excel.js
The original motivation was server-side formula evaluation in Python. openpyxl reads and writes xlsx well but evaluates nothing - formula cells return None unless Excel cached values on last save. xlcalc actually evaluates but covers around 50 functions. If you needed XLOOKUP, SUMIFS with multiple criteria, IRR, XIRR, or dynamic arrays like FILTER and UNIQUE, you were either installing Excel on a Linux box or accepting the gaps.
There's a one-liner for the common case:
import formualizer as fz fz.recalculate_file("model.xlsx", output="recalculated.xlsx")
Or drive it programmatically — load a workbook, change inputs, evaluate:wb = fz.load_workbook("model.xlsx") wb.set_value("Assumptions", 3, 2, 0.08) wb.evaluate_all() print(wb.evaluate_cell("Summary", 5, 3)) # =IRR(...)
You can also register Python callbacks as first-class formula functions that participate in the dependency graph.The Rust and WASM targets are also fully supported - the engine is the core with Python, WASM, and a stable CFFI as targets.
Formal benchmarks are in progress!
Full STDF analytics without uploading data—rare use case, solid engineering with Rust+DuckDB WASM.
Headless spreadsheet SDK for agents when SheetJS and HyperFormula already exist.
Dragging the timeline reveals how splits, concats and shared nodes evolve across versions, which makes an abstract data structure palpably understandable. Running the implementation in-browser via Rust→WASM is a neat technical demo, but it's primarily educational — more inline explanations or scenarios would make it genuinely useful beyond hobbyist exploration.
WASM views eliminate Kafka consumers, but EventStoreDB already does event sourcing.
Diff-first AI edits with accept/reject workflow beats blind formula generation.
Guided raster-to-SVG tracing with genetic optimization offers more control than Vectorizer.ai.