{"repo":"PyO3/maturin","free":true,"listed":false,"github":"https://github.com/PyO3/maturin","clone":"git clone https://github.com/PyO3/maturin.git","description":"Build and publish crates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages","language":"Rust","stars":5760,"topics":["pyo3","python","wheels","cpython","packaging","pypi","cffi","pypy","uniffi","cross-compile"],"license":"Apache-2.0","category":"dev-tools","readme_excerpt":"Maturin formerly pyo3-pack Build and publish crates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages with minimal configuration. It supports building wheels for python 3.8+ on Windows, Linux, macOS and FreeBSD, can upload them to pypi and has basic PyPy and GraalPy support. Check out the User Guide! Usage You can either download binaries from the latest release or install it with pipx or uv: [!NOTE] pip install maturin should also work if you don't want to use pipx. There are three main commands: - maturin new creates a new cargo project with maturin configured. - maturin build builds the wheels and stores them in a folder ( target/wheels by default), but doesn't upload them. It's recommended to publish packages with uv using uv publish . - maturin develop builds the crate and installs it as a python module directly in the current virtualenv. Note that while maturin develop is faster, it doesn't support all the feature that running pip install after maturin build supports. maturin doesn't need extra configuration files and doesn't clash with an existing setuptools-rust configuration. You can even integrate it with testing tools such as tox. There are examples for the different bindings in the test-crates folder. The name of the package will be the name of the cargo project, i.e. the name field in the [package] section of Cargo.toml . The name of the module, which you are using when importing, will be the name value in the [lib] section (which de","default_branch":null,"files":null,"tree":[],"storefront":"/r/PyO3","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/PyO3/maturin/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}