Rust Modules
Rye recommends using maturin to develop Rust Python
extension modules. This process is largely automated and new projects can be created
with rye init.
New Project
rye init my-project --build-system maturin
cd my-project
The following structure will be created:
.
├── .git
├── .gitignore
├── .python-version
├── README.md
├── pyproject.toml
├── Cargo.toml
├── python
└── my_project
└── __init__.py
└── src
└── lib.rs
Iterating
When you use maturin as a build system then rye sync will automatically build the rust
extension module into your venv. Likewise rye build will use maturin to trigger a
wheel build. For faster iteration it's recommended to use maturin directly.
If you want to use other maturin commands such as maturin develop you can install
it as a global tool:
rye install maturin
Rye recommends mixed python/rust modules. In that case you can save some valuable
iteration time by running maturin develop --skip-install:
maturin develop --skip-install