A Python 3 interpreter written in Rust, enabling Python execution in WebAssembly, embedding, and more.
RustPython is a Python 3 interpreter written entirely in Rust that aims for full compatibility with CPython 3.14.0 and above. It provides a clean, embeddable Python environment that can run in diverse contexts like WebAssembly, Rust applications, and standalone systems without relying on CPython bindings.
Rust developers seeking to embed Python scripting into their applications for extensibility, and developers needing a Python interpreter that runs in WebAssembly environments or as a standalone, cross-platform tool.
Developers choose RustPython for its implementation in safe, performant Rust, offering embeddability into Rust projects and WebAssembly support without CPython dependencies, alongside experimental JIT compilation for accelerated Python execution.
A Python Interpreter written in Rust
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Compiles to WASI for running Python in browsers or WASM runtimes like Wasmer, with an online demo showcasing this capability, enabling Python execution in web contexts without CPython.
Allows embedding Python scripting into Rust applications for extensibility, with provided examples like hello_embed.rs, making it ideal for adding scripting to Rust projects without CPython bindings.
Offers a just-in-time compiler to accelerate Python function execution, enabled via the 'jit' feature, though it requires additional build tools and is experimental, as noted in the README.
Works on Windows, Linux, macOS, and via WebAssembly with environment-specific guidance, such as setting RUSTPYTHONPATH on Windows, supporting diverse deployment scenarios.
The project explicitly states it is 'not totally production-ready' in the disclaimer, meaning it may have bugs, incomplete features, or instability for critical use cases.
Requires Rust toolchain installation and additional dependencies for features like SSL or JIT, such as OpenSSL or build tools on Windows, making setup more involved than standard Python.
Documentation is described as 'still in an early phase' in the README, which can hinder learning, troubleshooting, and adoption for new users or complex integrations.