Skip to content

v0.3.0 — Plugin system + framework polish

Choose a tag to compare

@shivamsn97 shivamsn97 released this 03 May 16:54
· 35 commits to main since this release
0456ec8

Highlights

First-class plugin system

Compose apps via pyxle.config.json::plugins — Django-style INSTALLED_APPS. Plugins register services through a PluginContext, hook into the ASGI lifespan, and contribute middleware.

{
  "plugins": [
    "pyxle-db",
    {
      "name": "pyxle-auth",
      "settings": { "cookieDomain": ".example.app" }
    }
  ]
}

Resolve services Django-style:

from pyxle_auth import get_auth_service

@action
async def sign_in(request):
    auth = get_auth_service()
    ...

See: Plugins guide, Plugins API reference.

First-party plugins (separate packages)

  • pyxle-db — SQLite-first database with migrations, WAL, connection pooling.
  • pyxle-auth — Email+password sessions, argon2id, sliding expiration, per-IP/per-email rate limits.

Framework fixes (surfaced by Pyxle Cloud work)

  • WebSocket endpointspages/api/*.py can export async def websocket(ws) for live updates and chat.
  • Client navigation cache with TTL + invalidation — loader payloads cached 30s; call invalidate(url) on the client or return invalidate_routes(response, ...) from an @action to refresh list views after mutations.
  • ActionError is auto-imported in any .pyxl with an @action.
  • <Head> coerces multi-part <title> children into a single string.
  • SSR worker pins LANG=en-US.UTF-8 by default (override via PYXLE_SSR_LOCALE) — fixes hydration mismatches from toLocaleString().
  • Vite resolver prefers pinned versionspyxle build runs npm install before falling back to npx --yes vite.

Install

pip install --upgrade pyxle-framework