PyO3

    PyO3/pyo3

    Rust bindings for the Python interpreter

    backend
    binding
    ffi
    python
    python-c-api
    rust
    Rust
    Apache-2.0
    16.3K stars
    1.0K forks
    16.3K GitHub watchers
    Updated Nov 2, 2026
    View on GitHub

    Build with Backblaze B2

    SDKs, agent skills, IDE extensions, and reference pipelines from Backblaze Labs. All open source.

    Explore Backblaze Labs

    Loading star history...

    Where it stands

    Rank, growth pace and release cadence relative to everything GStars tracks.

    4 releases in the last 90 days, the latest 19 days ago, with 415 contributors on GitHub.

    Gained 13% fewer stars in the last 90 days than in the 90 days before.

    Use Cases & Benefits

    • Provides Rust bindings for the Python interpreter enabling creation of native Python modules and embedding Python in Rust binaries.
    • Offers seamless interoperability between Rust and Python with minimal configuration and support for multiple Python distributions.
    • Use for building high-performance Python extension modules in Rust to accelerate computationally intensive tasks.
    • Use for embedding Python interpreters within Rust applications to leverage Python libraries and scripting capabilities.
    • Use for developing cross-language tools that require tight integration between Rust's safety and Python's flexibility.

    Should you depend on it?

    License terms, project hygiene and risks, from GitHub metadata and GStars' snapshots.

    License

    Apache 2.0

    Permissive: commercial use, modification and redistribution are allowed with attribution; includes an explicit patent grant from contributors.

    Community files

    • README: present
    • Contributing guide: present
    • Code of conduct: present

    Watch-outs

    No watch-outs from GStars' checks.

    General guidance from repository metadata, not legal advice. How we score

    From the README

    Rust bindings for Python, including tools for creating native Python extension modules. Running and interacting with Python code from a Rust binary is also supported.

    Requires Rust 1.74 or greater.

    PyO3 supports the following Python distributions:

    You can use PyO3 to write a native Python module in Rust, or to embed Python in a Rust binary. The following sections explain each of these in turn.

    PyO3 can be used to generate a native Python module. The easiest way to try this out for the first time is to use maturin. maturin is a tool for building and publishing Rust-based Python packages with minimal configuration. The following steps install maturin, use it to generate and build a new Python package, and then launch Python to import and execute a function from the package.

    Excerpt from the PyO3/pyo3 README on GitHub (Apache-2.0 license). © its authors.Read the full README on GitHub

    Daily snapshots

    Stars gained per day, and how forks and open issues moved, from GStars' daily snapshots

    Forks

    1.0K+46

    Open issues

    411+7

    Compared with peers in Backend

    Fastest-growing repositories GStars tracks in this cohort for the week of Nov 1, by 7-day star growth

    PyO3/pyo3 compared with Backend repositories by stars, 7-day star growth, health score and last release
    RepositoryStars+7dHealthLast release
    anthropics/skills187.8K+2.9K15—
    DuarteSantos8/openGym19.7K+2.4K602 days ago
    shiyu-coder/Kronos47.0K+2.3K16—
    NationalSecurityAgency/ghidra98.2K+2.3K6414 days ago
    microsoft/VibeVoice56.0K+1.1K29—
    PyO3/pyo316.3K—6419 days ago
    Category median56.0K+2.3K29—

    Also by PyO3

    Other repositories from this maintainer that GStars tracks

    Discover Repositories

    Search across tracked repositories by name or description