Python WASI (wasm32-wasi) build
WASI support is
.
This directory contains configuration and helpers to facilitate cross compilation of CPython to WebAssembly (WASM) using WASI. WASI builds use WASM runtimes such as
.
NOTE: If you are looking for general information about WebAssembly that is not directly related to CPython, please see
https://github.com/psf/webassembly
.
Build
See
the devguide on how to build and run for WASI
.
Detecting WASI builds
Python code
importos, sysifsys.platform=="wasi": # Python on WASI ... ifos.name=="posix": # WASM platforms identify as POSIX-like.# Windows does not provide os.uname().machine=os.uname().machineifmachine.startswith("wasm"): # WebAssembly (wasm32, wasm64 potentially in the future)>>>importos, sys>>>os.uname() posix.uname_result( sysname='wasi', nodename='(none)', release='0.0.0', version='0.0.0', machine='wasm32' ) >>>os.name'posix'>>>sys.platform'wasi'C code
WASI SDK defines several built-in macros. You can dump a full list of built-ins with /path/to/wasi-sdk/bin/clang -dM -E - < /dev/null.
WebAssembly __wasm__ (also __wasm)
wasm32 __wasm32__ (also __wasm32)
wasm64 __wasm64__
WASI __wasi__