Pyodide 0.22.0 release

Pyodide 0.22 is a major release focused on improving the foreign function interface between Python and JavaScript. We also improved the systems for building, loading, and testing packages. In particular, we added support for creating virtual environments that execute code using Pyodide in Node.js. We unvendored the Pyodide package manager and matplotlib backend into separate repositories. We also added a new command line interface for common tasks involved in building and testing packages with Pyodide. ...

January 3, 2023 · 5 min · Gyeongjae Choi and Hood Chatham on behalf of the Pyodide team

Pyodide 0.21.0 release

Pyodide 0.21 is a major release focused on improvements to the systems for building and loading packages. We made it much easier to build and use binary wheels that are not included in our distribution. We added support for Rust packages and made major progress in simplifying support for CMake packages. We also added 34 new packages including a large number of popular packages, for example bitarray, opencv-python, shapely, and xgboost. ...

August 9, 2022 · 4 min · Hood Chatham on behalf of the Pyodide team

Pyodide 0.20.0 release

Pyodide 0.20 is a major release focused on improving our system for building and packaging Python modules. We upgraded to Python 3.10. This comes with a speed boost of around 15% in Firefox and 22% in Chrome. We updated almost every package to the most recent release, and moved closer to using upstream Emscripten. Pyodide 0.20 also includes many small bug fixes and usability improvements. For the complete list of changes see the changelog. ...

April 9, 2022 · 3 min · Hood Chatham on behalf of the Pyodide team

Pyodide 0.19.0 release

Pyodide 0.19 is a major release focused on improving the build system, updating scientific computing packages, and improving the workflow for loading Python code. Here are a few highlights. For the complete list of changes see the changelog. Removal of function pointer cast emulation Some Python C extensions use function pointer casting, which is an unspecified behavior according to the C specification. However, all common native C compilers generate code that works fine. This is not the case with Emscripten when building for WebAssembly, which will fail on function pointer casts. As a workaround we have been using Emscripten’s -s EMULATE_FUNCTION_POINTER_CASTS flag, which emits code to emulate function pointer casts at runtime. This has significant overhead. ...

January 10, 2022 · 4 min · Hood Chatham and Roman Yurchak, on behalf of the Pyodide team

Pyodide becomes member of the Open Source Collective

We would like to announce that Pyodide is now a member of the Open Source Collective (OSC), which will act as the project’s fiscal host. The Pyodide project compiles Python and the scientific stack to WebAssembly using Emscripten. Pyodide was created in 2018 by Michael Droettboom at Mozilla as part of the Iodide project. Later in 2021 Pyodide became an independent open-source project, and the current announcement completes this transition. Pyodide is now able to receive donations and accept sponsorships though Open Source Collective, which should help long term project sustainability. We have looked at a few non-profit umbrella organizations before making this choice, and we quite like the financial transparency and ease of setup offered by OSC. In addition, since Pyodide use cases are wider than scientific computing, we felt that a non-specialized fiscal host would be best. ...

November 10, 2021 · 1 min · Roman Yurchak and Hood Chatham, on behalf of the Pyodide team