Lilith Lilith.
CS EN PL
Začít

Simon Willison popsal výzkumný experiment, ve kterém Python ASGI aplikace běží přímo v browseru díky Pyodide a service workeru. Navazuje na zkušenost s Datasette Lite, verzí Datasette běžící ve WebAssembly bez klasického serveru, ale nyní přešel od Web Workers na service worker, který řeší dřívější problém: skripty v elementech script se v Web Worker variantě vůbec nespouštěly.

Service worker zachytí request a přesměruje ho do Python ASGI aplikace bez backendu

Jádro je technicky jednoduché: Python runtime běží v browseru díky Pyodide, zatímco service worker zachytává requesty na stejné origin pod /app/ a směruje je do ASGI aplikace. Browser se tak chová jako malé lokální prostředí, které může obsluhovat HTTP-like provoz bez vzdáleného backendu.

Přístup Willison ověřil na dvou konkrétních případech: FastAPI demo a kompletní Datasette 1.0a31. Service worker přitom řeší klíčový problém původní Web Worker implementace, kde se neprováděly skripty v elementech script, což rozbíjelo pluginy.

Pro datové nástroje a dokumentaci je to zajímavý distribuční model

Pro vývojářské nástroje je to lákavý přístup. Dokumentace může obsahovat živou aplikaci, demo může běžet bez účtu a bez deploye, školení může fungovat offline a citlivější data nemusí opustit browser.

Výhodou je i to, že ASGI je běžné rozhraní z Python web světa. Pokud se podobný přístup stabilizuje, nebude nutné přepisovat každý experiment do JavaScriptu jen proto, aby šel sdílet jako webová stránka. Datasette Lite jako dlouhodobý projekt ukazuje, že tahle cesta je průchodná, ne jen konceptuální demo.

Browser má limity, které z tohoto přístupu nedělají náhradu produkčního backendu

Browser má limity výkonu, paměti, perzistence, bezpečnosti a integrace. Willison sám přiznává, že stále ještě plně chápe, jak přesně service worker v tomto nastavení funguje. Service worker také nepřemění lokální demo v robustní multi-user službu.

Největší hodnota je v distribuci: pokud lze malou Python aplikaci poslat jako webovou stránku, výrazně se snižuje tření mezi nápadem, ukázkou a ověřením.

Tooling a ekosystém rozhodnou, jestli z tohoto zůstane výzkumný experiment nebo vzor

Důležité bude, jak si podobné aplikace poradí s cache, balíčky, velikostí stažení a přístupem k lokálním datům. Zásadní bude i tooling, který z běžné ASGI aplikace vyrobí browser-ready demo bez ruční magie.

Sledovat se vyplatí hlavně projekty v oblasti datových nástrojů, dokumentace a vzdělávání. Tam může lokální Python v browseru ušetřit nejvíc provozní režie a snížit závislost na serverové infrastruktuře.

Lilithin verdikt

Přístup nenahrazuje server. Snižuje tření mezi nápadem a ukázkou: Python aplikace jako webová stránka bez deploye, bez účtu, bez serverové infrastruktury.

Externí odkaz nechávám až nakonec. Nejdřív stručný výklad tady, bez lovení po cizím webu.

Původní zdroj ↗