À propos du projet
pybind11 est une bibliothèque C++ légère, uniquement composée d'en-têtes, qui permet une interopérabilité transparente entre C++ et Python. Elle est principalement utilisée pour créer des liaisons Python pour du code C++ existant, exposant les types C++ à Python et vice versa. Le projet a été créé comme une alternative plus petite et autonome à Boost.Python, évitant la lourde dépendance de Boost en s'appuyant sur les fonctionnalités C++11 telles que les tuples, les fonctions lambda et les templates variadiques.
La bibliothèque prend en charge le mappage d'un large éventail de fonctionnalités C++ vers Python, notamment les fonctions avec des structures de données personnalisées, les méthodes d'instance et statiques, les fonctions surchargées, les attributs, les exceptions, les énumérations, les callbacks, les itérateurs, les opérateurs personnalisés, l'héritage, les conteneurs STL, les pointeurs intelligents et l'extension de méthodes virtuelles depuis Python. Elle offre également un support intégré pour NumPy, la vectorisation automatique de fonctions sur les tableaux NumPy, l'exposition du protocole de tampon pour un transfert de données efficace, l'accès par tranche et la prise en charge du pickling pour les types C++.
pybind11 fonctionne avec CPython 3.9+, PyPy3 et GraalPy via une interface indépendante de l'implémentation. La bibliothèque se compose de seulement quelques fichiers d'en-tête et ne nécessite pas de liaison avec des bibliothèques supplémentaires. La documentation est disponible sur pybind11.readthedocs.io, avec des exemples pour l'intégration avec setuptools, scikit-build et CMake. Le projet est distribué sous une licence de type BSD et est disponible sur PyPI et conda-forge.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.