Skip to main content

Datalayer

Become a Sponsor

⚛️ Reactor

Application builders hit a wall when a feature spans the browser and the server: frontend and backend plugin systems usually disagree about discovery, dependencies, lifecycle, compatibility, and enablement. Teams duplicate those contracts, hard-wire optional features into the host, and must coordinate rebuilds and deployments just to add, remove, or replace one capability.

Reactor gives JavaScript frontends and Python backends one extensibility model, inspired by VS Code, Eclipse (OSGi), and other proven plugin systems.

Reactor Example Music

Reactor provides two sibling packages:

  • @datalayer/reactor (TypeScript): Plugin runtime with a framework-agnostic core and separate React integration.
  • datalayer_reactor (PyPI distribution, imported as reactor): FastAPI + pluggy plugin reactor for modular extensibility.

Both tiers implement the same architecture. That is the point of writing it down once: a host that lists, describes, groups or draws plugins should never have to ask which side of the wire one came from.

📖 Documentation

reactor.datalayer.tech — everything is there, and only there. Source in docs/.

Why Reactor what this targets that a hook callback does not
Architecture the seven constructs, and the two distinctions the model rests on
Get started in TypeScript · in Python install, and a plugin running
TypeScript runtime plugins, lifecycle, contribution points, extensions, activation, lazy loading, remote plugins, allowed origins, React bindings, signals
Python runtime manifests, contribution points, extensions, tenants, the HTTP API
Across the tiers what a plugin may declare about its counterpart, and why it is not enforced
Federation plugins that arrive from a URL, containers, and where one is allowed to come from
Python-packaged extensions one pip install shipping both tiers, the frontend built into the wheel

🎵 The music store, running in the page

reactor.datalayer.tech/examples/music/demo — a store assembled entirely from plugins, with a switch per plugin on both tiers. Untick one and watch what it contributed leave.

Repository layout

Path What is in it
src/ TypeScript package source for @datalayer/reactor
reactor/ Python package source for datalayer_reactor
plugins/ reusable plugins shipped alongside the runtime — the manager and the graph
examples/ the demos, including the music store
docs/ the documentation site

Develop

# TypeScript: the runtime and the bundled plugins.
npm install
npm run build
npm test
npm run typecheck

# Python.
python -m venv .venv
source .venv/bin/activate
pip install -e .
python -m reactor

# The music example, both tiers.
make music

# The documentation site.
cd docs && make install && make start

Release

See RELEASE.md.

Release files for datalayer-reactor 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for datalayer-reactor 1.0.3
File Size Uploaded
datalayer_reactor-1.0.3.tar.gz 1.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for datalayer-reactor 1.0.3
File Interpreter ABI Platform
datalayer_reactor-1.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 1.4 MB

Release files / datalayer_reactor-1.0.3.tar.gz

Download URL datalayer_reactor-1.0.3.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
04294eb1cc4d374734d0488f0d78d9d14bbcc581111aab499a4484d7f3fc070e
BLAKE2b-256 checksum
How to use checksums
4c8cbaeb60563e5ab32d7aa3f3ba3c500c919c835842e742a12ac920a89e3b52
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 26, 2026.

Transparency log

Release files / datalayer_reactor-1.0.3-py3-none-any.whl

Download URL datalayer_reactor-1.0.3-py3-none-any.whl
Size 55.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
252c5bb38d5fa38d91c9493c583847d9723a9f0e623ab75a54c8e2c59b9d75af
BLAKE2b-256 checksum
How to use checksums
239f61e0bf0d2430d273ef2c9a7373bfbc97ca3f4f99c6a1f18229fe7bf732dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 26, 2026.

Transparency log

Release history Release notifications | RSS feed

1.0.4

2 release files

This release

1.0.3 This release

2 release files

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page