Mozilla делает проект сообщества Pyodide


Pyodide теперь является независимым проектом сообщества, а не разрабатывается в Mozilla. Pyodide предоставляет способ запуска Python в веб-браузерах с помощью компиляции WebAssembly интерпретатора CPython и научного стека.

Pyodide начал свою жизнь как экспериментальный проект от Mozilla по созданию полного стека данных Python для работы полностью в браузере. Потребность в веб-Python возникла из-за того, что JavaScript не имел зрелого набора библиотек data science и отсутствовал ряд функций, полезных для численных вычислений, таких как перегрузка операторов. 

Pyodide

В качестве альтернативы разработчики Mozilla придумали Пиодид. Он переносит среду выполнения Python 3.8 в браузер через WebAssembly, а также научный стек Python, включая NumPy, Pandas, Matplotlib, SciPy и scikit-learn. В настоящее время доступно более 75 пакетов, и разработчики также могут установить чистые колеса Python из PyPI.  Pyodide включает в себя комплексный интерфейс внешних функций, который предоставляет экосистему пакетов Python для Javascript и пользовательский интерфейс браузера, включая DOM, для Python.

Pyodide был создан в рамках проекта Mozilla Iodide по разработке экспериментальной веб-среды для ноутбуков для грамотных научных вычислений и коммуникаций. Mozilla прекратила работу над йодидом, и он больше не поддерживается. Это аналогично решению Mozilla передать Rust Фонду Rust после того, как Mozilla уволила 250 сотрудников в рамках реструктуризации компании в 2020 году.

Pyodide обеспечивает прозрачное преобразование объектов между JavaScript и Python. При использовании внутри браузера Python имеет полный доступ к веб-API.

Pyodide также был обновлен до версии 0.17 в рамках перехода на версию сообщества. Команда разработчиков говорит, что Pyodide 0.17.0 является важным шагом вперед по сравнению с предыдущими версиями. Она включает в себя значительные улучшения технического обслуживания,тщательную переработку центральных API и тщательное устранение утечек ошибок и утечек памяти. Среди улучшений модуль переводов типов был значительно переработан с целью того, чтобы переводы объектов между Python и Javascript в оба конца создавали идентичный объект.

Еще одной важной новой функцией является реализация цикла событий Python, который планирует запуск сопрограмм в цикле событий браузера. Это позволяет использовать асинцио в Пиодиде. Теперь также можно ожидать обещаний Javascript в Python и ожидать ожидаемых результатов Python в Javascript. Это обеспечивает бесшовную совместимость между asyncio в Python и Javascript.


Добавить комментарий