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.js

  • libeventloop.js

  • libGL

  • libhtml5_webgl.js

  • libhtml5.js

  • liblz4

  • libsdl.js

  • libwebgl.js

  • libwebsocket.js

  • bzip2

  • zlib

  • sqlite3 version 3.39.0

  • lzma (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)