homenc / HElib

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.
https://homenc.github.io/HElib
Other
3.14k stars 765 forks source link

Add Python Bindings #356

Open youben11 opened 4 years ago

youben11 commented 4 years ago

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 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.