We are pleased to announce the Pyodide v0.28.0 release. This release focused on standardizing the Pyodide platform. Defining the Pyodide ABI In October 2024, the CPython steering council approved restoring Emscripten as a tier 3 target for CPython, starting from Python 3.14. We wrote PEP 776 – Emscripten Runtime support and PEP 783 – Emscripten Packaging in order to standardize the Emscripten target for CPython. PEP 783 aims to standardize the binary interfaces that Pyodide packages shoul...| Posts on Pyodide blog
Using JSPI with C code compiled to the wasm32-unknown-unknown target| Posts on Pyodide blog
Solving the sync/async problem with a new web standard.| Pyodide blog
Pyodide v0.27.0 is out. This release was focused on improving the long-term stability of Pyodide. Welcome Agriya Khetarpal to the Pyodide team Agriya Khetarpal has joined as a new maintainer. Agriya has been active in the Scientific Python area and is a contributor to NumPy, SciPy, and scikit-learn. He has already significantly strengthened Pyodide’s support for various Scientific Python packages. Build System Improvements Decoupling pyodide-build from Pyodide runtime pyodide-build is a too...| Pyodide blog
Hello, my name is Raul Andrial and I am a software engineer located in Miami, FL, USA. I created a proof of concept web app with Pyodide that allows users to use the pandas library without needing to code but can use code if they want to. The app uses a drag and drop interface. I also included functionality for plotting with matplotlib and linear regression using scikit-learn. You can read more about it here.| Pyodide blog
Pyodide v0.26.0 is out, including Python version 3.12, many minor improvements to the foreign function interface and to the build system, and major improvements to stack switching. It also includes a tremendous amount of foward-looking work that is not yet visible to users. Pyodide at PyCon We were at PyCon again this year at another WebAssembly summit. The authors of this post met each other in person for the first time.| Pyodide blog
Bringing a whole new meaning to "serverless".| Pyodide blog
Happy New Year! Pyodide 0.25 is a major release with some exciting and experimental features. This major release includes requests library support, experimental support for JS Promise integration, and build system improvements. requests Support in Pyodide For a long time, the Pyodide community has been requesting support for the requests, Python’s popular HTTP client library. However, due to the limitations of Pyodide running in a browser environment, integrating networking libraries presen...| Pyodide blog
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 wit...| Pyodide blog
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.| Pyodide blog
Getting the pyca/cryptography package to run in Pyodide| Pyodide blog
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.| Pyodide blog
From web servers to end-to-end Data pipelines, Python has become a ubiquitous tool for building all sorts of programs and software. With powerful built-in libraries and an incredible number of third-party libraries, the Python ecosystem makes it easy to quickly get your project started. In fact, building user interfaces (UIs) is not an exception: PyQT allows you to create cross-platform desktop applications, whereas libraries like Dash allows you to create full-fledged web applications (inclu...| Pyodide blog
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.| Pyodide blog
Why previous versions of Pyodide had a low recursion limit and how the upcoming version 0.19 supports a much higher one.| Pyodide blog
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 blog
Pyodide 0.24 is a major release focused on fine tuning public APIs and performance. It includes a major rework of the streams APIs to be faster and more flexible. We increased the consistency of the foreign function interface. We also added micropip support for the Python simple repository API. Performance Improvements Up to this point, we had not devoted much energy to performance improvements so there were many low-hanging fruit.| Pyodide blog
Pyodide 0.23 is a major release focused on updating CPython version to 3.11. It also brings several new features, enhancements, and bug fixes. This release includes updates to the Python standard library, deployment and build system enhancements, and new CLI commands. We also added several new packages to Pyodide, including fastparquet, pynacl and binary wheels for mypy. Note that there are several API deprecations; please refer to the changelog for details.| Pyodide blog
Pandas Tutor is a data science education tool that visualizes how pandas code transforms dataframes. In this guest post we discuss how we ported it to run 100% in-browser with Pyodide.| Pyodide blog
Pyodide is a distribution of CPython for WebAssembly which was started by Michael Droettboom at Mozilla. Today, Pyodide is an independent open source project. It not only provides support for calling JavaScript and web APIs from Python, but also brings the Python scientific stack to the browser as it includes the five most essential data science libraries – NumPy, Pandas, Matplotlib, scikit-learn, and Scipy. In this post, we present a new backend for Matplotlib enabling the rendering of fig...| Pyodide blog