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 — WebAwesome by default, 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
from spaday.components.webawesome import WaCard, WaSwitch

# a switch two-way-bound to a state field, rendered in a Jupyter cell
ui = WaCard().child(WaSwitch().text("Lamp").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

Documentation

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.2.0.tar.gz (5.3 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.2.0-cp311-abi3-manylinux_2_28_x86_64.whl (5.0 MB view details)

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

spaday-0.2.0-cp310-abi3-win_amd64.whl (4.9 MB view details)

Uploaded CPython 3.10+Windows x86-64

spaday-0.2.0-cp310-abi3-macosx_11_0_arm64.whl (4.9 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for spaday-0.2.0.tar.gz
Algorithm Hash digest
SHA256 703c57d0608e0fc80eba3792906282c60490bf8fc73990abe344765a7f03a911
MD5 42c71d94e1a5edf05b27f808c77b5c2b
BLAKE2b-256 bef57521f8a3a60614f6c0945e8d8b46c3704ee9c7b75d5d6e6adfd16a5f0e9e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spaday-0.2.0-cp311-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bc529e580ce12f1f05997ca2315176ac84301614e8277c231c08b7c77c09b9de
MD5 2c8e79c98952d74556c5952a230a5573
BLAKE2b-256 22c11259a6bf14d43342bd48fc4315d21667dc566492b8db49d6b0f6bf5771e9

See more details on using hashes here.

File details

Details for the file spaday-0.2.0-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: spaday-0.2.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 4.9 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for spaday-0.2.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c762cefc516f645a922fda262e2e53f4506abcedee7b56bc9d13c98db249f3c2
MD5 7cc5441a0af22493f700f8c8f53d906b
BLAKE2b-256 fb25e9372f5bf1e908a20aec6294be079ad0af046504ec0b1bf51793fab03f43

See more details on using hashes here.

File details

Details for the file spaday-0.2.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for spaday-0.2.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 98c840eb338a9f4633dd5d92a4531fcbcf947528e0b3d60d29ad4ddda5d7c357
MD5 5ae3e88e3e0937f547611149ededbb28
BLAKE2b-256 10a32dac2ad33d830ef9acd7601129c5fda15a0388a2ca62eeaad2f50620d7db

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