Running Python ASGI apps in the browser via Pyodide + a service worker
Simon Willison рассказывает о Datasette Lite — версии Datasette, которая целиком работает в браузере через Pyodide и WebAssembly. В исходной реализации четырёхлетней давности он использовал Web Workers, перехватывающие навигацию, но при этом JavaScript внутри тегов <script> не выполнялся, что ломало часть функций Datasette и множество плагинов. Утром 30 мая 2026 года автор поручил Claude Opus 4.8 (в Claude Code for web) разобраться, как запускать Python ASGI-приложения в Pyodide с помощью Service Workers, и это сработало. В качестве примеров приведены базовое ASGI-демо и демо с Datasette 1.0a31. Автор ещё разбирается в деталях работы, но планирует затем обновить и сам Datasette Lite.
30 мая 2026
Datasette Lite — это моя версия Datasette, которая работает целиком в браузере с использованием Pyodide на WebAssembly.
Когда я впервые создал её четыре года назад, я использовал Web Workers и код, который перехватывает операции навигации и получает сгенерированный HTML, запуская Python-приложение.
Это работало, но имело недостаток: любой JavaScript в тегах не выполнялся, что ломало часть функциональности Datasette и огромное число плагинов Datasette.
Сегодня утром я поставил Claude Opus 4.8 задачу (в Claude Code for web) разобраться, как вместо этого запускать Python ASGI-приложения в Pyodide с помощью Service Workers, и, похоже, это работает! Вот базовое демо ASGI FastCGI, а вот демо, в котором работает Datasette 1.0a31.
Я всё ещё разбираюсь, как именно это работает, но как только разберусь, планирую обновить и сам Datasette Lite.
Недавние статьи
Claude Opus 4.8: «скромное, но ощутимое улучшение» — 28 мая 2026 Я думаю, что Anthropic и OpenAI нашли product-market fit — 27 мая 2026 Заметки об энциклике папы Льва XIV об ИИ — 25 мая 2026
Это заметка от Simon Willison, опубликованная 30 мая 2026.
Ежемесячный дайджест
Поддержите меня на $10/месяц и получайте подобранную email-подборку самых важных событий в мире LLM за месяц.
Платите мне за то, чтобы я присылал вам меньше!