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.6.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.6.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl (1.2 MB view details)

Uploaded CPython 3.14PyEmscripten 2026.0 wasm32

spaday-0.6.0-cp311-abi3-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.11+Windows x86-64

spaday-0.6.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.6.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.6.0.tar.gz.

File metadata

  • Download URL: spaday-0.6.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.6.0.tar.gz
Algorithm Hash digest
SHA256 046e47324443a9869a25e4f7671f29ce2155e076b42dd1c2292365e9f7aa5a6c
MD5 5c5a136b74f2f898a04c8c1daeb90812
BLAKE2b-256 24ac5afea9e86ea07577b6e983b43b60df4355e0e8b6628e2d0b4f40fd73be3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spaday-0.6.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl
Algorithm Hash digest
SHA256 cd1886957eeaf3c0cbb97b6b84821efcb431caaaf3261f5f68e18ae73f419e5f
MD5 17638976b71584710909fe916a1bb664
BLAKE2b-256 5d638c6d66f303d7ecd98faf58f3b9b50cc8926956223efe0955bfaade6dc6fc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spaday-0.6.0-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 3.3 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.6.0-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 592dd65088db096d7661f520081bcae6c6d61f8406b3ae726a0e6153136e7c6f
MD5 0ae1034c560c6a1fa50cc4f0c5c21c2b
BLAKE2b-256 5f0a75d1d60430955acc1c25c4edde1426de62f45fad53cc1281c0e01c2822e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spaday-0.6.0-cp311-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 32683715760e5e10ea5d36fbe68f06d2eeccd47f13e6322e7006608f8e3d5901
MD5 fd117af851110382450c27c7d384311a
BLAKE2b-256 5a68ba0468aa1a12df60ac81f8d7e287c63c97e0d3c236425d318818036aa505

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spaday-0.6.0-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 addc85b8767919c2d94c5fc48fe8229db016f7241fc332bb65bd8bae0e272d74
MD5 71035b602cf7eb1a4041ac14046eb52c
BLAKE2b-256 4a7fd819d96a609de96e1150d727982a9b2e30919e8b1d1d78ddbbb173c3d410

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page