pyemscripten_2026_0#
By default, all builds of the Pyodide runtime with Python 3.14 use the
pyemscripten_2026_0 platform.
This section reflects the planned definition for the pyemscripten_2026_0
platform.
Platform Specification#
CPython and Emscripten Version#
CPython: 3.14
Emscripten: 5.0.3
Unwinding ABIs#
C++ libraries are built with WebAssembly exception handling (-fwasm-exceptions)
and WebAssembly-based setjmp/longjmp (-sSUPPORT_LONGJMP=wasm). To enable
exceptions and setjmp/longjmp, -fwasm-exceptions must be passed at compile
time and link time.
Rust Toolchain#
When building Rust packages to target the pyemscripten_2026_0 platform, use
Rust version 1.93.0 or later.
Runtime Library Loading Path#
There is full support for RPATH. The dynamic loader will only load
dependencies that are properly specified on the RPATH, just being in
/lib/python3.14/site-packages/wheel_name.libs is not sufficient.
Libraries Linked to the Main Binary#
The following libraries are statically linked to the binary:
libegl.jslibeventloop.jslibGLlibhtml5_webgl.jslibhtml5.jsliblz4libsdl.jslibwebgl.jslibwebsocket.jsbzip2zlibsqlite3version 3.39.0lzma(xz) version 5.2.2
Aside from sqlite3 and lzma, these libraries come from Emscripten ports and
the versions of the libraries are determined by the version of Emscripten we
build with. Any symbols from these static libraries may be used by shared
libraries.
Changes from pyemscripten_2025_0#
Platform Name#
The platform name was changed from pyodide to pyemscripten.
Emscripten version#
Emscripten was upgraded from 4.0.9 to 5.0.3.
Rust toolchain simplified#
In pyemscripten_2025_0, a Rust nightly was required with the unstable
-Z emscripten-wasm-eh flag and a custom sysroot. In pyemscripten_2026_0, Rust
1.93.0 or later is sufficient — no custom sysroot or nightly-only flags are
needed.
Technically speaking, this is not a change to the platform. pyemscripten_2025_0
also works with stable Rust 1.93.0.
Additional statically linked libraries#
The following libraries are now statically linked to the interpreter in addition to the Emscripten port libraries:
sqlite3(3.39.0)lzma(xz) (5.2.2)