HElib is an open-source software library that implements homomorphic encryption. It supports the BGV scheme with bootstrapping and the Approximate Number CKKS scheme. HElib also includes optimizations for efficient homomorphic evaluation, focusing on effective use of ciphertext packing techniques and on the Gentry-Halevi-Smart optimizations.
Faster prototyping and integration with machine learning libraries often requires Python bindings. Instead of having separate repos implementing binding for different API versions, it would be useful for the community to have have them alongside the library for official and maintained bindings.
What needs to be done
I would suggest reorganizing the src directory into different directories for different languages (e.g. cpp and python) and manage build files and other dependencies separately. All bindings will need to access the src/cpp directory for building the native library.
Bindings for Python can be implemented in different ways. I personally like Pybind11 but someone might argue why it might not fit well this project. Combining with Github actions, we can also provide ready to use python package that can be installed via pip for different python versions and platforms.
Feature Request
Faster prototyping and integration with machine learning libraries often requires Python bindings. Instead of having separate repos implementing binding for different API versions, it would be useful for the community to have have them alongside the library for official and maintained bindings.
What needs to be done
I would suggest reorganizing the
src
directory into different directories for different languages (e.g.cpp
andpython
) and manage build files and other dependencies separately. All bindings will need to access thesrc/cpp
directory for building the native library.Bindings for Python can be implemented in different ways. I personally like Pybind11 but someone might argue why it might not fit well this project. Combining with Github actions, we can also provide ready to use python package that can be installed via
pip
for different python versions and platforms.