danpf
released this
18 Dec 15:07
Add Python pybind11 bindings + Upgrade ci/cd
This PR adds python bindings as well as updates the backend build
process of the mmtf-cpp library significantly. These improvements are
mainly from a convenience perspective and include:
- Removing all build-based submodules
- Moving to cmake fetchcontent build
- Simplify CMakeLists with better linking procedures
- Upgrade msgpack-c
- Upgrade catch2
- Move to github actions for ci/cd
- Use cibuildwheel for wheel cd
Pybind11 library:
The pybind11 library utilizes the c++ code of mmtf-cpp in order to build
an extremely fast cpp layer underneath the python interface. You have
to keep in mind that moving between c++ and python is slow, but this is
still much faster than the previously existing python library. see this
example:
time to load a single mmtf file 1000x
cpp bare 0.29s
this library 0.44s
python og 4.34s