PyO3/maturin

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

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 3 minutes ago
Added to GitGenius on September 11th, 2026
Created on July 21st, 2018
Open Issues & Pull Requests: 54 (+0)
GitHub issues: Enabled
Number of forks: 434
Total Stargazers: 5,790 (+0)
Total Subscribers: 34 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 11.1 hours
Mean response time: 48.9 days
90th percentile: 104.8 days
Tracked items: 332

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 65% of open issues come from outside the core team, a mix of external reports and the maintainers' own roadmap. Only 8% of issues opened in the past year have been closed. Three people close 90% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 37
New in 7 days: 1
Closed in 7 days: 1
Avg open age: 894 days
Stale 30+ days: 30
Stale 90+ days: 19

Recent activity

Opened in 7 days: 1
Closed in 7 days: 1
Comments in 7 days: 0
Events in 7 days: 1

Top labels

  • bug (121)
  • enhancement (51)
  • sdist (19)
  • good first issue (9)
  • upstream (8)
  • help wanted (7)
  • wheel (7)
  • bindings/uniffi (6)

Detailed Description

Maturin is a build tool that compiles Rust crates with Python bindings into wheels and publishes them to PyPI with minimal configuration.

The tool solves the problem of packaging Rust code as Python libraries by automating wheel building across multiple platforms and Python versions. It supports PyO3, CFFI, and Uniffi bindings, allowing developers to write performance-critical code in Rust while exposing it through Python APIs. Maturin handles the complexity of cross-compilation for Windows, Linux, macOS, and FreeBSD, supports Python 3.8 and later, and includes basic PyPy and GraalPy support. The approach requires no extra configuration files beyond a standard Cargo.toml, integrating seamlessly with existing Rust project structures.

Maturin suits developers building mixed Rust and Python projects who want to avoid the overhead of setuptools-rust configuration. It works well for packages that need performance optimization through Rust while maintaining a pure Python interface. The tool is particularly valuable when publishing to PyPI, as it handles the manylinux compliance requirements that would otherwise require Docker or additional tooling. Teams should choose it if they want a streamlined workflow from development through publication, with commands like `maturin develop` for fast iteration and `maturin build` for creating distributable wheels.

The project receives issue reports from both core maintainers and external users, indicating adoption beyond the core team without an overwhelming support burden. Maintainers typically respond to new issues and pull requests within a day. Work in the issue tracker centers on bugs, enhancements, and source distribution handling.