Formualizer Docs
Introduction

Architecture at a Glance

How the Formualizer crates and bindings fit together.

Formualizer is a layered Rust workspace with language bindings built on top.

Workspace layers

LayerCratesPurpose
Parseformualizer-parseTokenize formula text and build ASTs
Evaluateformualizer-evalExecute formulas, built-ins, and dependency-aware evaluation
Shared typesformualizer-commonValues, errors, references, and shared enums
Workbook APIformualizer-workbookHigh-level sheet/cell API, recalc, custom functions, plugin seams
Meta crateformualizerRe-exports core surfaces for easier app integration

Bindings

  • Python (bindings/python): PyO3 binding over workbook + parser/eval surfaces.
  • WASM/JS (bindings/wasm): wasm-bindgen wrapper with TypeScript API.

Both bindings map to the same underlying engine semantics, so workbook behavior should stay aligned across runtimes.

Typical request flow

  1. Write literals/formulas to workbook cells.
  2. Parser converts formula text into AST.
  3. Evaluator resolves references/functions and computes results.
  4. Workbook graph tracks dependencies for incremental recalculation.

Where to inspect implementation details

  • Built-ins and evaluator internals: crates/formualizer-eval/src/
  • Workbook API: crates/formualizer-workbook/src/workbook.rs
  • Python binding: bindings/python/src/
  • WASM binding: bindings/wasm/src/

Next

On this page