freshcrate
Skin:/
Home > Developer Tools > maturin

maturin

Build and publish crates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages

Why this rank:Strong adoptionRelease freshnessHealthy release cadence

Description

# Maturin _formerly pyo3-pack_ [![Maturin User Guide](https://img.shields.io/badge/user-guide-brightgreen?logo=readthedocs&style=flat-square)](https://maturin.rs) [![Crates.io](https://img.shields.io/crates/v/maturin.svg?logo=rust&style=flat-square)](https://crates.io/crates/maturin) [![PyPI](https://img.shields.io/pypi/v/maturin.svg?logo=python&style=flat-square)](https://pypi.org/project/maturin) [![discord server](https://img.shields.io/discord/1209263839632424990?logo=discord&style=flat-square)](https://discord.gg/33kcChzH7f) Build and publish crates with [pyo3, cffi and uniffi bindings](https://maturin.rs/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](https://pypi.org/) and has basic PyPy and GraalPy support. Check out the [User Guide](https://maturin.rs/)! ## Usage You can either download binaries from the [latest release](https://github.com/PyO3/maturin/releases/latest) or install it with [pipx](https://pypa.github.io/pipx/) or [uv](https://github.com/astral-sh/uv): ```shell # pipx pipx install maturin # uv uv tool install maturin ``` > [!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](https://github.com/astral-sh/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](https://tox.readthedocs.io/en/latest/). 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 defaults to the name of the package). For binaries, it's simply the name of the binary generated by cargo. When using `maturin build` and `maturin develop` commands, you can compile a performance-optimized program by adding the `-r` or `--release` flag. ## Python packaging basics Python packages come in two formats: A built form called wheel and source distributions (sdist), both of which are archives. A wheel can be compatible with any python version, interpreter (cpython and pypy, mainly), operating system and hardware architecture (for pure python wheels), can be limited to a specific platform and architecture (e.g. when using ctypes or cffi) or to a specific python interpreter and version on a specific architecture and operating system (e.g. with pyo3). When using `pip install` on a package, pip tries to find a matching wheel and install that. If it doesn't find one, it downloads the source distribution and builds a wheel for the current platform, which requires the right compilers to be installed. Installing a wheel is much faster than installing a source distribution as building wheels is generally slow. When you publish a package to be installable with `pip install`, you upload it to [pypi](https://pypi.org/), the official package repository. For testing, you can use [test pypi](https://test.pypi.org/) instead, which you can use with `pip install --index-url https://test.pypi.org/simple/`. Note that for [publishing for linux](#manylinux-and-auditwheel), you need to use the manylinux docker container or zig, while for publishing from your repository you can use the [PyO3/maturin-action](https://github.com/PyO3/maturin-action) github action. ## Mixed rust/python projects To create a mixed rust/python project, create a folder with your module name (i.e. `lib.name` in Cargo.toml) next to your Cargo.toml and add your python sources there: ``` my-project โ”œโ”€โ”€ Cargo.toml โ”œโ”€โ”€ my_project โ”‚ย ย  โ”œโ”€โ”€ __init__.py โ”‚ย ย  โ””โ”€โ”€ bar.py โ”œโ”€โ”€ pyproject.toml โ”œโ”€โ”€ README.md โ””โ”€โ”€ src ย ย  โ””โ”€โ”€ lib.rs ``` You can specify a different python source directory in `pyproject.toml` by setting `tool.maturin.python-source`, for example **pyproject.toml** ```toml [tool.maturin] python-source = "python" module-name = "my_project._lib_name" ``` then the project structure would look like this: ``` my-project โ”œโ”€โ”€ Cargo.toml โ”œโ”€โ”€ python โ”‚ โ””โ”€โ”€ my_project โ”‚ โ”œโ”€โ”€ __init__.py โ”‚ โ””โ”€โ”€ bar.py โ”œโ”€โ”€ pyproject.toml โ”œโ”€โ”€ README.md โ””โ”€โ”€ src ย ย  โ””โ”€โ”€ lib.rs ``` > [!NOTE] > > This structure is recommended to avoid [a common `ImportError` pitfall](https://github.com/PyO3/maturin/issues/490) matur

Release History

