Skip to main content

spaday

Build Status codecov License PyPI

Build reactive web-component UIs configured in Python, executed in the browser.

Overview

You author a UI as a tree of typed Python components from opt-in packages or any library that ships a Custom Elements Manifest. You attach behavior as declarative data: an action DSL (toggle a prop, send a model edit, call an endpoint) and reactive bindings (a control two-way-bound to a state field, or a prop computed from others). spaday's JavaScript runtime renders the tree to real web components and interprets that behavior client-side — so a toggle or a derived value updates with no round-trip to Python.

That UI state is a transports model, so it syncs over any connection (WebSocket, SSE, Jupyter comm) and any codec; the same tree drops into a web app or a Jupyter notebook unchanged.

Like transports, spaday is a Rust core with thin bindings: the component tree, the diff engine, the CEM parser, the action interpreter, and the reactive engine live in Rust and compile to PyO3 (Python authors the tree) and wasm (the browser runs it). One core, two bindings.

from spaday import Widget, element

# a checkbox two-way-bound to a state field, rendered in a Jupyter cell
ui = element("input", type="checkbox").bind("checked", "on", mode="two-way")
w = Widget(ui, state={"on": True})
w  # flip the switch → w.state["on"] flips in Python; set w.state → the switch follows

Install

pip install spaday            # core: author + serialize component trees
pip install "spaday[widget]"  # + the Jupyter / anywidget host

Component ecosystem

Install only the integrations an application uses. Each package provides typed Python components and registers its browser assets with spaday:

Select an installed integration by its entry-point name, for example serve(page, packages=["trees"]).

Documentation

[!NOTE] This library was generated using copier from the Base Python Project Template repository

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spaday-0.7.0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

spaday-0.7.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl (1.2 MB view details)

Uploaded CPython 3.14PyEmscripten 2026.0 wasm32

spaday-0.7.0-cp311-abi3-win_amd64.whl (3.4 MB view details)

Uploaded CPython 3.11+Windows x86-64

spaday-0.7.0-cp311-abi3-manylinux_2_28_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.28+ x86-64

spaday-0.7.0-cp311-abi3-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

File details

Details for the file spaday-0.7.0.tar.gz.

File metadata

  • Download URL: spaday-0.7.0.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for spaday-0.7.0.tar.gz
Algorithm Hash digest
SHA256 7d28c48f2b8eb768f22534dfaad269f6c6dd50ebe8970247bb2a1ed9aae96428
MD5 cd6c02e6a077e450f0e5e0e7feebf091
BLAKE2b-256 c0c7c16ee0036db64535717426d84c0574db9f75588ca9adb67c802ff2f4450a

See more details on using hashes here.

File details

Details for the file spaday-0.7.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl.

File metadata

File hashes

Hashes for spaday-0.7.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl
Algorithm Hash digest
SHA256 dc6a282d85e9243cebf916aa2e0240b086eb328b0a95a8a299e5bc97df2ce795
MD5 72043ff47ddb913ff97f42af1ca615fc
BLAKE2b-256 7a05c2265c4406c88bf2ec08cd6d1bfd9d2e83d62546e7c7fd038cc3fe9417ef

See more details on using hashes here.

File details

Details for the file spaday-0.7.0-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: spaday-0.7.0-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 3.4 MB
  • Tags: CPython 3.11+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for spaday-0.7.0-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 0336164d44f62c613a0b08d56d1a429d51c91cb3248ef09f161b843544a41192
MD5 c3300cbefa610fc3156b6772fac2c6d8
BLAKE2b-256 e9357e589ca17c7fbfbc6e002006483d2b09f081f158c4e60e65b8cb5be4e7a6

See more details on using hashes here.

File details

Details for the file spaday-0.7.0-cp311-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for spaday-0.7.0-cp311-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b6fe46866db7285987e52a994f0712a4087b124ff0c1039167801b402e6d5237
MD5 c15979699ca38e28add28aa6bbb5bf8f
BLAKE2b-256 f1298bce5efb27e1348933234f5b784a308ba9be2d2d65615760dbff64d5af82

See more details on using hashes here.

File details

Details for the file spaday-0.7.0-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for spaday-0.7.0-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8c400afba7673a27a4dd7fd330f4b24fa9faf53f2ab619952261aef49cb9c3b2
MD5 8900feed5434e9d724f41adbdfcaf748
BLAKE2b-256 c1bbd95285565250ec6a6c6d17dba8f723dcc81e95296406fc615cd218d7905e

See more details on using hashes here.

Release history Release notifications | RSS feed

0.7.12

6 files

0.7.11

6 files

0.7.10

6 files

0.7.9

6 files

0.7.8

6 files

0.7.7

6 files

0.7.6

6 files

0.7.5

6 files

0.7.4

6 files

0.7.3

6 files

0.7.2

6 files

0.7.1

5 files

This release

0.7.0 This release

5 files

0.6.0

5 files

0.5.0

4 files

0.4.1

4 files

0.4.0

4 files

0.3.0

4 files

0.2.2

4 files

0.2.1

4 files

0.2.0

4 files

0.1.1

4 files

0.1.0

4 files

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