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

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.4.0.tar.gz (3.5 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.4.0-cp311-abi3-win_amd64.whl (5.1 MB view details)

Uploaded CPython 3.11+Windows x86-64

spaday-0.4.0-cp311-abi3-manylinux_2_28_x86_64.whl (3.2 MB view details)

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

spaday-0.4.0-cp311-abi3-macosx_11_0_arm64.whl (3.2 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for spaday-0.4.0.tar.gz
Algorithm Hash digest
SHA256 5f717fa9bd3b399c67ab881f42c2f10023122c205ce34b441adb41253295aa4d
MD5 a704b4463eff5c38df7b9e532324378d
BLAKE2b-256 0dfd1900e7678ddf7457e8b9e7d5e2c0de4dae2a36427d80c584dd5678fa4802

See more details on using hashes here.

File details

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

File metadata

  • Download URL: spaday-0.4.0-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 5.1 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.4.0-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e927a2d51dc61797079aed63c01ebe955fec1857244ad40dca9ddf436096777a
MD5 885fd9c3a1f22d909dac5c7c139e0e57
BLAKE2b-256 19919197eb73267358120e36469ee66aa98b33a59dfcc7d4988b1855f31fdb4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spaday-0.4.0-cp311-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 aecd51918218092d2a5d5ebacd2304cdcdd7258a50ce53eeb525604e4df931ad
MD5 b012a2d319b7405e07107f7c2016364f
BLAKE2b-256 c598f64dc46a328fd718df56fbd6be865a3451d11fa4e45e6ebb454193793953

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for spaday-0.4.0-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2e26e33ad2997937e336c59dc8cddcd7f2d70823111664ccb7d314ec4c819a75
MD5 12fa5ce20075c1e55037c83fda4c167f
BLAKE2b-256 b8b7a5d58533b59730d7c0f28365fdc81756548882e50d1641ba0acb32237319

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