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.1.1.tar.gz (5.2 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.1.1-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.1.1-cp310-abi3-win_amd64.whl (4.9 MB view details)

Uploaded CPython 3.10+Windows x86-64

spaday-0.1.1-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.1.1.tar.gz.

File metadata

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

File hashes

Hashes for spaday-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d8e6f410553d3f1a045f3b3278df82dfc9f9376597363f2409e07bbd032fc032
MD5 b5bfdcc0fe50dcb8eb2aedec47b9058b
BLAKE2b-256 ede5ed21c8ac050969c9147ce3a05e47176ccdb4772e2ddcad4079d26b8e984c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spaday-0.1.1-cp311-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 398c6f07bfe1677766b5f5862e5ef6fe7c7e2115cb319b460ac0047f21c9904b
MD5 53a366c636ecfd371b7ed4959dbe4edc
BLAKE2b-256 597412b94637c87983511c4b9972f8b49b29e0a416d176f893ef3ac9e2622ea0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spaday-0.1.1-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.1.1-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b49748b6ac90cd9c9405b2f1c3a6e2076a85a77925f7d5eda4d9d639b77da9e1
MD5 2d408dd252cf8091114f628bc7bba08b
BLAKE2b-256 f31a1b5592f8d11e68c89e52efab10de0c7119699fe021ca860751d314b82a7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spaday-0.1.1-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c2e42209f6f249056dacfb65c750ee27c14a033379529433a1eaf0fce14b2015
MD5 79ff32f094e8e2dc1576a393b3146847
BLAKE2b-256 fa4800a9161e481d15843304a547fc206ee3dcff8932f0949ceb1381296a0a5f

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