Platform Tags & Compatibility#
The Emscripten/WebAssembly platform for Python is standardized by PEP 783.
Platform tag format#
Wheels built by pyodide-build use the platform tag:
pyemscripten_{year}_{patch}_wasm32
A complete wheel filename:
numpy-2.2.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl
│ │ │ │
│ │ │ └── platform tag
│ │ └── Python ABI tag
│ └── Python version tag
└── package version
Compatibility matrix#
Each platform version is tied to a specific Python version and Emscripten SDK version. Wheels built for one platform version are not compatible with another.
Platform tag |
Python |
Emscripten |
Notes |
|---|---|---|---|
|
3.11 |
3.1.32 |
Legacy tag name |
|
3.12 |
3.1.58 |
Legacy tag name |
|
3.13 |
4.0.9 |
Legacy tag name |
|
3.14 |
5.0.3 |
PEP 783 standardized name |
Note
Older Pyodide versions used the tag pyodide_{year}_{patch}_wasm32 or emscripten_{version}_wasm32. The pyemscripten_* tag is the standardized form going forward per PEP 783.
ABI compatibility rules#
Wheels are not cross-version compatible — a wheel built for
pyemscripten_2025_0_wasm32will not work withpyemscripten_2024_0_wasm32orpyemscripten_2026_0_wasm32.Pure Python wheels (
py3-none-any) work on all versions.The ABI version determines which Emscripten SDK and CPython build are used. Mixing versions will cause load-time or runtime errors.
cibuildwheel identifiers#
When using cibuildwheel, the platform identifiers are:
cibuildwheel identifier |
|---|
|
|
|
Checking your platform version#
pyodide config get pyodide_abi_version
Further reading#
PEP 783 — The Emscripten Platform — formal specification
Concepts — Platform Tags — introductory explanation