Mozilla’s Pyodide, an 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 new 0.17 release as part of its announcement.

The project wants to bring the Python runtime to the browser via WebAssembly along with NumPy, Pandas, Matplotlib, parts of SciPy and NetworkX.

Pyodide is said to contain the CPython 3.8 interpreter compiled to WebAssembly, which allows Python to run in the browser and it can install any Python package with a pure Python wheel from the Python Package Index (PyPi). The new version contains major maintenance improvements, a large redesign of the central APIs and careful elimination of error and memory leaks. Previously, issues with round trip translations were caused by an 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 which makes it possible to use asyncio in Pyodide. 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 latest version of Emscripten that uses the upstream LLVM backend, reducing significant reductions, package size and execution time.

Pyodide was originally developed inside Mozilla to allow the use of Python in Iodide to build an interactive scientific computing environment for the web.

Tags: , , , , , , , , , , , , , , , , , , , , , , ,