pywasm3
wasmtime-py


pywasm3 | wasmtime-py | |
---|---|---|
3 | 4 | |
83 | 422 | |
- | 2.6% | |
1.3 | 7.2 | |
6 months ago | 7 days ago | |
C | Python | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
pywasm3
-
New package: wasm.el
It's an embedding of the wasm3 library, and it exposes a function, `wasm-test`, that can call a function without arguments from a simple WebAssembly module. I intend to update it to reach feature parity with, for example, the python embedding.
-
WebAssembly: Adding Python Support to WASM Language Runtimes
PyOdide isn't currently supported outside of browsers, though that might change.
Either way, I couldn't figure out how to do the above sequence of steps with any of the available Python WASM runtimes - they're all very under-documented at the moment, sadly. I tried all three of these:
- https://github.com/wasmerio/wasmer-python
- https://github.com/bytecodealliance/wasmtime-py
- https://github.com/wasm3/pywasm3
-
Interpret Rust with Python
You might look at https://github.com/wasm3/pywasm3 . If nothing else, it’d presumably speed up your interpreter to have bindings to an established C based runtime rather than re implementing the runtime in python
wasmtime-py
-
Spin 3.0 – open-source tooling for building and running WASM apps
Thanks - I just found an open issue for exposing that in the Python API: https://github.com/bytecodealliance/wasmtime-py/issues/251
- another 4x to 5x speed up in calling #WASM #WebAssembly from python is on the horizon
-
WebAssembly: Adding Python Support to WASM Language Runtimes
Wasmtime's `wasmtime-py` embedding in python has support for Wasm Components: https://github.com/bytecodealliance/wasmtime-py#components (disclosure, I helped create it)
The remaining piece of the puzzle would be to create a wit-bindgen guest generator https://github.com/bytecodealliance/wit-bindgen#guests for this build of the python interpreter. You could then seamlessly call back and forth between the host and guest pythons, without even knowing that wasmtime is under the hood.
What are some alternatives?
wasm-git - GIT for nodejs and the browser using https://libgit2.org compiled to WebAssembly with https://emscripten.org
python-wasi - Utilities for building CPython for the WASI platform
nsjail - A lightweight process isolation tool that utilizes Linux namespaces, cgroups, rlimits and seccomp-bpf syscall filters, leveraging the Kafel BPF language for enhanced security.
binjgb - Gameboy emulator implemented in C, that also runs in the browser
python-sandbox-wasm
pywasm - A WebAssembly interpreter written in pure Python
extism - The framework for building with WebAssembly (wasm). Easily load wasm modules, move data, call functions, and build extensible apps.
empack - Tools to pack a conda / mamba environment into a JS & WASM bundle
wasm.el - Emacs integration for WebAssembly runtimes. Currently working on wasm3.
wasm-demos - some WASM demos

