NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1659 most downloaded on PyPI
Setuptools Rust extension plugin
Last release 3 months ago
27 Jun 2026
Ships fairly regularly
a new release about every 4 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
66 releases · first in 2017
target: add -Zunstable-options when querying cfg by @DeepeshWR in #587
Full Changelog: v1.12.1...v1.13.0
generated-files option to RustExtension to copy files from the build script output directory to the wheel. #574-Zunstable-options when querying rustc for information about custom JSON targets. #587One column per quarter.
Isolate universal2 artifact-combination logic by @jakelishman in #572
universal2 artifact-combination logic by @jakelishman in #572Full Changelog: v1.12.0...v1.12.1
Set PYO3_BUILD_EXTENSION_MODULE environment variable when building PyO3 extensions. #540
Fix finding cargo artifacts when filenames are empty. #521
Drop support for Python 3.8. #479
Fix deprecation warning from use of wheel.bdist_wheel .
wheel.bdist_wheel.Fix regression in 1.10.0 where editable builds would be built in release mode
Deprecate --build-temp argument to build_rust command (it does nothing). #457
SETUPTOOLS_RUST_PEP517_USE_BASE_PYTHON environment variable to use the base interpreter path when running inside a virtual environment to avoid recompilation when switching between virtual environments. #429--build-temp argument to build_rust command (it does nothing). #457Deprecate py_limited_api option to RustExtension in favour of always using "auto" to configure this from bdist_wheel . #410
py_limited_api option to RustExtension in favour of always using "auto" to configure this from bdist_wheel. #410Fix regression in install_extension crashing since 1.8.0. #380
install_extension crashing since 1.8.0. #380Drop support for Python 3.7. #357
Remove direct imports from distutils. #336
distutils. #336py.typed when packaging to denote that setuptools-rust includes type hints. #338pyproject.toml configuration using [tool.setuptools-rust] options. #348plat_name handling in the case bdist_wheel.plat_name is set via configuration file (e.g., setup.cfg). #352Prefer passing --crate-type option to cargo if "toolchain >= 1.64". #322
Fix regression in dylib build artifacts not being found since 1.5.0. #290
Fix regression in get_lib_name crashing since 1.5.0. #280
Add support for extension modules built for wasm32-unknown-emscripten with Pyodide. #244
HOST_GNU_TYPE / BUILD_GNU_TYPE sysconfig variables. #269Fix crash when checking Rust version. #263
Exec binding RustExtension with script=True is deprecated in favor of RustBin. #248
setuptools version to 62.4. #222cargo_manifest_args to support locked, frozen and offline builds. #234RustBin for packaging binaries in scripts data directory. #248Exec binding RustExtension with script=True is deprecated in favor of RustBin. #248cargo metadata are now reported back to the user #254quiet option will now suppress output of cargo metadata. #256setuptools-rust will now match cargo behavior of not setting --target when the selected target is the rust host. #258native option of RustExtension. #258BLDSHARED has no flags, setuptools-rust won't crash anymore. #241Increase minimum setuptools version to 58. #222
Drop support for Python 3.6. #209
Removed dependency on tomli to simplify installation. #200
Fix regression from setuptools-rust 1.1.0 which broke builds for the x86_64-unknown-linux-musl target. #194
setuptools-rust 1.1.0 which broke builds for the x86_64-unknown-linux-musl target. #194--target command line option being unable to take a value. #195setuptools-rust 1.0.0 which broke builds on arm64 macos conda builds. #196setuptools-rust 1.1.0 which incorrectly converted library extension suffixes to the "abi3" suffix when py_limited_api was unspecified. #197Add support for cross-compiling using `cross`. #185
Remove test_rust command. (python setup.py test is deprecated.) #129
--target command line option for specifying target triple. #136"auto" setting for RustExtension.py_limited_api. #137tomli dependency. #174test_rust command. (python setup.py test is deprecated.) #129check_rust command. #131tomlgen_rust command to separate setuptools-rust-tomlgen package. #167Fix some files unexpectedly missing from sdist command output. #125
Bump minimum Python version to Python 3.6.
PYO3_PYTHON and PYTHON_SYS_EXECUTABLE environment variables if set. #96RUSTFLAGS when building. #103Respect CARGO_BUILD_TARGET environment variable if set. #90
Fix support for Python 3.5. #86
Fix tomlgen functionality on Windows. #78
Fix building on Linux distributions that use musl (e.g. Alpine) out of the box. #80
Fix support for namespace packages. #79
Nothing published for this version
Fix building for 32-bit Python on 64-bit Windows. #77
Fix compatibility with cffi. #68
Fix tomlgen_rust generating invalid Cargo.toml files.
tomlgen_rust generating invalid Cargo.toml files.tomlgen_rust setting wrong path in .cargo/config## Changes - Added license file #41
- Add html-py-ever example
html-py-ever examplepath in RustExtension now defaults to Cargo.toml
path in RustExtension now defaults to Cargo.tomlAdd rustc_flags and verbose as options
rustc_flags and verbose as optionsFix project description rendering on pypi
This release significantly improves performance
Fix build_rust crashing on Cargo.toml manifests without a name key in the [lib] section
build_rust crashing on Cargo.toml manifests without a name key in the [lib] sectionCargo.tomlRemove unicode_literals future as it does not exists in Python
distutils does not
support UnicodeFind inplace extensions and automatically generate Cargo.toml manifests \#29
Cargo.toml
manifests #29Improve compatibility of build_rust with build_ext #28
Ignore strip option when platform is win32 #26
Fix script generation for bdist_wheel
Fix script generation for executables
Added native parameter
Fix script generation for executables
Support multiple rust binaries #24
Generate console-script for Binding.Exec #22
Generate console-script for Binding.Exec #22
Do not run cargo check for sdist command #18
Remove extra python3 file extension for executables.
Allow to strip symbols from executable or dynamic library.
Allow to strip symbols from executable or dynamic library.
Use PyO3 0.2 for example
Allow to build executable and pack with python package.
Allow to build executable and pack with python package.
Use PyO3 0.1 for example.
check command respects optional option
check command respects optional option## Changes - Fix pypi source distribution
Add optional option to RustExtension #16
optional option to RustExtension #16Warning: This version on pypi is broken, please use 0.6.3+ instead.
Support CARGO_TARGET_DIR variable #14
CARGO_TARGET_DIR variable #14Add support for PyO3 project https://github.com/PyO3/PyO3
Add support for PyO3 project https://github.com/PyO3/PyO3
Add support for no-binding mode
Fixed unbound method type error #4
Added support for "cargo test"
Fixed unbound method type error #4
Added support for "cargo check"
Added "--qbuild" option for "build\_rust" command. Set "quiet" mode for all extensions.
Your coding agent can read these notes before it upgrades. Set up the MCP server →