Canvas spreadsheet engine · Rust/WASM core · MIT
Build web spreadsheets you still own.
Sheetwrite is a canvas spreadsheet engine with a Rust/WASM data core and first-party Vanilla, React, Vue, and Svelte adapters. Your application owns the document, the persistence, and the chrome — the engine owns the speed.
- document
- owned by your application — lifecycle, persistence, and product UI stay in your codebase
- engine
- Rust/WASM columnar core — formulas, query scans, packed render windows
- rows
- 1,000,000 paged through a Worker host, with measured evidence
- sync
- durable IndexedDB commits and one shared collaboration protocol
- xlsx
- optional —
@sheetwrite/xlsxworkbook and table backends - adapters
- first-party Vanilla, React, Vue, and Svelte
Protocol evidence
Measured, not promised
Median speedups over Handsontable, rendered straight from checked-in protocol artifacts. The gap widens as the data grows.
- 1k rows7.2× fastermedian of 14 interactions · best 96.7× in
scroll-right.top-left - 10k rows10.7× fastermedian of 14 interactions · best 111.3× in
scroll-right.top-left - 100k rows26.3× fastermedian of 14 interactions · best 201.2× in
scroll-right.top-left - 1M rows130.3× fastermedian of 12 interactions · best 1522.2× in
scroll-smooth.same-window· Handsontable did not finish 2 of 14
Correctness checkpoints guard every interaction, and failures are recorded as failures. Read the full protocol.
Capability showcases
Evaluate by capability, not by demo.
Every public capability has one owning live showcase, a required interaction, and an executable browser contract. Browse the full capability index →
- 01Database & documentsReal IndexedDB commits, conflict recovery, and compaction.Open the live scenario →
- 02InteroperabilityXLSX and CSV/TSV exchange with honest fidelity boundaries.Open the live scenario →
- 03Performance & scaleA million paged rows with measured Worker evidence.Open the live scenario →
- 04CollaborationTwo live clients converging through one shared protocol.Open the live scenario →
Framework adapters
One engine, four first-party mounts
The same engine mounts four ways — every workbench is a bounded, directly editable product story.
Runtime contract
The ownership line is explicit
- 01 · Host
You own the product.
Lifecycle, persistence, collaboration, and product UI stay in your codebase.
- 02 · TypeScript core
One narrow seam.
Grid API, transactions, virtualization, interaction, and renderer coordination — ownership crosses in one place.
- 03 · Rust / WASM
The engine owns the speed.
Columnar cells, formulas, query scans, snapshots, and packed render windows.