// the find
wasmerio/wasmer-python
🐍🕸 WebAssembly runtime for Python
Python bindings for the Wasmer WebAssembly runtime, written in Rust via pyo3. Lets you load and execute .wasm modules from Python with a choice of three compilers (Singlepass, Cranelift, LLVM) trading off compilation speed vs execution speed. Aimed at anyone who wants to run sandboxed native-speed code from Python without spawning a subprocess.
The three-compiler model is genuinely useful — Cranelift for dev iteration, LLVM for production throughput, Singlepass for blockchain/low-latency JIT-bomb-resistant use cases. The WASI support means you can run real CLI tools, not just toy math functions. The headless engine (pre-compiled .wasm) is a solid production pattern that avoids paying compilation cost at runtime. Test coverage is thorough — there are dedicated test files for every exported concept (memory, globals, tables, WASI, WAT parsing).
The repo has been dead since September 2023 and still only lists Python 3.7–3.10 wheel targets — no 3.11, 3.12, or 3.13 support, which is a blocker for anything current. Apple Silicon (aarch64-apple-darwin) is completely absent from the wheels table, so half of modern Mac development machines can't use it without building from source. The engine split (Universal/Native) was deprecated in upstream Wasmer 3.x; the Python bindings never caught up, so the API is already stale against the C runtime it wraps. No async support — if you're calling Wasm from an async Python service, you're blocking the event loop.