pybind/pybind11

Seamless operability between C++11 and Python

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 13 minutes ago
Added to GitGenius on September 3rd, 2026
Created on July 5th, 2015
Open Issues & Pull Requests: 728 (+0)
GitHub issues: Enabled
Number of forks: 2,323
Total Stargazers: 18,007 (+0)
Total Subscribers: 249 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 5.6 days
Mean response time: 252.4 days
90th percentile: 873.4 days
Tracked items: 223

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 96% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 4% of issues opened in the past year have been closed. Three people close 69% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 133
New in 7 days: 3
Closed in 7 days: 0
Avg open age: 1,123 days
Stale 30+ days: 124
Stale 90+ days: 119

Recent activity

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

Top labels

  • triage (173)
  • bug (17)
  • help wanted (9)
  • build system (3)
  • docs (3)
  • holders (3)
  • casters (2)
  • compiler issue (2)

Detailed Description

pybind11 is a header-only library that creates Python bindings for C++ code by exposing C++ types in Python and vice versa.

The library solves the problem of writing boilerplate-heavy Python extension modules for existing C++ codebases. It uses compile-time introspection to infer type information, allowing developers to declare bindings with minimal code. Unlike Boost.Python, which requires the entire Boost suite as a dependency, pybind11 is self-contained and leverages C++11 features like variadic templates and lambda functions to achieve a compact implementation of only around four thousand lines of core code. It depends solely on Python and the C++ standard library.

Teams should adopt pybind11 when they need to expose C++ functionality to Python without maintaining heavy dependencies or writing extensive wrapper code. The tool suits projects that already have a C++ codebase and want to provide Python interfaces, particularly those targeting performance-critical operations. It handles a broad range of C++ constructs including custom data structures, methods, overloaded functions, inheritance, STL containers, smart pointers, and virtual methods that can be overridden in Python. The library also provides integrated NumPy support for scientific computing workflows. It supports CPython, PyPy, and GraalPy implementations.

The project maintains a substantial base of real-world adopters, as evidenced by the fact that nearly all open issues originate from outside users rather than the core team. Responses to issues and pull requests typically arrive within one to two weeks. Development activity concentrates on bug fixes, build system improvements, and documentation work.