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.

Metadata

Release files for datalayer-reactor 1.2.0

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.2.0
File Size Uploaded
datalayer_reactor-1.2.0.tar.gz 1.5 MB Details

Built distribution (wheel)

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

Total release size: 1.5 MB

Release files / datalayer_reactor-1.2.0.tar.gz

Download URL datalayer_reactor-1.2.0.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
0d10af4aae9514c9a6f92de1817470de893036873880ee82929d9d18930243e1
BLAKE2b-256 checksum
How to use checksums
971fa1835de38718e16ff91bff6770cd0475f453ef5506d839390cd24eb49eff
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 Oct 12, 2026.

Transparency log

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

Download URL datalayer_reactor-1.2.0-py3-none-any.whl
Size 80.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5dd5a457e57012bd58d889892ab5c75e78b4ed6d751a366e247cd897c9e6f704
BLAKE2b-256 checksum
How to use checksums
8c025b5963f73f62665231c08e00151f3eaafc9d235380286371df6048cd6ee5
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 Oct 12, 2026.

Transparency log

Release history Release notifications | RSS feed

1.3.0

2 release files

This release

1.2.0 This release

2 release files

1.1.0

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

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