Biblioteca de logging rápida para C++ con salida formateada, modo asíncrono y varios destinos, como archivos rotativos, consola y syslog.
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
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
Biblioteca de C++11 en un solo archivo de cabecera para crear servidores y clientes HTTP/HTTPS con E/S de sockets bloqueante.
Biblioteca C++ de solo cabeceras para analizar rápidamente y con exactitud valores float, double y enteros a partir de cadenas; implementación de from_chars compatible como reemplazo directo.
Una biblioteca header-only para C++11 que permite analizar, crear, manipular y serializar JSON con una sintaxis similar a la de STL.
Una biblioteca de formato para C++ rápida y segura en cuanto a tipos, alternativa a C stdio e iostreams, que implementa std::format de C++20.
Libro y sitio web gratuitos y de código abierto que explican las características de C++ moderno, desde C++11 hasta C++26, organizadas por tema.