Releases: DaleStack/Pyponent
Releases · DaleStack/Pyponent
v0.1.2: SPA Routing Update
v0.1.1: The SPA Routing Update
What's New in v0.1.1
Pyponent is officially a Single Page Application (SPA) framework!
This release introduces a fully native, real-time routing engine. You can now build multi-page Python web apps with instant, flicker-free navigation—all powered by WebSockets and our Virtual DOM diffing engine, without writing a single line of JavaScript.
✨ New Features
- The
RouterComponent: Easily map URLs to your Python components. The router automatically handles component swapping and includes a built-in 404 fallback. - The
LinkComponent: A Pythonic, fully interactive anchor tag replacement. Clicking aLinkupdates the UI instantly without triggering a browser reload. It features a clean, natural API:Link("Home", to="/"). - Programmatic Navigation: Introduced the
use_navigatehook, allowing you to trigger route changes from inside your functions (perfect for form submissions, logins, or redirects). - Automatic URL Syncing: Under the hood, Pyponent now deeply integrates with the HTML5 History API (
window.history.pushState). Whether the user clicks a<Link>or you programmatically triggerMaps(), the browser's URL bar is automatically kept in perfect sync with the server's state.
💻 Quick Example
from pyponent.html import div, h1, nav
from pyponent.router import Router, Link
def Home(**props):
return div(h1("Welcome Home"))
def About(**props):
return div(h1("About Us"))
def App(**props):
return div(
nav(
Link("Home", to="/"),
Link("About", to="/about")
),
Router(
routes={
"/": Home,
"/about": About
}
)
)v0.1.0 - Initial Release
Welcome to the very first release of Pyponent!
Pyponent is a blazing-fast, Server-Driven UI framework that lets you build interactive web apps using pure Python, FastAPI, and WebSockets.
Key Features in this Release:
- Granular Virtual DOM diffing engine (Zero full-page reloads)
- Built-in SPA Routing (
RouterandLink) - Client-side state management (
use_state) without JavaScript - Native Tailwind CSS opt-in
- Predictable element tracking and event handling
To get started, check out the README or run:
pip install pyponent