☰ 🦠 Datalayer Cells
A spreadsheet drawn on canvas and exposed as a React component, over a headless model that also runs in Node and in workers. Cells is built on Reactor: every extension point (formula functions, cell types, commands, importers and exporters, data sources, the collaboration provider) is a Reactor contribution point, and the built-in features are Reactor plugins contributing through the same points.
Work in progress.
Formulas: 117 functions, each checked against what LibreOffice computes; the list is in docs/functions.md.
Packages
| Import | What |
|---|---|
@datalayer/cells |
the React component and hooks; re-exports ./core |
@datalayer/cells/core |
the headless model: no React, no DOM |
@datalayer/cells/csv |
CSV and TSV in and out |
@datalayer/cells/xlsx |
XLSX in and out, loaded lazily |
@datalayer/cells/collab |
real-time collaboration over Loro |
@datalayer/cells/chrome |
toolbar, formula bar and sheet tabs |
@datalayer/cells/plugin |
views for a Reactor shell |
Python
datalayer_cells reads and writes the same workbooks, with the same
validation, for agents and scripts, and adds the datalayer cells command
(also datalayer-cells on its own):
from datalayer_cells import Workbook
wb = Workbook.load("budget.cells.json")
wb.read("Summary!A1:C4") # rows of values
wb.write("B2", [[12, "=B1*2"]]) # formulas are kept as typed
wb.save("budget.cells.json")
datalayer cells show budget.cells.json
datalayer cells get budget.cells.json 'Summary!A1:C4'
datalayer cells set budget.cells.json B2 12 '=B1*2'
datalayer cells export budget.cells.json --format csv
Examples
make examples # http://127.0.0.1:3077/
A page with a menu of examples, from a few values to collaboration, each with its source. What is not built yet says so, and names the milestone that brings it.
Development
@datalayer/reactor resolves as a package: from npm, or from the workspace in
the Datalayer monorepo (install at its root).
npm install
npm run lint # Prettier and the licence header on every file
npm run typecheck # everything, tests and examples included
npm test # unit tests (vitest, two workers), the React tests under React 19 and 18.3
npm run build # lib/
npm run bench # Node benches into bench/results/
python -m pytest # the Python package (pip install -e ".[test]" first)
npm run size # bundle sizes against their budgets
Browser benches and end-to-end tests run on the system Chrome, headless:
env -u WAYLAND_DISPLAY -u DISPLAY node scripts/bench.mjs --browser
License
MIT, see LICENSE.
Metadata
Release files for datalayer-cells 0.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| datalayer_cells-0.0.5.tar.gz | 78.6 kB | With provenance | Details for datalayer_cells-0.0.5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| datalayer_cells-0.0.5-py3-none-any.whl | Python 3 | none | any | Details for datalayer_cells-0.0.5-py3-none-any.whl |
Total release size: 93.3 kB
Release files / datalayer_cells-0.0.5.tar.gz
| Download URL | datalayer_cells-0.0.5.tar.gz |
|---|---|
| Size | 78.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bdc55b95094d4ddeaff055b5abda59999653a6d62fb545588e1e1086188f24b9
|
|
BLAKE2b-256 checksum How to use checksums |
c840f66fe26d80e72ae85a62907867eeb956e7b25e4773f9917ac90ce1539ec3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logRelease files / datalayer_cells-0.0.5-py3-none-any.whl
| Download URL | datalayer_cells-0.0.5-py3-none-any.whl |
|---|---|
| Size | 14.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
993faf59ac164e839effb476ff6b26da9bc036912ca8eb27082af74343470645
|
|
BLAKE2b-256 checksum How to use checksums |
0ba21367f8819bdc8f10c11e8a5c171655283a9b33d2200735e4d1a52376f493
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logSecurity for datalayer-cells 0.0.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for datalayer_cells-0.0.5.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.