Biblioteca rápida de logging para C++ com saída formatada, modo assíncrono e vários destinos, como arquivos rotativos, console e syslog.
pybind/pybind11
Biblioteca header-only para expor tipos e funções de C++ ao Python, principalmente para criar bindings Python para código C++ existente.
- Estrelas
- 18,028
- Forks
- 2,331
- Issues abertas
- 716
- Último commit
- há 11 horas
O que é?
pybind11 é uma biblioteca leve, header-only, para expor tipos de C++ ao Python e vice-versa, principalmente para criar bindings Python para código C++ existente. Seus objetivos e sua sintaxe lembram o Boost.Python, mas ela elimina a dependência do Boost e usa apenas a Python C API e a biblioteca padrão do C++, aproveitando recursos do C++11 para inferir informações de tipos em tempo de compilação.
A biblioteca mapeia construções comuns do C++ para o Python: funções que recebem e retornam tipos personalizados por valor, referência ou ponteiro; classes com métodos e atributos; funções sobrecarregadas; exceções; enums; callbacks; iteradores; herança; containers da STL; e std::shared_ptr. Classes C++ com métodos virtuais podem ser estendidas em Python, e a integração com NumPy já vem incluída. Há suporte a CPython 3.9+, PyPy e GraalPy.
Como tudo fica em poucos headers, os projetos não precisam vincular bibliotecas extras. O README também apresenta exemplos de empacotamento com setuptools, scikit-build e CMake.
Recursos principais
- 01Header-only, sem necessidade de vincular bibliotecas extras
- 02Mapeia classes, sobrecargas, enums, exceções e containers da STL para o Python
- 03Permite estender em Python classes C++ com métodos virtuais
- 04Suporte integrado a NumPy e acesso ao buffer protocol
- 05Compatível com CPython 3.9+, PyPy e GraalPy
Casos de uso
- Criar um wrapper para uma biblioteca C++ existente e permitir que o código Python a utilize
- Disponibilizar rotinas C++ críticas para o desempenho a scripts Python
- Passar arrays NumPy entre código C++ e Python sem copiá-los
Início rápido
- 1
Comece pelo projeto de exemplo do Setuptools vinculado no README
Antes de usar
- Requer um compilador compatível com C++11 e CPython 3.9 ou superior, PyPy ou GraalPy.
Tópicos
Perguntas frequentes
- O que é pybind11?
- Biblioteca header-only para expor tipos e funções de C++ ao Python, principalmente para criar bindings Python para código C++ existente. pybind11 é uma biblioteca leve, header-only, para expor tipos de C++ ao Python e vice-versa, principalmente para criar bindings Python para código C++ existente. Seus objetivos e sua sintaxe lembram o Boost.Python, mas ela elimina a dependência do Boost e usa apenas a Python C API e a biblioteca padrão do C++, aproveitando recursos do C++11 para inferir informações de tipos em tempo de compilação.
- pybind11 é gratuito? Qual é a licença?
- pybind11 é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
- pybind11 ainda é mantido?
- Manutenção ativa. O último commit de pybind11 foi em 24 de out. de 2026.
- Para que posso usar pybind11?
- Criar um wrapper para uma biblioteca C++ existente e permitir que o código Python a utilize Disponibilizar rotinas C++ críticas para o desempenho a scripts Python Passar arrays NumPy entre código C++ e Python sem copiá-los
- Como instalar pybind11?
- Comece pelo projeto de exemplo do Setuptools vinculado no README
- Onde consigo pybind11?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/pybind/pybind11
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Uma biblioteca C++11 em um único header para criar servidores e clientes HTTP/HTTPS com I/O de socket bloqueante.
Biblioteca C++ header-only para parsing rápido e exato de valores float, double e inteiros a partir de strings, com uma implementação substituta de from_chars.
Biblioteca C++11 header-only que permite analisar, criar, manipular e serializar JSON em C++ com uma sintaxe semelhante à da STL.
Uma biblioteca de formatação para C++ que oferece uma alternativa rápida e segura quanto aos tipos a C stdio e iostreams, implementando std::format do C++20.
Livro e site gratuitos e de código aberto que apresentam recursos do C++11 ao C++26, organizados por tópico.