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

Uploaded CPython 3.14PyEmscripten 2026.0 wasm32

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

Uploaded CPython 3.11+Windows x86-64

spaday-0.7.1-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.1-cp311-abi3-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: spaday-0.7.1.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.1.tar.gz
Algorithm Hash digest
SHA256 58016e8ec4ff455d0280a1ff63810437702f5c532e5bcf9cccbcc927059f36de
MD5 2c0b4e96bbcca6a212b2c23456262084
BLAKE2b-256 4c93c37cf429b972b25e559c3753e824df09dd119da6e8f13c69704888a0d015

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spaday-0.7.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl
Algorithm Hash digest
SHA256 b9cc26a0b14e6d3475f4a63961e3bf4d75efa14910c817e289f85c138e7f2cc9
MD5 b4604480c4fb062c0aa768fca7e7eb86
BLAKE2b-256 b524ca1f5e35807952c5cfc2731aa8b0a40fe4ae89d6f5bd3070526c42853add

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spaday-0.7.1-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.1-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 940e4ac5f6e26c4d73b254cd198af0c24801a909cc35f718e1b4df11f7815dc2
MD5 86f4fa2c027e9c2bce6169477c752b4a
BLAKE2b-256 689e18897a3d022264a413b4598026901819cb96180e6b1d9200248b296d34bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spaday-0.7.1-cp311-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 421d1b46fce3699cd90890ad00c6561971baafa39beaed4e2161cac9ac91c0d2
MD5 ae80873d5bf59c42f5e9b342929e68dd
BLAKE2b-256 b9dc4d5cf513550380ed45c3c8b6448a7d16828a283e8c481954ddb590c6c5b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spaday-0.7.1-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 404ad2d4438f4f5698edd76af8b26b93dd37adb008fca1e62dc86a7cff1f3b8f
MD5 86e4a8814bfae57d53249714faaec90c
BLAKE2b-256 6d3e6a2788a100017835bfce3adc81c1c1447e448152d308a264ec5214a6cbf9

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

This release

0.7.1 This release

5 files

0.7.0

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