TGViewer
Python Заметки Python Заметки @pythonotes · 2.2K subscribers
Post #438 340
­ WebAssembly это мощная технология позволяющая загружать практически любое приложение в браузер.
Это специально собранный бинарник .wasm (не dll и не so) который одинаково запустится в браузере на любой ос.

✅ Что то дает:

▫️Скорость работы. В данный момент лидером по совместимости является Rust, а значит вы можете написать сложное приложение не  на JS а сразу на Rust и встроить это в страницу сайта. На wasm работают различные графические и видеоредакторы где скорость выполнения важна! Например Figma.
▫️Портирование приложений ранее недоступных в браузере. Например вот вам браузерная сборка ffmpeg
▫️Выполнения тяжелого кода на стороне клиента. Это важная возможность! Вместо того, чтобы грузить свой бэкенд тяжелыми расчетам, недоступными в JS приложениями, мы просто переносим это на сторону юзера. Каждый клиент загружает своё железо.

😎 Ну и конечно же есть сборка Python для wasm, это библиотека pyodide

▫️настоящий интерпретатор прямо в браузере!
▫️поддерживает обычный py-код
▫️поддерживает async
▫️есть все популярные c/rust-библиотеки собранные под wasm
▫️доступна виртуальная файловая система для работы с файлами

😖 Есть и ограничения:

▫️Нет чистых TCP/UDP сокетов. Используется браузерное API. А значит все ограничения запросов от браузера (CORS например).
▫️Нет multiprocessing. Это вам не ос, а браузер. Тут процессы не имеют смысла.
▫️threading тоже ограничен, обычно используется Web Workers браузера.
▫️Расширения на С не поддерживаются совсем, но в официальной коллекции пакетов pyodide есть всё нужное уже собранное под wasm32. Но таких библиотек как psutil по понятным причинам нет и не будет.
▫️Производительность ниже чем чистый CPython
▫️Файловая система в RAM, а значит много не запишешь, сохранять там что-то бесполезно. Нужно выводить файлы в Local Storage браузера.
▫️Установка пакетов только из whl и zip, включая скачивание по URL. Никакой установки через git так как самого git нет.

Сделал пример HTML файла с библиотекой Pillow↗️. Всё считается на стороне клиента в браузере.

#libs
  • ❤ 3
More from @pythonotes
  1. Aug 17, 2026Не так давно столкнулся с API который в ответе с ошибкой присылал только статус-код. Без п…
  2. Jul 20, 2026У меня основная ОС это Linux. Но нередко требуется делать сборку клиента под Windows. Соби…
  3. Jul 13, 2026В прошлый раз был пример с понижением привелегий процесса. Проблема в том, что обратно под…
  4. Jul 6, 2026Модуль pwd может использоваться для считывания информации о пользователях из базы данных п…
  5. Jun 22, 2026Недавно я реализовал Multi Tenancy систему на FastAPI + SQLAlchemy и пересобрал её в небол…
  6. Jun 15, 2026Multi Tenancy - это архитектурный подход в разработке, при котором один экземпляр приложен…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →