Repolode
pybind

pybind/pybind11

Biblioteca header-only de C++11 para exponer tipos y funciones de C++ a Python, principalmente para crear bindings de Python para código C++ existente.

Estrellas
18,028
Forks
2,331
Issues abiertos
716
Último commit
hace 13 horas

¿Qué es?

pybind11 es una biblioteca ligera y header-only para exponer tipos de C++ a Python y viceversa, principalmente para crear bindings de Python para código C++ existente. Sus objetivos y su sintaxis se parecen a los de Boost.Python, pero elimina la dependencia de Boost y se basa únicamente en la API de C de Python y la biblioteca estándar de C++, aprovechando las características de C++11 para inferir información de tipos en tiempo de compilación.

La biblioteca traduce construcciones habituales de C++ a Python: funciones que reciben y devuelven tipos personalizados por valor, referencia o puntero; clases con métodos y atributos; funciones sobrecargadas; excepciones; enums; callbacks; iteradores; herencia; contenedores STL; y std::shared_ptr. Las clases de C++ con métodos virtuales se pueden extender en Python, y se incluye integración con NumPy. Es compatible con CPython 3.9+, PyPy y GraalPy.

Como todo está contenido en unos pocos headers, los proyectos no necesitan bibliotecas adicionales para enlazar. El README también incluye ejemplos de empaquetado con setuptools, scikit-build y CMake.

Funciones clave

  • 01Es header-only, por lo que no hacen falta bibliotecas adicionales para enlazar
  • 02Traduce clases, sobrecargas, enums, excepciones y contenedores STL a Python
  • 03Permite extender en Python las clases de C++ con métodos virtuales
  • 04Incluye integración con NumPy y acceso al protocolo de buffer
  • 05Es compatible con CPython 3.9+, PyPy y GraalPy

Casos de uso

  • Envolver una biblioteca C++ existente para que el código Python pueda usarla
  • Exponer rutinas de C++ críticas para el rendimiento a scripts de Python
  • Pasar arrays de NumPy entre código C++ y Python sin copiarlos

Inicio rápido

  1. 1

    Empieza con el proyecto de ejemplo de Setuptools enlazado en el README

Antes de usarlo

  • Requiere un compilador compatible con C++11 y CPython 3.9 o posterior, PyPy o GraalPy.

Temas

Preguntas frecuentes

¿Qué es pybind11?
Biblioteca header-only de C++11 para exponer tipos y funciones de C++ a Python, principalmente para crear bindings de Python para código C++ existente. pybind11 es una biblioteca ligera y header-only para exponer tipos de C++ a Python y viceversa, principalmente para crear bindings de Python para código C++ existente. Sus objetivos y su sintaxis se parecen a los de Boost.Python, pero elimina la dependencia de Boost y se basa únicamente en la API de C de Python y la biblioteca estándar de C++, aprovechando las características de C++11 para inferir información de tipos en tiempo de compilación.
¿pybind11 es gratuito? ¿Qué licencia tiene?
pybind11 es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿pybind11 sigue mantenido?
Mantenimiento activo. El último commit de pybind11 fue el 24 oct 2026.
¿Para qué puedo usar pybind11?
Envolver una biblioteca C++ existente para que el código Python pueda usarla Exponer rutinas de C++ críticas para el rendimiento a scripts de Python Pasar arrays de NumPy entre código C++ y Python sin copiarlos
¿Cómo se instala pybind11?
Empieza con el proyecto de ejemplo de Setuptools enlazado en el README
¿Dónde consigo pybind11?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/pybind/pybind11

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados