NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #888 most downloaded on PyPI
Build and publish crates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages
Last release 1 months ago
24 Aug 2026
Ships fairly regularly
a new release about every 5 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
3 versions withdrawn
withdrawn after publishing
7 years old
184 releases · first in 2019
Nothing published for this version
Add 64-bit RISC-V support by felixonmars in #1001
python3 -m maturin in #1008features in pyproject.toml in #1014maturin develop in #1016cargo rustc --crate-type cdylib on Rust nightly/dev channel in #1020One column per quarter.
Breaking Change: Drop support for python 3.6, which is end of life in #945
maturin build command in #955, --no-sdist option is replaced by --sdistPATH in #964--cargo-extra-args and --rustc-extra-args options in #972. You can now pass all common cargo build arguments directly to maturin build--repository-url option in upload command no longer accepts plain repository name, full url required and -r short option moved to --repository in #987--target option to maturin list-python command in #957--find-interpreter option to build and publish commands to search for python interpreters in #964ARCHFLAGS for macOS to be compatible with cibuildwheel in #967maturin build command in #972wasm32-unknown-emscripten target in #974maturin develop for arm64 Python on M1 Mac when default toolchain is x86_64 in #980--repository option to maturin upload command in #987maturin b for maturin build and maturin dev for maturin develop subcommands in #994Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fix incompatibility with cibuildwheel for 32-bit Windows in #951
pip error messages to be utf-8 encoding in #953requires-python and bindings crate in #954PYO3_PYTHON env var for PyPy when abi3 is enabled in #960Fix Windows Store install detection in #949
Add support for building bin bindings wheels with multiple platform tags in #928
py -X.Y when pythonX.Y cannot be found on Windows in #943Nothing published for this version
Nothing published for this version
Don't consider compile to i686 on x86_64 Windows cross compiling in #923
Add Linux armv7l python sysconfig in #901
MATURIN_REPOSITORY_URL in #913MATURIN_USERNAME in #915generate-import-lib feature of pyo3 in #918cargo-xwin for cross compiling to Windows MSVC targets in #919Re-export __all__ for pure Rust projects in #886
Fix PyPy pep517 build when abi3 feature is enabled in #883
Stop setting PYO3_NO_PYTHON environment variable for pyo3 0.16.4 and later in #875
Migrate docker image to GitHub container registry in #845
.dist-info/license_files following PEP 639 in #862--interpreter option in #873python3.6 from ghcr.io/pyo3/maturin docker image.Package license files in .dist-info/license_files following PEP 639 in #837
.dist-info/license_files following PEP 639 in #837PYO3_NO_PYTHON hack for Windows in #848-r option as a short alias for --release in #854Add support for pyo3-ffi by ijl in #804
pyo3-ffi by ijl in #804musllinux_1_2 for musl target if it's not bin bindings in #808maturin build -i in #813, use maturin sdist instead.--zig in #817toml to tomllib / tomli by Contextualist in #821header.h in workspace target directory in #833Don't require pyproject.toml when cargo manifest is not specified in #806
pyproject.toml when cargo manifest is not specified in #806Add missing --version flag from clap 3.0 upgrade
--version flag from clap 3.0 upgradeAdd support for using `zig cc` as linker for easier cross compiling and manylinux compliance in #756
zig cc as linker for easier cross compiling and manylinux compliance in #756MATURIN_PEP517_ARGS env var in #786No such file or directory error when LD_LIBRARY_PATH contains non-existent paths in #794Add support for repairing cross compiled linux wheels in #754
Fix docs for new and init commands in maturin --help in #734
new and init commands in maturin --help in #734Cargo.lock to sdist when --locked or --frozen specified in #749Add a maturin init command as a companion to maturin new in #719
maturin init command as a companion to maturin new in #719password-storage feature in #725maturin develop command in #732Use platform tag from sysconfig.platform on non-portable Linux in #709
sysconfig.platform on non-portable Linux in #709cffi package dependency in #711MACOSX_DEPLOYMENT_TARGET env var in wheel platform tag in #716Add support for excluding files from wheels by .gitignore in #695
Add support for cross compiling PyPy wheels in #687
Add support for PEP 660 editable installs in #648
develop command to act identical to PEP 660 editable wheels in #653Fixed module documentation missing bug of pyo3 bindings in #639
Summary metadataAutodetect PyPy executables in #617
libz.so.1 to whitelisted libraries in #625maturin develop command in #633 and #634maturin develop command in #635manylinux/compatibility options is specified in pyproject.toml in #637Add path option for Python source in #584
Use UTF-8 encoding when reading pyproject.toml by domdfcoding in #588
Fix sdist error when VCS has uncommitted renamed files in #585
Add support for reading metadata from PEP 621 project table in pyproject.toml in #555
pyproject.toml in #555[package.metadata.maturin] table of Cargo.toml to this new [project] table of pyproject.toml--manylinux is now called --compatibility and supports musllinuxmy_project.my_project is now also importable (and equal to just my_project)Cargo.toml's authors field is now optional per Rust RFC 3052 in #573Cargo.toml by switch from toml_edit to toml crate in #577Fix corrupted macOS binary release in #547
Add manylinux_2_27 support in #521
manylinux_2_27 support in #521PyInit_<module_name> warning with Rust submodule in #528pyproject.toml missing maturin version constraint in #545Interpreter search now uses python 3.6 to 3.12 in #495
The upload command is now implemented, it is mostly similar to twine upload. #484
Fix --target being silently ignored
--target being silently ignoredFix a regression in 0.10.0 that would incorrectly assume we're building for musl instead of gnu by messense in #487
Change manylinux default version based on target arch by messense in #424
--skip-existing option to publish by messense #444manylinux_2_24 support in #451auditwheel Cargo feature.* Fix building a bin with musl
* CI failure
Error when the abi3 feature is selected but no minimum version
abi3 feature is selected but no minimum versionPYO3_CROSS_LIB_DIR for cross compiling with abi3 targeting windows.package.metadata.maturin.classifier is renamed to classifiers by kngwyu in #416Added support for building abi3 wheels with pyo3 0.13.1
--manylinux=[off|2010|2014] with manylinux2010 as default, and optionally --skip-auditwheel.project-url is now a toml dictionary instead of a toml list to conform to the standardcargo.exe if cargo was not foundtox is now supported due to a bugfix in the latest version of tox
[tool.maturin] now supports sdist-include = ["path/**/*"] to
include arbitrary files in source distributions (#296).0.12's PYO3_PYTHON environment variable. #331build_sdist hook. This fixes tox support from maturin's sidematurin develop are now visible to pip and can be uninstalled with pipPython 3.8 was added to PATH in the docker image by oconnor663 in #302
cffi is installed if it's missing and python is running inside a virtualenv.
There is now a binary wheel for aarch64
@ is not found in authors by evandrocoan in #290This release includes binary wheels for mac os
Added support from arm, specifically arm7l, aarch64 by ijl in #273
The setup.py installer for bootstrapping maturin now checks for cargo instead of failing with a complex error message.
Only --features, --no-default-features and --all-features in --cargo-extra-args are passed to cargo metadata when determining the bindings, fixing pro
--features, --no-default-features and --all-features in --cargo-extra-args are passed to cargo metadata when determining the bindings, fixing problems in the previous release with arguments supported by cargo build but by cargo metadata.Fix clippy error to fix publishing from ci
Your coding agent can read these notes before it upgrades. Set up the MCP server →