What is Pyodide?#

Pyodide is a Python distribution for the browser and Node.js based on WebAssembly/Emscripten.

Pyodide makes it possible to install and run Python packages in the browser with micropip. Any pure Python package with a wheel available on PyPI is supported. Many packages with C extensions have also been ported for use with Pyodide. These include many general-purpose packages such as regex, PyYAML, lxml and scientific Python packages including NumPy, pandas, SciPy, Matplotlib, and scikit-learn.

Pyodide comes with a robust Javascript 🡘 Python foreign function interface so that you can freely mix these two languages in your code with minimal friction. This includes full support for error handling (throw an error in one language, catch it in the other), async/await, and much more.

When used inside a browser, Python has full access to the Web APIs.

History#

Pyodide was created in 2018 by Michael Droettboom at Mozilla as part of the Iodide project. Iodide is an experimental web-based notebook environment for literate scientific computing and communication.

Contributing#

See the contributing guide for tips on filing issues, making changes, and submitting pull requests. Pyodide is an independent and community-driven open-source project. The decision-making process is outlined in Governance and Decision-making.

Citing#

If you use Pyodide for a scientific publication, we would appreciate citations. Please find us on Zenodo and use the citation for the version you are using. You can replace the full author list from there with “The Pyodide development team” like in the example below:

@software{pyodide_2021,
  author       = {The Pyodide development team},
  title        = {pyodide/pyodide},
  month        = aug,
  year         = 2021,
  publisher    = {Zenodo},
  version      = {314.0.0},
  doi          = {10.5281/zenodo.5156931},
  url          = {https://doi.org/10.5281/zenodo.5156931}
}

Communication#

Institutional and Financial Support#

Pyodide is a community-driven project that has benefited from the support of various institutions, grants, and employers who have allocated resources and time to its development.

Institution

Contributor(s)

Contribution Type

Period

Cloudflare, Inc.

Gyeongjae Choi

Employer-sponsored time

2025–Present

Quansight Labs

Agriya Khetarpal

Employer-sponsored time

2024–Present

Chan Zuckerberg Initiative (CZI) 2022-316713

Agriya Khetarpal

Research software grant

2024–2025

Cloudflare, Inc.

Robert Hood Chatham

Employer-sponsored time

2023–Present

Anaconda, Inc.

Robert Hood Chatham

Employer-sponsored time

2023

NSF Grant DMS–2002087

Robert Hood Chatham

Research grant

2020–2022

Symerio (symerio.com)

Roman Yurchak

French state-funded contributions

2020–2023

Mozilla Corporation

Michael Droettboom

Core development support

2018–2020

Nexedi (nexedi.com)

Roman Yurchak

R&D grant for early development

2018

Supporting Pyodide#

Pyodide is a community-driven project, and there are many ways to contribute:

  • Code and Documentation: Contribute improvements, bug fixes, or new features via GitHub.

  • Financial Support: Help sustain the project via:

    1. GitHub Sponsors

    2. OpenCollective

  • Community Engagement: Report issues, share feedback, or help others on GitHub Discussions.

Financial contributions help fund infrastructure, organize development sprints, and enable maintainers to dedicate more time to the project.

For partnership opportunities or major institutional support, please reach out via GitHub Discussions.

License#

Pyodide uses the Mozilla Public License Version 2.0.

Infrastructure support#

We would like to thank,