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.0.5

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.5
File Size Uploaded
datalayer_reactor-1.0.5.tar.gz 1.3 MB Details

Built distribution (wheel)

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

Total release size: 1.4 MB

Release files / datalayer_reactor-1.0.5.tar.gz

Download URL datalayer_reactor-1.0.5.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
c25534ab0269ff146e1ea607e2bb465499a984503d1121a0b5f7c59fd20aac6a
BLAKE2b-256 checksum
How to use checksums
359ad20d4efd61965a1d00d40ab30e434cc43fa5ea403da05c985d7e5ce1d143
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 10, 2026.

Transparency log

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

Download URL datalayer_reactor-1.0.5-py3-none-any.whl
Size 57.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0cfa07c4dd3a814bd56c904047c347cd8039e104a905b61d97f10c8c58e1167e
BLAKE2b-256 checksum
How to use checksums
97770be01ce67a40e90c80752e60704b1f18c5a5a733a98c71aa0e43903b6267
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 10, 2026.

Transparency log

Release history Release notifications | RSS feed

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

This release

1.0.5 This release

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