VersionChangesUrgencyDate
v1.15.0## What's Changed * set `UV_PYTHON` when running `maturin develop` with uv by @davidhewitt in https://github.com/PyO3/maturin/pull/3236 * Set UID and GID headers in pax by @konstin in https://github.com/PyO3/maturin/pull/3241 * [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/PyO3/maturin/pull/3238 * Replace unguarded panics with explicit errors on fallible input by @messense in https://github.com/PyO3/maturin/pull/3242 * Harden PEP 517 build-wheel and fix unreaHigh8/24/2026
v1.14.1## What's Changed * Bump uraimo/run-on-arch-action to v3 to fix pytest job by @matusf in https://github.com/PyO3/maturin/pull/3221 * Fix platform tag logic to generate the same as cpython on AIX by @pgimalac in https://github.com/PyO3/maturin/pull/3220 * Bump pyo3-introspection by @Tpt in https://github.com/PyO3/maturin/pull/3227 * Upgrade cargo-zigbuild & cargo-xwin by @messense in https://github.com/PyO3/maturin/pull/3228 * Fix issues around crates enabling abi3 and abi3t features by @ngoHigh6/19/2026
v1.14.0## What's Changed * Support parent-relative pyproject metadata in sdists by @Copilot in https://github.com/PyO3/maturin/pull/3182 * Update PyPI platform tag validation by @messense in https://github.com/PyO3/maturin/pull/3187 * maint: update setup emsdk action in generate-ci by @ManonMarchand in https://github.com/PyO3/maturin/pull/3194 * fix: only shim bin wheels during auditwheel repair by @messense in https://github.com/PyO3/maturin/pull/3197 * fix: avoid editable ELF truncation from sHigh6/12/2026
v1.13.3## What's Changed * fix: disable abi3 in pyo3 config for version-specific fallback builds by @trim21 in https://github.com/PyO3/maturin/pull/3180 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.13.2...v1.13.3High5/11/2026
v1.13.2## What's Changed * fix: resolve test failures in distro packaging environments by @messense in https://github.com/PyO3/maturin/pull/3129 * fix: redirect tracing output to stderr to avoid breaking PEP 517 by @chrisburr in https://github.com/PyO3/maturin/pull/3131 * fix: skip interpreters with empty output for WSL2 cross-compile by @plusls in https://github.com/PyO3/maturin/pull/3137 * fix: set explicit lib_name in pyo3 config for Android abi3 cross-compilation by @messense in https://github.High5/10/2026
1.13.1Imported from PyPI (1.13.1)Low4/21/2026
v1.13.1## What's Changed * fix: fall back to placeholder for abi3 when found interpreters are too old by @messense in https://github.com/PyO3/maturin/pull/3126 See also v1.13.0 release highlight: https://github.com/PyO3/maturin/releases/tag/v1.13.0 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.13.0...v1.13.1Medium4/9/2026
v1.13.1## What's Changed * fix: fall back to placeholder for abi3 when found interpreters are too old by @messense in https://github.com/PyO3/maturin/pull/3126 See also v1.13.0 release highlight: https://github.com/PyO3/maturin/releases/tag/v1.13.0 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.13.0...v1.13.1Medium4/9/2026
v1.13.1## What's Changed * fix: fall back to placeholder for abi3 when found interpreters are too old by @messense in https://github.com/PyO3/maturin/pull/3126 See also v1.13.0 release highlight: https://github.com/PyO3/maturin/releases/tag/v1.13.0 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.13.0...v1.13.1Medium4/9/2026
v1.13.1## What's Changed * fix: fall back to placeholder for abi3 when found interpreters are too old by @messense in https://github.com/PyO3/maturin/pull/3126 See also v1.13.0 release highlight: https://github.com/PyO3/maturin/releases/tag/v1.13.0 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.13.0...v1.13.1Medium4/9/2026
v1.13.1## What's Changed * fix: fall back to placeholder for abi3 when found interpreters are too old by @messense in https://github.com/PyO3/maturin/pull/3126 See also v1.13.0 release highlight: https://github.com/PyO3/maturin/releases/tag/v1.13.0 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.13.0...v1.13.1Medium4/9/2026
v1.13.1## What's Changed * fix: fall back to placeholder for abi3 when found interpreters are too old by @messense in https://github.com/PyO3/maturin/pull/3126 See also v1.13.0 release highlight: https://github.com/PyO3/maturin/releases/tag/v1.13.0 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.13.0...v1.13.1Medium4/9/2026
v1.13.1## What's Changed * fix: fall back to placeholder for abi3 when found interpreters are too old by @messense in https://github.com/PyO3/maturin/pull/3126 See also v1.13.0 release highlight: https://github.com/PyO3/maturin/releases/tag/v1.13.0 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.13.0...v1.13.1Medium4/9/2026
v1.13.1## What's Changed * fix: fall back to placeholder for abi3 when found interpreters are too old by @messense in https://github.com/PyO3/maturin/pull/3126 See also v1.13.0 release highlight: https://github.com/PyO3/maturin/releases/tag/v1.13.0 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.13.0...v1.13.1Medium4/9/2026
v1.13.1## What's Changed * fix: fall back to placeholder for abi3 when found interpreters are too old by @messense in https://github.com/PyO3/maturin/pull/3126 See also v1.13.0 release highlight: https://github.com/PyO3/maturin/releases/tag/v1.13.0 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.13.0...v1.13.1Medium4/9/2026
v1.13.1## What's Changed * fix: fall back to placeholder for abi3 when found interpreters are too old by @messense in https://github.com/PyO3/maturin/pull/3126 See also v1.13.0 release highlight: https://github.com/PyO3/maturin/releases/tag/v1.13.0 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.13.0...v1.13.1Medium4/9/2026
v1.13.1## What's Changed * fix: fall back to placeholder for abi3 when found interpreters are too old by @messense in https://github.com/PyO3/maturin/pull/3126 See also v1.13.0 release highlight: https://github.com/PyO3/maturin/releases/tag/v1.13.0 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.13.0...v1.13.1Medium4/9/2026
v1.13.1## What's Changed * fix: fall back to placeholder for abi3 when found interpreters are too old by @messense in https://github.com/PyO3/maturin/pull/3126 See also v1.13.0 release highlight: https://github.com/PyO3/maturin/releases/tag/v1.13.0 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.13.0...v1.13.1Medium4/9/2026
v1.13.1## What's Changed * fix: fall back to placeholder for abi3 when found interpreters are too old by @messense in https://github.com/PyO3/maturin/pull/3126 See also v1.13.0 release highlight: https://github.com/PyO3/maturin/releases/tag/v1.13.0 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.13.0...v1.13.1Medium4/9/2026
v1.13.1## What's Changed * fix: fall back to placeholder for abi3 when found interpreters are too old by @messense in https://github.com/PyO3/maturin/pull/3126 See also v1.13.0 release highlight: https://github.com/PyO3/maturin/releases/tag/v1.13.0 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.13.0...v1.13.1Medium4/9/2026
v1.13.1## What's Changed * fix: fall back to placeholder for abi3 when found interpreters are too old by @messense in https://github.com/PyO3/maturin/pull/3126 See also v1.13.0 release highlight: https://github.com/PyO3/maturin/releases/tag/v1.13.0 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.13.0...v1.13.1Medium4/9/2026
v1.13.1## What's Changed * fix: fall back to placeholder for abi3 when found interpreters are too old by @messense in https://github.com/PyO3/maturin/pull/3126 See also v1.13.0 release highlight: https://github.com/PyO3/maturin/releases/tag/v1.13.0 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.13.0...v1.13.1Medium4/9/2026
v1.13.1## What's Changed * fix: fall back to placeholder for abi3 when found interpreters are too old by @messense in https://github.com/PyO3/maturin/pull/3126 See also v1.13.0 release highlight: https://github.com/PyO3/maturin/releases/tag/v1.13.0 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.13.0...v1.13.1Medium4/9/2026
v1.13.0maturin 1.13.0 is a feature-rich release focused on better wheel generation, improved packaging workflows, and smoother cross-platform builds. This release adds new capabilities for stub generation and PGO builds, significantly improves wheel repair support on macOS and Windows, and includes a broad set of fixes for ABI tagging, source distributions, and platform-specific build behavior. ## Highlights * Added support for Profile-Guided Optimization (PGO). * Added PyO3 stub generation suMedium4/9/2026
v1.12.6## What's Changed * Sync legacy_py.rs with upstream PyPI warehouse legacy.py ([#3053](https://github.com/PyO3/maturin/pull/3053)) * Keep cargo build artifact at original path after staging ([#3054](https://github.com/PyO3/maturin/pull/3054)) **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.12.5...v1.12.6Low3/1/2026
v1.12.5## What's Changed * feat: include debug info files (.pdb, .dSYM, .dwp) in wheels by @messense in https://github.com/PyO3/maturin/pull/3024 * Fix wrong abi3 tag for conditional cargo features enabled pyo3 abi3 feature by @messense in https://github.com/PyO3/maturin/pull/3029 * fix: `maturin build --sdist` wheel name/layout for excluded workspace crates by @messense in https://github.com/PyO3/maturin/pull/3031 * fix: preserve wheel output dir when building from unpacked sdist by @messense in hLow2/28/2026
v1.12.4## What's Changed * Upgrade memmap2 version by @amy-kwan in https://github.com/PyO3/maturin/pull/3021 * fix: platform tag detection for Android targets by @thunder-coding in https://github.com/PyO3/maturin/pull/3023 * fix: only ignore maturin-generated native libraries on all platforms by @messense in https://github.com/PyO3/maturin/pull/3025 * fix: ignore develop artifacts for all binding types during build by @messense in https://github.com/PyO3/maturin/pull/3026 * feat: support conditional caLow2/21/2026
v1.12.3## What's Changed * docs(config): minor fixes by @mkniewallner in https://github.com/PyO3/maturin/pull/3008 * ci: set crt-static for riscv64 and loongarch64 musl targets by @messense in https://github.com/PyO3/maturin/pull/3009 * fix: support `maturin develop` on Windows ARM with x86 Python by @messense in https://github.com/PyO3/maturin/pull/3011 * fix: exclude `external_packages` bindings from uniffi wheels by @messense in https://github.com/PyO3/maturin/pull/3013 * Update cargo-zigbuild Low2/19/2026
v1.12.2## What's Changed * fix: allow absolute paths for `--sbom-include` by @messense in https://github.com/PyO3/maturin/pull/3004 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.12.1...v1.12.2Low2/16/2026
v1.12.1## What's Changed * Add `--sbom-include` CLI argument for additional SBOM files by @messense in https://github.com/PyO3/maturin/pull/2999 * fix: resolve include patterns relative to python-source for sdist and wheel by @messense in https://github.com/PyO3/maturin/pull/3000 * feat: support including `OUT_DIR` assets in wheel builds by @messense in https://github.com/PyO3/maturin/pull/3001 * add test case for uniffi with multiple crates by @davidhewitt in https://github.com/PyO3/maturin/pull/2839 Low2/16/2026
v1.12.0## What's Changed * Use pypi compatibility validation for own CI by @konstin in https://github.com/PyO3/maturin/pull/2929 * Update toml crates for toml 1.1 support by @konstin in https://github.com/PyO3/maturin/pull/2934 * Use a single location for MSRV by @konstin in https://github.com/PyO3/maturin/pull/2936 * Fix editable install for binary projects with Python modules by @messense in https://github.com/PyO3/maturin/pull/2938 * Release to crates.io only after the builds passed by @konstinLow2/14/2026
v1.11.5## 1.11.5 * Allow combining `--compatibility pypi` with other `--compatibility` values ([#2928](https://github.com/pyo3/maturin/pull/2928)) Low1/9/2026
v1.11.4## 1.11.4 * Support armv6l and armv7l in pypi compatibility ([#2926](https://github.com/pyo3/maturin/pull/2926)) * Improve the reliability of maturin's own CILow1/8/2026
v1.11.2## What's Changed **Important** `maturin upload` is deprecated and will be removed in maturin 2.0 (https://github.com/PyO3/maturin/issues/2334) * Release 1.11.2 by @konstin in https://github.com/PyO3/maturin/pull/2921 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.11.1...v1.11.2Low1/5/2026
v1.11.1# Release Notes **Important** `maturin upload` is deprecated and will be removed in maturin 2.0 (https://github.com/PyO3/maturin/issues/2334) * Fix compiled artifacts being excluded by source path matching ([#2910](https://github.com/pyo3/maturin/pull/2910)) * Better error reporting for missing interpreters ([#2918](https://github.com/pyo3/maturin/pull/2918)) * Ignore unreadable excluded directories ([#2916](https://github.com/pyo3/maturin/pull/2916))Low1/5/2026
v1.11.0**Important** `maturin upload` is deprecated and will be removed in maturin 2.0 (https://github.com/PyO3/maturin/issues/2334) This release was yanked from PyPI. ## What's Changed * Remove unused code by @e-nomem in https://github.com/PyO3/maturin/pull/2848 * Correct tagging for x86_64 iOS simulator wheels. by @freakboy3742 in https://github.com/PyO3/maturin/pull/2851 * Bump MSRV to 1.85.0 and use Rust 2024 edition by @messense in https://github.com/PyO3/maturin/pull/2850 * Upgrade goblLow12/30/2025
v1.10.2## What's Changed * Fix tagging for iOS x86_64 simulator wheels. * Set entry type when adding to the tar file. **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.10.1...v1.10.2Low11/19/2025
v1.10.1## What's Changed * static link liblzma by @messense in https://github.com/PyO3/maturin/pull/2847 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.10.0...v1.10.1Low11/11/2025
v1.10.0## What's Changed * Fix generated WHEEL Tag metadata to be spec compliant. by @jsirois in https://github.com/PyO3/maturin/pull/2762 * Export all Cargo URL metadata items to Python by @chrysn in https://github.com/PyO3/maturin/pull/2760 * Update maximum Python version to 3.14 by @messense in https://github.com/PyO3/maturin/pull/2763 * Remove shebang from non-executable __init__.py file by @musicinmybrain in https://github.com/PyO3/maturin/pull/2775 * Stop warning about missing `extension-modLow11/10/2025
v1.9.6## What's Changed * Trim platform details on Windows detection by @tonybaloney in https://github.com/PyO3/maturin/pull/2755 * [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/PyO3/maturin/pull/2745 * Bump actions/setup-python from 5 to 6 by @dependabot[bot] in https://github.com/PyO3/maturin/pull/2748 * Bump actions/setup-node from 4 to 5 by @dependabot[bot] in https://github.com/PyO3/maturin/pull/2749 * make `PythonInterpreter::check_executable` aware of wLow10/7/2025
v1.9.5## What's Changed * Bump tracing-subscriber from 0.3.19 to 0.3.20 by @dependabot[bot] in https://github.com/PyO3/maturin/pull/2728 * search_lib_dir: Only recurse into `build*` if it is a directory. by @xhochy in https://github.com/PyO3/maturin/pull/2734 * [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/PyO3/maturin/pull/2729 * Bump actions/checkout from 4 to 5 by @dependabot[bot] in https://github.com/PyO3/maturin/pull/2730 * Bump actions/attest-build-provLow10/4/2025
v1.9.4## What's Changed * downgrade manylinux version for riscv64 by @ffgan in https://github.com/PyO3/maturin/pull/2709 * Fix calculation of platform tag for FreeBSD by @michael-o in https://github.com/PyO3/maturin/pull/2711 * Add builtin sysconfigs for GraalPy by @msimacek in https://github.com/PyO3/maturin/pull/2716 * Add use-base-python option to pyproject.toml by @SquidDev in https://github.com/PyO3/maturin/pull/2717 * fix clippy warnings by @alex in https://github.com/PyO3/maturin/pull/27Low8/27/2025
v1.9.3## What's Changed * Add support for RISC-V architecture in manylinux and update compatibiโ€ฆ by @ffgan in https://github.com/PyO3/maturin/pull/2694 * pyproject.toml: bump setuptools for PEP 639 by @threexc in https://github.com/PyO3/maturin/pull/2698 * [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/PyO3/maturin/pull/2699 * Fix PEP 639 support for source distributions by @konstin in https://github.com/PyO3/maturin/pull/2704 * Fix relative README rewrite in sourceLow8/4/2025
v1.9.2## What's Changed * Respect PEP 621 dynamic fields when merging Cargo.toml metadata by @Copilot in https://github.com/PyO3/maturin/pull/2672 * Only use all_features=true in sdist when local path dependencies exist by @Copilot in https://github.com/PyO3/maturin/pull/2674 * auditwheel: add `manylinux_2_26` policy by @github-actions[bot] in https://github.com/PyO3/maturin/pull/2677 * Use user-specified library search paths in `RUSTFLAGS` in auditwheel by @Copilot in https://github.com/PyO3/matuLow7/27/2025
v1.9.1## What's Changed * Fix absolute license file path from `Cargo.toml` by @messense in https://github.com/PyO3/maturin/pull/2667 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.9.0...v1.9.1Low7/8/2025
v1.9.0## What's Changed * Update pyproject-toml to 0.13.5 by @konstin in https://github.com/PyO3/maturin/pull/2645 * Fix clippy lints by @konstin in https://github.com/PyO3/maturin/pull/2648 * `ZipWriter` requires a compression level of `None` for the `stored` method by @jatoben in https://github.com/PyO3/maturin/pull/2644 * Implement PEP 639 Support by @konstin in https://github.com/PyO3/maturin/pull/2647 * Don't go through Display for platform tag to policy by @konstin in https://github.com/PLow6/23/2025
v1.8.7## What's Changed * Note Homebrew installation conflicts with rustup by @matthewhaynesonline in https://github.com/PyO3/maturin/pull/2605 * Trim package description by @Tpt in https://github.com/PyO3/maturin/pull/2610 * Docs: Update rust-as-submodule instructions by @NMertsch in https://github.com/PyO3/maturin/pull/2613 * bootstrap: fix overriden setuptools PEP 517 hooks by @gotmax23 in https://github.com/PyO3/maturin/pull/2612 * Upgrade cbindgen to 0.29 by @youknowone in https://github.cLow6/9/2025
v1.8.6## What's Changed * Fix bindings detection docs by @konstin in https://github.com/PyO3/maturin/pull/2592 * Print a message when overriding platform tag from `_PYTHON_HOST_PLATFORM` by @messense in https://github.com/PyO3/maturin/pull/2594 * fixes #1894 -- when the abi3 feature is set with no explicit version, use the current python interpreter's version by @alex in https://github.com/PyO3/maturin/pull/2597 ## New Contributors * @alex made their first contribution in https://github.com/PLow5/13/2025
v1.8.5## What's Changed * Readme touchups by @konstin in https://github.com/PyO3/maturin/pull/2588 * Remove Readme CI badges by @konstin in https://github.com/PyO3/maturin/pull/2587 * Type target triple to fix regression. by @konstin in https://github.com/PyO3/maturin/pull/2589 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.8.4...v1.8.5Low5/9/2025
v1.8.3## What's Changed * Fix cargo run uniffi-bindgen when cross compiling by @messense in https://github.com/PyO3/maturin/pull/2476 * Use `emcc.bat` to query version on Windows by @messense in https://github.com/PyO3/maturin/pull/2478 * Add `rnet` python library to examples by @0x676e67 in https://github.com/PyO3/maturin/pull/2480 * bump the attest-build-provenance version in the generated ci file by @kemingy in https://github.com/PyO3/maturin/pull/2484 * Fix platform tag on Solaris/Illumos by Low3/13/2025
v1.8.2## What's Changed * Update manylinux/musllinux policies to the latest main by @github-actions in https://github.com/PyO3/maturin/pull/2424 * ci: don't enable sccache on tag refs by @woodruffw in https://github.com/PyO3/maturin/pull/2429 * Exclude packages not in the dependency tree when finding bindings by @mhils in https://github.com/PyO3/maturin/pull/2426 * Use `uv` automatically when running `maturin develop` inside a uv-created venv by @messense in https://github.com/PyO3/maturin/pull/24Low2/5/2025
v1.8.1## What's Changed * Update minimal manylinux version for riscv64 by @messense in https://github.com/PyO3/maturin/pull/2415 * Make invalid version info in `pyproject.toml` less fatal by @mhils in https://github.com/PyO3/maturin/pull/2417 * Make `maturin develop` fail if version info is missing in `pyproject.toml` by @mhils in https://github.com/PyO3/maturin/pull/2418 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.8.0...v1.8.1Low12/30/2024
v1.8.0## What's Changed * Don't add wheel data to sdist by @messense in https://github.com/PyO3/maturin/pull/2367 * Bump pyo3 to 0.23.3 by @messense in https://github.com/PyO3/maturin/pull/2371 * Switch from `wasm32-wasi` to `wasm32-wasip1` by @messense in https://github.com/PyO3/maturin/pull/2372 * Use `uv venv` in tests by @messense in https://github.com/PyO3/maturin/pull/2087 * upgrade packages to resolve security advisory by @mbway in https://github.com/PyO3/maturin/pull/2376 * update and imLow12/25/2024
v1.7.8## What's Changed * Fix aarch64 Windows cross compilation by @messense in https://github.com/PyO3/maturin/pull/2359 * Release 1.7.8 by @davidhewitt in https://github.com/PyO3/maturin/pull/2365 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.7.7...v1.7.8Low12/4/2024
v1.7.8-beta.1## What's Changed * [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/PyO3/maturin/pull/2357 * Fix aarch64 Windows cross compilation by @messense in https://github.com/PyO3/maturin/pull/2359 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.7.7...v1.7.8-beta.1Low12/3/2024
v1.7.7## What's Changed * fix abi3 interpreter discovery on Windows by @davidhewitt in https://github.com/PyO3/maturin/pull/2333 * fix: remove extra indent in generated CI by @jsstevenson in https://github.com/PyO3/maturin/pull/2340 * Upgrade cargo-xwin to unify rustls versions by @kornelski in https://github.com/PyO3/maturin/pull/2222 * Normalize python source directory path by @messense in https://github.com/PyO3/maturin/pull/2343 * Enable fat LTO for maturin release workflow by @messense in htLow12/2/2024
v1.7.7-beta.1## What's Changed * fix abi3 interpreter discovery on Windows by @davidhewitt in https://github.com/PyO3/maturin/pull/2333 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.7.6...v1.7.7-beta.1Low11/29/2024
v1.7.6## What's Changed * allow `-i 3.13t` by @davidhewitt in https://github.com/PyO3/maturin/pull/2324 * propagate abiflags to wheel name on Windows by @davidhewitt in https://github.com/PyO3/maturin/pull/2325 * Add free-threaded wheel build to generate-ci by default by @messense in https://github.com/PyO3/maturin/pull/2329 * Bump metadata version to 2.4 to fix license bug by @konstin in https://github.com/PyO3/maturin/pull/2332 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.7.5...vLow11/28/2024
v1.7.6-beta.1## What's Changed * allow `-i 3.13t` by @davidhewitt in https://github.com/PyO3/maturin/pull/2324 * propagate abiflags to wheel name on Windows by @davidhewitt in https://github.com/PyO3/maturin/pull/2325 * Add free-threaded wheel build to generate-ci by default by @messense in https://github.com/PyO3/maturin/pull/2329 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.7.5...v1.7.6-beta.1Low11/28/2024
v1.7.5## What's Changed * Auto detect Python 3.13 by @messense in https://github.com/PyO3/maturin/pull/2248 * feat: add skip attestation option to maturin ci github by @moldhouse in https://github.com/PyO3/maturin/pull/2254 * generate-ci: use macos-13 runner for x86_64 build job by @messense in https://github.com/PyO3/maturin/pull/2255 * Improve wheel reproducibility by sorting libs by @ycongal-smile in https://github.com/PyO3/maturin/pull/2261 * Fix inverted workspace inclusions by @konstin inLow11/26/2024
v1.7.4## What's Changed * Fix musllinux rpath for non-cffi bindings by @messense in https://github.com/PyO3/maturin/pull/2233 * Add GitHub Actions attestation support to generate-ci by @messense in https://github.com/PyO3/maturin/pull/2234 ## New Contributors * @mhammerly made their first contribution in https://github.com/PyO3/maturin/pull/2231 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.7.3...v1.7.4Low9/26/2024
v1.7.3## What's Changed * Fix pypi/testpypi upload by @messense in https://github.com/PyO3/maturin/pull/2229 **Full Changelog**: https://github.com/PyO3/maturin/compare/v1.7.2...v1.7.3Low9/25/2024
v1.7.2## What's Changed * Split out test-windows-cross to speed up ci by @konstin in https://github.com/PyO3/maturin/pull/2188 * Delete spam/malware comments automatically by @messense in https://github.com/PyO3/maturin/pull/2199 * [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/PyO3/maturin/pull/2197 * Upgrade cargo-deny by @messense in https://github.com/PyO3/maturin/pull/2200 * Cross building fixes by @vesajaaskelainen in https://github.com/PyO3/maturin/pull/2204 * NorLow9/24/2024
v1.7.1## What's Changed * Update clap_complete_command to v0.6.1 by @nihaals in https://github.com/PyO3/maturin/pull/2144 * Fix platform tags when cross-compiling universal2 by @tuxu in https://github.com/PyO3/maturin/pull/2153 * Fix Typo in Migration Guide by @rdghosal in https://github.com/PyO3/maturin/pull/2162 * Fix rust 1.80 clippy errors by @jameshilliard in https://github.com/PyO3/maturin/pull/2164 * Don't check .gitignore files in parent directories by @jameshilliard in https://github.cLow8/21/2024
v1.7.0## What's Changed * Expose env variable to suppress build backend warning by @fsimkovic in https://github.com/PyO3/maturin/pull/2099 * Canonicalize base executable path in PEP 517 build by @messense in https://github.com/PyO3/maturin/pull/2100 * Initial iOS support by @FeodorFitsner in https://github.com/PyO3/maturin/pull/2102 * Remove old import hook by @mbway in https://github.com/PyO3/maturin/pull/2105 * Bump MSRV to 1.74.0 by @messense in https://github.com/PyO3/maturin/pull/2108 * UpLow7/7/2024
v1.6.0## What's Changed * Use virtual env for pytest in github actions by @Owen-CH-Leung in https://github.com/PyO3/maturin/pull/2004 * Add pypi name validation by @alonme in https://github.com/PyO3/maturin/pull/2007 * Add JSON schema generation by @JonathanPlasse in https://github.com/PyO3/maturin/pull/2005 * Detect compiling from Linux gnu to Linux musl as cross compiling by @messense in https://github.com/PyO3/maturin/pull/2010 * generate-ci: add musllinux support by @messense in https://githuLow6/4/2024
v1.5.1## What's Changed * fix changelog link by @asottile-sentry in https://github.com/PyO3/maturin/pull/1990 * in pep517 build default compatibility to off instead of always specifying by @altendky in https://github.com/PyO3/maturin/pull/1992 * Fix typo on maturin docs by @shehab-as in https://github.com/PyO3/maturin/pull/1997 * Add MacOS m1 Runner & move target aarch64 to this runner by @Owen-CH-Leung in https://github.com/PyO3/maturin/pull/2001 * Fix upload returning `malformed summary` errorLow3/21/2024
v1.5.0## What's Changed * tutorial: fix abi to match comment by @skshetry in https://github.com/PyO3/maturin/pull/1876 * Allow identical `VIRTUAL_ENV` and `CONDA_PREFIX` env vars by @konstin in https://github.com/PyO3/maturin/pull/1879 * Upgrade pyo3 to 0.20 by @messense in https://github.com/PyO3/maturin/pull/1881 * Skip PyPy tests on Windows for now by @messense in https://github.com/PyO3/maturin/pull/1885 * Bump generated github actions workflow to v4 of up/download-artifact actions by @chrjabLow3/5/2024
v1.4.0## What's Changed * Fix two tiny typos in README.md! by @JackKelly in https://github.com/PyO3/maturin/pull/1853 * Bump MSRV to 1.67 by @messense in https://github.com/PyO3/maturin/pull/1847 * Tiny tweak: Use Rust markdown block by @JackKelly in https://github.com/PyO3/maturin/pull/1855 * Recommend using pipx to install maturin by @messense in https://github.com/PyO3/maturin/pull/1859 * [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/PyO3/maturin/pull/1860 * Fix macOLow12/2/2023
v1.3.2## What's Changed * Switch to Ruff formatter by @messense in https://github.com/PyO3/maturin/pull/1817 * Upgrade ring to 0.17 by @messense in https://github.com/PyO3/maturin/pull/1819 * Un-deprecate `MATURIN_PEP517_ARGS` env var by @messense in https://github.com/PyO3/maturin/pull/1820 * Add support for uniffi library mode by @messense in https://github.com/PyO3/maturin/pull/1729 * Fix missing member in Cargo.toml for sdist of nested workspace layout by @nreinicke in https://github.com/PyO3Low11/14/2023
v1.3.1## What's Changed * CI: Add Python 3.12 test jobs by @messense in https://github.com/PyO3/maturin/pull/1276 * Use external `uniffi-bindgen` if no root package is configured by @badboy in https://github.com/PyO3/maturin/pull/1797 * Stop testing Python 3.7 on CI by @messense in https://github.com/PyO3/maturin/pull/1799 * Add trusted publishing section to the user guide by @Phil-V in https://github.com/PyO3/maturin/pull/1800 * Fix wheel filename for GraalPy by @msimacek in https://github.com/PLow10/24/2023
v1.3.0## What's Changed * Upgrade cargo-zigbuild to 0.17.1 by @messense in https://github.com/PyO3/maturin/pull/1740 * Bump rustls-webpki from 0.100.1 to 0.100.2 by @dependabot in https://github.com/PyO3/maturin/pull/1743 * Upgrade cbindgen to 0.25.0 by @messense in https://github.com/PyO3/maturin/pull/1747 * Add chardetng-py to Examples section by @john-parton in https://github.com/PyO3/maturin/pull/1751 * Better cross-compilation interpreter error by @sauyon in https://github.com/PyO3/maturin/pLow10/2/2023

Dependencies & License Audit

Loading dependencies...

Similar Packages

jediAn autocompletion tool for Python that can be used for text editors.master@2026-10-25
mypyOptional static typing for Pythonmaster@2026-10-25
types-jinja2Typing stubs for Jinja2main@2026-10-25
pyhankoTools for stamping and signing PDF filesmaster@2026-10-25
flitA simple packaging tool for simple packages.main@2026-10-24

More from pypi

markitdownUtility tool for converting various files to Markdown
fastapiFastAPI framework, high performance, easy to learn, fast to code, ready for production
djangoA high-level Python web framework that encourages rapid development and clean, pragmatic design.
flaskA simple framework for building complex web applications.

More in Developer Tools

mypyOptional static typing for Python
jediAn autocompletion tool for Python that can be used for text editors.
types-jinja2Typing stubs for Jinja2
llxprt-codeAn open-source multi-provider AI assisted CLI development tool. Use whatever LLM you want to code in your terminal.