PyO3 maturin-action v1.36.0 Released: A Practical Guide to Automated Rust-Python Builds

maturin-action releases v1.36.0, refining the Rust-Python automated build toolchain
PyO3's GitHub Action tool maturin-action has released v1.36.0, upgrading the underlying maturin engine, enhancing ARM64 platform support, and optimizing build speed. The tool enables developers to easily perform cross-platform compilation, wheel packaging, and PyPI publishing for Rust-based Python extensions in CI/CD. Star projects like Polars, Pydantic v2, and Ruff all rely on this tech stack.
Overview
The PyO3 project's GitHub Action tool maturin-action recently released version v1.36.0. As a core build tool bridging the Rust and Python ecosystems, maturin-action enables developers to seamlessly automate the building and publishing of Rust-based Python extension packages within CI/CD pipelines.

What Is maturin-action?
Introduction to Maturin and the PyO3 Ecosystem
Maturin is a command-line tool specifically designed for building and publishing Python packages written in Rust, deeply integrated with PyO3 (the Rust-to-Python binding library).
Technical Background of PyO3: The CPython C extension API has traditionally been the path for Python performance extensions, but writing C extensions directly requires manual management of reference counting, the GIL, and memory safety—making it extremely error-prone. PyO3 leverages Rust's type system and ownership model to encapsulate these low-level details into safe, high-level abstractions, allowing developers to write Python extensions in near-native Rust while the compiler guarantees memory safety at compile time. This makes Rust the most engineering-safe language choice for writing high-performance Python extensions today.
PyO3 enables developers to write high-performance Python extension modules in Rust, while Maturin packages that Rust code into standard Python wheel format.
About Python Wheel Format: Python wheel (.whl) is a binary distribution format defined by PEP 427. It's essentially a ZIP archive containing pre-compiled binaries and metadata. Wheel filenames encode platform, Python version, and ABI information (e.g., polars-0.19.0-cp311-cp311-manylinux_2_17_x86_64.whl), eliminating the need for local compilation during pip installation and greatly improving user experience. One of maturin's core values is automatically generating cross-distribution compatible wheel packages conforming to manylinux, musllinux, and other specifications, giving end users an out-of-the-box experience.
maturin-action wraps this toolchain as a GitHub Actions plugin, enabling developers to accomplish the following in CI/CD environments with a single step:
- Cross-platform compilation of Rust-Python extensions (covering Linux, macOS, Windows)
- Automatic generation of PEP-compliant wheel packages
- Matrix builds across multiple Python versions and architectures
- Direct publishing to PyPI after build completion
Why maturin-action Deserves Attention
The Python community's pursuit of performance has driven numerous projects to rewrite critical modules in Rust. Star projects like Polars (high-performance data processing library), Pydantic v2 (data validation framework), and Ruff (ultra-fast Python linter) all use the PyO3 + Maturin tech stack. Every update to maturin-action means this toolchain becomes more stable and reliable.
v1.36.0 Release Highlights
This version follows the maturin core tool iteration, with key improvements including:
- Underlying maturin version upgrade: Integrates the latest maturin build engine, inheriting all upstream fixes and features
- Enhanced platform support: Improved compilation support for emerging architectures like ARM64
- Build speed optimization: Reduced CI pipeline execution time and resource consumption
- Runtime environment compatibility: Adapted to the latest GitHub Actions runner images
Practical Usage: Lowering the Barrier to Rust-Python Project Publishing
Cross-Platform Builds Are No Longer a Pain Point
When maintaining Rust-Python hybrid projects, cross-platform cross-compilation and packaging have historically been the biggest challenges.
manylinux Specification and Cross-Compilation Principles: Linux platform Python package distribution faces glibc version fragmentation issues. The manylinux specification introduced by PEP 513 ensures wheel packages run on mainstream Linux distributions by specifying a minimum glibc version (e.g., manylinux2014 corresponds to glibc 2.17). Internally, maturin-action uses Docker containers to simulate manylinux environments for builds and leverages QEMU for cross-compilation of non-x86 architectures like ARM64—this is the technical foundation enabling one-click multi-platform coverage, and also the most tedious aspect to configure manually.
maturin-action abstracts these complex workflows into a few lines of YAML configuration, freeing developers from manually handling toolchain installation and environment variable setup.
GitHub Actions Configuration Example
name: Build and publish
on:
release:
types: [published]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: PyO3/maturin-action@v1
with:
command: build
args: --release
This configuration achieves the following: when a GitHub Release is published, it automatically triggers the compilation build of the Rust-Python package.
Matrix Build Strategy: In real projects, GitHub Actions' matrix strategy allows developers to declare multi-dimensional parallel build tasks with a single configuration. For Rust-Python projects, typical matrix dimensions include: operating system (ubuntu/macos/windows), Python version (3.9~3.13), and CPU architecture (x86_64/aarch64). Combining three dimensions can produce dozens of parallel jobs, and maturin-action collects all build artifacts for unified upload to PyPI—the entire process requires no manual intervention and represents best practice for modern Python package publishing.
Conclusion
The continued vitality of the PyO3 ecosystem confirms Rust's growing momentum in the Python extension development space. As a stable iteration, maturin-action v1.36.0 further refines the Rust-Python automated build toolchain, providing more mature CI/CD infrastructure for development teams choosing Rust to boost Python application performance. If you're developing or planning to develop a Rust-Python hybrid project, upgrading to the latest version is a recommended practice.
Key Takeaways
- PyO3's maturin-action GitHub Action has been updated to v1.36.0
- maturin-action automates the building of Rust-based Python extension packages in CI/CD
- Well-known projects including Polars, Pydantic v2, and Ruff all use the PyO3+Maturin tech stack
- The tool supports cross-platform compilation and multi-Python-version matrix builds
- The Rust-Python hybrid development ecosystem continues to mature with an ever-improving toolchain
Related articles
TutorialsChatGPT Plus Subscription Guide: Are GPT-5.5, image-2, and Codex Worth the Upgrade?
A detailed look at ChatGPT Plus features — GPT-5.5, image-2, and Codex — with a Plus vs Pro comparison and a complete step-by-step subscription guide for users outside the US.
TutorialsHarness AI Engineering in Practice: Using Claude Code to Master Enterprise-Level E-Commerce Development
Deep dive into Harness AI Engineering: master enterprise e-commerce development with Claude Code using the Rules, Skills, Wiki, and Changes framework.
TutorialsCursor + Codex Dual-IDE Collaboration: A Practical Methodology for Open-Source Project Customization
A complete methodology for open-source project customization based on real-world experience, detailing the Cursor+Codex dual-IDE workflow, seven-stage process, MVP validation, and AI source code reading techniques.