Where should I start with Pyodide?
Updated
Start by identifying your role, then jump to the matching documentation path. Pyodide is a Python distribution for the browser and Node.js based on WebAssembly, and its docs are organized by task rather than as a single linear tutorial.
Pick your path
| Your situation | Where to start |
|---|---|
| You want to use a hosted Pyodide distribution | Getting started |
| You want to host Pyodide yourself | Download from the releases page and serve it with a web server |
| You use a bundler | Working with Bundlers |
| You maintain a Python package | pyodide-build |
| You want to add a package to the Pyodide distribution | pyodide-build |
| You want to experiment with or contribute to the runtime | Building from source |
What Pyodide actually gives you
Knowing the scope helps you choose the right entry point:
- It is a port of CPython to WebAssembly/Emscripten.
- You can install and run Python packages in the browser with
micropip. - Any pure Python package with a wheel on PyPI is supported.
- Many packages with C, C++, and Rust extensions have also been ported, including general-purpose ones such as
regex,PyYAML, andcryptography, plus scientific packages like NumPy, pandas, SciPy, Matplotlib, and scikit-learn. - A JavaScript ⟺ Python foreign function interface lets you mix the two languages, with full error handling (throw in one language, catch in the other), async/await, and more.
- In a browser, Python has full access to the Web APIs.
Try it before you read anything
If you just want to see it work, run Pyodide in a REPL directly in your browser — no installation needed. That is the fastest way to confirm it fits your use case before committing to a hosting or build path.
After you choose a path
Once you are past the entry point, the Using Pyodide section covers the practical ground: Getting started, downloading and deploying, accessing files, the quick reference, loading packages, Python compatibility, type translations, interrupting execution, redirecting standard streams, the API reference, and a FAQ. The Development section is for contributors, covering building packages, building from source, testing and benchmarking, debugging tips, and how to contribute.