
Build reliable spreadsheet workflows in Rust, Python, and WASM
Arrow-powered storage, incremental recalculation, and deterministic controls built for high-trust agent workflows.
Function depth
320+ Excel-compatible built-ins
Math, lookup, text, financial, stats, and dynamic arrays in one registry.
Recalculation engine
Incremental dependency graph
Topological scheduling, cycle detection, and selective recompute for scale.
Extensibility
Custom functions + plugins
Workbook-local callbacks, WASM plugin binding, and source/provider growth path.
Formualizer is a permissively licensed spreadsheet engine with Arrow-powered performance, deterministic evaluation for agents, and consistent Rust, Python, and WASM APIs.
Minimal surface, maximum extensibility.
Pick a runtime and follow the same flow: import workbook, edit an input, recalculate, and read updated output.
Install
cargo add formualizer-workbook --features umyaFirst flow
use formualizer_workbook::{ LoadStrategy, SpreadsheetReader, UmyaAdapter, Workbook, WorkbookConfig,};use formualizer_common::LiteralValue;let backend = UmyaAdapter::open_path("model.xlsx")?;let mut wb = Workbook::from_reader( backend, LoadStrategy::EagerAll, WorkbookConfig::interactive(),)?;let before = wb.evaluate_cell("Inputs", 2, 2)?;// Edit input valuewb.set_value("Inputs", 2, 2, LiteralValue::Number(1250.0))?;// Recalculate dependent output celllet after = wb.evaluate_cell("Outputs", 2, 4)?;println!("before={before:?} after={after:?}");Pick your path
Start from the runtime you ship today, then expand to shared function coverage and cross-runtime parity as your models grow.

Systems runtime
Rust
Compile-time safety and high-throughput workbook execution from native Rust.

Automation runtime
Python
Drop spreadsheet logic into data pipelines and notebooks with a Python-first API.

Web runtime
JS / WASM
Run the same engine in browser and Node with a portable WASM package.
Engine capabilities
Formualizer is built for real workbook systems: deep function coverage, performant recalculation, and extensibility for custom business logic.

Function depth
320+ Excel-compatible built-ins
Lookup, math, text, date/time, financial, statistical, and dynamic-array coverage.

Recalculation engine
Incremental dependency graph
Topological scheduling, cycle detection, and selective recompute designed for large models.

Plugins and UDFs
Extensible by design
Workbook-local custom functions today, with WASM plugin and provider expansion paths underway.
Anybody can build.
Formualizer supports hands-on engineering, agent-native workflows, and production automation with one consistent engine.
use formualizer_common::LiteralValue;use formualizer_workbook::Workbook;let mut wb = Workbook::new();wb.add_sheet("Sheet1")?;wb.set_value("Sheet1", 1, 1, LiteralValue::Number(100.0))?;wb.set_value("Sheet1", 2, 1, LiteralValue::Number(20.0))?;wb.set_formula("Sheet1", 1, 2, "=A1-A2")?;assert_eq!(wb.evaluate_cell("Sheet1", 1, 2)?, LiteralValue::Number(80.0));The familiar workbook model.
Use Workbook APIs directly to set values, author formulas, and evaluate cells with explicit control.
- Ergonomic workbook API in Rust with sheet/cell operations
- Incremental recalc through dependency graph
- Custom function registration for domain logic
- Deterministic controls for reproducible results