- Notifications
You must be signed in to change notification settings - Fork0
A Python Interpreter written in Rust
License
coolcoder613eb/RustPython
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
A Python-3 (CPython >= 3.5.0) Interpreter written in Rust 🐍 😱🤘.
Check out ouronline demo running on WebAssembly.
RustPython requires Rust latest stable version (e.g 1.43.0 at May 24th 2020).To check Rust version:rustc --version If you wish to update,rustup update stable.
To test RustPython, do the following:
$ git clone https://github.com/RustPython/RustPython$ cd RustPython$ cargo run demo.pyHello, RustPython!Or use the interactive shell:
$ cargo runWelcome to rustpython>>>>> 2+24You can also install and run RustPython with the following:
$ cargo install rustpython$ rustpythonWelcome to the magnificent Rust Python interpreter>>>>>Or through theconda package manager:
$ conda install rustpython -c conda-forge$ rustpythonYou can compile RustPython to a standalone WebAssembly WASI module so it can run anywhere.
$ wapm install rustpython$ wapm run rustpython>>>>> 2+24
You can build the WebAssembly WASI file with:
cargo build --release --target wasm32-wasi --features="freeze-stdlib"Note: we use the
freeze-stdlibto include the standard library inside the binary.
Interested in exposing Python scripting in an application written in Rust,perhaps to allow quickly tweaking logic where Rust's compile times would be inhibitive?Thenexamples/hello_embed.rs andexamples/mini_repl.rs may be of some assistance.
RustPython is in a development phase and should not be used in production or afault intolerant setting.
Our current build supports only a subset of Python syntax.
Contribution is also more than welcome! See our contribution section for moreinformation on this.
Checkout those talks on conferences:
Allthough rustpython is a very young project, it is already used in the wild:
- pyckitup: a game engine written inrust.
- codingworkshops.org: a sitewhere you can learn how to code.
- Full Python-3 environment entirely in Rust (not CPython bindings)
- A clean implementation without compatibility hacks
Currently along with other areas of the project, documentation is still in anearly phase.
You can read theonline documentation for thelatest release.
You can also generate documentation locally by running:
$ cargo doc# Including documentation for all dependencies$ cargo doc --no-deps --all# Excluding all dependencies
Documentation HTML files can then be found in thetarget/doc directory.
Contributions are more than welcome, and in many cases we are happy to guidecontributors through PRs or on gitter. Please refer to thedevelopment guide as well for tips on developments.
With that in mind, please note this project is maintained by volunteers, some ofthe best ways to get started are below:
Most tasks are listed in theissue tracker. Check issueslabeled withgood first issue if you wish to start coding.
To enhance CPython compatibility, try to increase unittest coverage by checking this article:How to contribute to RustPython by CPython unittest
Another approach is to checkout the source code: builtin functions and objectmethods are often the simplest and easiest way to contribute.
You can also simply run./whats_left.sh to assist in finding any unimplementedmethod.
As of now the standard library is under construction. You can change a standardlibrary by setting the RUSTPYTHONPATH environment variable.
To do this, follow this method:
$export RUSTPYTHONPATH=./Lib# this is same as the default value$ cargo run -- -c'import xdrlib'
You can play around with other standard libraries for python. For example, theouroboros library or CPython Lib.
Chat with us ongitter.
Our code of conductcan be found here.
The initial work was based onwindelbouwman/rspython andshinglyu/RustPython
These are some useful links to related projects:
- https://github.com/ProgVal/pythonvm-rust
- https://github.com/shinglyu/RustPython
- https://github.com/windelbouwman/rspython
This project is licensed under the MIT license. Please see theLICENSE file for more details.
Theproject logo is licensed under the CC-BY-4.0license. Please see theLICENSE-logo filefor more details.
About
A Python Interpreter written in Rust
Resources
License
Code of conduct
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Languages
- C70.3%
- Rust24.9%
- Python4.6%
- JavaScript0.2%
- EJS0.0%
- CSS0.0%
