← Все статьи
2026-06-14 08:02 · 🤖 AI World

Python в браузере без сервера: WASM-пакеты теперь идут прямо с PyPI

С выходом Pyodide 314.0 закрылась многолетняя дыра в экосистеме браузерного Python: теперь любой разработчик публикует WASM-колёса прямо на PyPI. Раньше это узкое горлышко — более 300 пакетов с нативными расширениями поддерживала вручную сама команда Pyodide.

Python в браузере без сервера: WASM-пакеты теперь идут прямо с PyPI

С выходом Pyodide 314.0 разработчики получили то, чего давно ждали. Раньше, чтобы использовать C- или Rust-расширение в браузере, нужно было ждать, пока команда Pyodide вручную соберёт и захостит пакет, либо собирать WASM-колесо самому — без нормальной инфраструктуры дистрибуции. Теперь достаточно опубликовать wheel на PyPI с меткой pyemscripten, и micropip устанавливает его в браузере как обычный пакет.

Контекст

Pyodide — порт CPython на WebAssembly через Emscripten. Он позволяет запускать Python-код прямо в браузере: без сервера, без установки, без контейнеров. Проект используется в JupyterLite, интерактивных ML-демо, образовательных платформах и data science прямо в браузере.

Историческое ограничение: если пакет содержит нативные расширения (C, C++, Rust), его нужно было скомпилировать под WASM отдельно. Команда Pyodide вручную поддерживала более 300 таких пакетов — каждый новый требовал ручного ревью. Скорость появления новых пакетов была несравнимо ниже нативного PyPI.

Ситуацию изменил PEP 783, определивший стандарт PyEmscripten-платформы. PR на PyPI был смержен 21 апреля 2026 года. Теперь мейнтейнеры собирают WASM-колёса через стандартный cibuildwheel и публикуют их так же, как native wheels для Linux, macOS или Windows.

Аналитика

На первый взгляд — узкоспециализированная инфраструктурная новость. За ней стоит кое-что важнее. Браузерный Python без сервера — принципиально другая модель деплоя: нет бэкенда, нет инфраструктуры, нет проблем с масштабированием. Для AI-демо, локальных инструментов, интерактивной аналитики это радикально снижает порог входа и стоимость эксплуатации.

Сейчас на PyPI опубликовано 28 пакетов с новым форматом pyemscripten_202*_wasm32. Среди них — pydantic_core, onnx, chonkie-core. Последнее особенно показательно: chonkie — библиотека для чанкинга текста в RAG-пайплайнах. Часть RAG-стека теоретически уже работает в браузере без сервера. onnx в списке означает, что ML-инференс тоже входит в игру.

Практик Симон Уиллисон, публикующий одни из самых взвешенных разборов LLM-инструментов, использовал Codex и GPT-5.5 для упаковки и публикации первого своего WASM-пакета — интерпретатора языка Luau от Roblox (MIT). Результат: 276KB wheel-файл, работающий в браузере через Pyodide. Показательно, что даже нетривиальная задача «скомпилировать C++-библиотеку под WASM и настроить GitHub Actions CI» решается силами AI-инструментов за несколько итераций.

Кейсы применения в бизнесе

B2B-SaaS стартап с ML-функциями. Предобработку данных, локальный скоринг или валидацию с ML-моделью можно перенести на клиент. Демо для пресейла разворачивается как статичная страница — без бэкенда, без DevOps. Серверные расходы на вычисления падают, скорость отклика растёт.

Корпорация с legacy-стеком. Браузерные Python-утилиты позволяют встраивать аналитику прямо в веб-интерфейс без переписывания бэкенда. Особенно актуально там, где данные нельзя отправлять на сторонний сервер — финтех, медицина, госсектор КР. Трансформация данных происходит на стороне клиента, минуя слой API.

SMB и локальный бизнес в КР/СНГ. Небольшие команды без DevOps-ресурсов получают полноценные Python-приложения, которые живут как статичный HTML на Cloudflare Pages или GitHub Pages. Ноль затрат на хостинг вычислений. Калькуляторы, формы с бизнес-логикой, простые автоматизации — уже реальная альтернатива бэкенду.

Кейсы в личной жизни

Разработчик и data scientist. Шаринг Python-скрипта без установки — просто ссылка. Коллега открывает страницу, код выполняется у него в браузере. Для демонстрации алгоритма или быстрого дашборда это удобнее любого Jupyter-сервера.

Контент-мейкер и преподаватель. Интерактивные примеры кода прямо в статье или курсе — без бэкенда. Студент нажимает «запустить», и Python отрабатывает в браузере. С тяжёлыми библиотеками через WASM-пакеты это теперь тоже работает.

Фрилансер, работающий с данными. Прототип инструмента для клиента деплоится как статичная страница за 10 минут — никакого сервера, никаких контейнеров. Клиент открывает URL и работает с Python-логикой напрямую. Выглядит профессионально, стоит нулевых денег в поддержке.

Как применить сегодня

  • Зайди в официальный Pyodide REPL и запусти пример с micropip.install("luau-wasm") — почувствуй, как инсталляция пакетов работает прямо в браузере.
  • Если у тебя Python-пакет с нативными расширениями — изучи PEP 783 и добавь cibuildwheel в GitHub Actions для сборки WASM-колёс.
  • Для быстрого браузерного прототипа: возьми шаблон JupyterLite, подключи micropip, используй уже доступные WASM-пакеты: pydantic_core, onnx, yaml-rs.
  • Деплой Python-скрипта как статичного HTML на GitHub Pages с Pyodide — буквально 30 минут работы, ноль серверных расходов.
  • Следи за ростом экосистемы: сейчас 28 пакетов, но наличие onnx и pydantic_core говорит, что ML-инференс и валидация данных уже частично доступны в браузере без сервера.
← Все статьи