Mozilla’s Pyodide becomes an independent and community-driven project

by Jeremy

Provide, Mozilla’s open-source project for running Python inside a web browser has become an independent and community-driven project with a new home on GitHub. The company also announced the latest 0.17 release as part of its announcement.  The project aims to bring the Python runtime to the browser via WebAssembly along with NumPy, Pandas, Matplotlib, parts of SciPy, and NetworkX. 

pexels photo 3280908

According to Mozilla, Pyodide contains the CPython 3.8 interpreter compiled to WebAssembly, allowing Python to run in the browser. It can install any Python package with a pure Python wheel from the Python Package Index (PyPi).

RELATED CONTENT: Python named TIOBE’s programming language of 2020

The new version contains significant maintenance improvements, a significant redesign of the central APIs and careful elimination of error and memory leaks

The type translation module was significantly reworked so that the round trip translations of objects between Python and JavaScript produce identical objects.

Previously, issues with round trip translations were caused by the implicit change of Python types to Javascript, which surprised users. 

Another new feature is a Python event loop that schedules coroutines to run on the browser event loop, making it possible to use asyncio in Provide. It’s also now possible to await JavaScript Promises in Python and await Python away tables in JavaScript.

Error handling was also improved so that errors could be thrown in Python and caught in JavaScript and vice-versa. The error translation code is generated by C macros which simplifies implementing and debugging new logic. 

The latest release also completes the migration to the newest version of Emscripten that uses the upstream LLVM backend, reducing significant reductions, package size, and execution time. 

Provide was initially developed inside Mozilla to allow Python in Iodide to build an interactive scientific computing environment for the web. 

Moving forward, the developers behind Pyodide are focusing on reducing download sizes and initialization times, improving the performance of Python code in Pyodide, and simplifying the package loading system.

Related Posts

Leave a Comment