Sobre o projeto
pybind11 é uma biblioteca C++ leve, somente de cabeçalhos, que permite interoperabilidade perfeita entre C++ e Python. Ela é usada principalmente para criar ligações Python de código C++ existente, expondo tipos C++ ao Python e vice-versa. O projeto foi criado como uma alternativa menor e autossuficiente ao Boost.Python, evitando a grande pegada de dependência do Boost ao contar com recursos do C++11, como tuplas, funções lambda e modelos variádicos.
A biblioteca suporta o mapeamento de uma ampla gama de recursos C++ para Python, incluindo funções com estruturas de dados personalizadas, métodos de instância e estáticos, funções sobrecarregadas, atributos, exceções, enumerações, callbacks, iteradores, operadores personalizados, herança, contêineres STL, ponteiros inteligentes e extensão de métodos virtuais a partir do Python. Ela também fornece suporte integrado ao NumPy, vetorização automática de funções sobre arrays NumPy, exposição do protocolo de buffer para transferência eficiente de dados, acesso baseado em fatias e suporte a pickle para tipos C++.
pybind11 funciona com CPython 3.9+, PyPy3 e GraalPy por meio de uma interface agnóstica de implementação. A biblioteca consiste em apenas alguns arquivos de cabeçalho e não requer vinculação a bibliotecas adicionais. A documentação está disponível em pybind11.readthedocs.io, com exemplos para integração com setuptools, scikit-build e CMake. O projeto é distribuído sob uma licença estilo BSD e está disponível no PyPI e no conda-forge.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.