Abstract
Bindee is a clang tool that outputs a simple pybind11 template given a C++ file for efficient generation of C++-Python bindings.
Bindee is intended to be a helper tool for minimizing initial user effort and
safeguarding against common runtime errors.
Bindee relies on two open-source software to produce bindings.
Clang's LibTooling enables bindee to traverse a C++ file's AST to pick out bindable variables and functions, or "bindees."
PyBind11 is templated, header-only library for generating C++-Python bindings for variables and functions.
Operating purely in C++, bindee does not require learning any new API for accomplishing its task.
Additionally, picking the correct pybind11 API for a given bindable element is handled without interaction from the user. Any user input is denoted by '@TEXT@' string substitution.
Bindee is capable of generating modular bindings for public class methods, public class variables, enumerations, and free functions and variables.
Bindings for templates are also supported.
For those familiar with pybind11, bindee does not handle trampolines, C++ extensions through lambdas, or custom type casters.
- Developers:
-
Kimkno, Jason [1]
- Lawrence Livermore National Lab. (LLNL), Livermore, CA (United States)
- Release Date:
- 2020-01-24
- Project Type:
- Open Source, Publicly Available Repository
- Software Type:
- Scientific
- Version:
- 2.0
- Licenses:
-
MIT License
- Sponsoring Org.:
-
USDOE National Nuclear Security Administration (NNSA)Primary Award/Contract Number:AC52-07NA27344
- Code ID:
- 34247
- Site Accession Number:
- 1007867
- Research Org.:
- Lawrence Livermore National Laboratory (LLNL), Livermore, CA (United States)
- Country of Origin:
- United States
Citation Formats
Kimkno, Jason S.
Bindee.
Computer Software.
https://github.com/llnl/bindee.
USDOE National Nuclear Security Administration (NNSA).
24 Jan. 2020.
Web.
doi:10.11578/dc.20200207.2.
Kimkno, Jason S.
(2020, January 24).
Bindee.
[Computer software].
https://github.com/llnl/bindee.
https://doi.org/10.11578/dc.20200207.2.
Kimkno, Jason S.
"Bindee." Computer software.
January 24, 2020.
https://github.com/llnl/bindee.
https://doi.org/10.11578/dc.20200207.2.
@misc{
doecode_34247,
title = {Bindee},
author = {Kimkno, Jason S.},
abstractNote = {Bindee is a clang tool that outputs a simple pybind11 template given a C++ file for efficient generation of C++-Python bindings.
Bindee is intended to be a helper tool for minimizing initial user effort and
safeguarding against common runtime errors.
Bindee relies on two open-source software to produce bindings.
Clang's LibTooling enables bindee to traverse a C++ file's AST to pick out bindable variables and functions, or "bindees."
PyBind11 is templated, header-only library for generating C++-Python bindings for variables and functions.
Operating purely in C++, bindee does not require learning any new API for accomplishing its task.
Additionally, picking the correct pybind11 API for a given bindable element is handled without interaction from the user. Any user input is denoted by '@TEXT@' string substitution.
Bindee is capable of generating modular bindings for public class methods, public class variables, enumerations, and free functions and variables.
Bindings for templates are also supported.
For those familiar with pybind11, bindee does not handle trampolines, C++ extensions through lambdas, or custom type casters.
},
doi = {10.11578/dc.20200207.2},
url = {https://doi.org/10.11578/dc.20200207.2},
howpublished = {[Computer Software] \url{https://doi.org/10.11578/dc.20200207.2}},
year = {2020},
month = {jan}
}