| [ Web Proxy ] |
| Viewing: https://pyodide.org/en/stable/usage/api/python-api/../../../development/abi/314.html | [Back] [Original] |
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.
CPython: 3.14
Emscripten: 5.0.3
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.
When building Rust packages to target the pyemscripten_2026_0 platform, use
Rust version 1.93.0 or later.
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.
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.
The platform name was changed from pyodide to pyemscripten.
Emscripten was upgraded from 4.0.9 to 5.0.3.
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.
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)
| Web Proxy Viewer | New URL | Original Page |