SyMPC /ˈsɪmpəθi/ is a library which extends PySyft ≥0.3 with SMPC support. It allows computing over encrypted data, and to train and evaluate neural networks.
SyMPC is a companion library for PySyft. Therefore, we will need to install PySyft among other dependencies. We recommend using a virtual environment like conda.
$ conda create -n sympc python=3.9
$ conda activate sympc
$ pip install -r requirements.txt
$ pip install .
You can also run SyMPC using docker by running the following commands.
$ docker build -t sympc -f docker-images/Dockerfile . #builds image named sympc
$ docker run -i -t sympc #runs the container
If we want to start learning how to use SyMPC we can go to the examples folder and execute the introduction.ipynb.
$ conda activate sympc
$ pip install jupyter
$ jupyter notebook examples/introduction.ipynb
If we decided to use docker, we would need to run the image and publish the jupyter notebook port
$ sudo docker run -i -t -p 8888:8888 sympc
$ jupyter notebook examples/introduction.ipynb --allow-root --ip=0.0.0.0
Finally, we would need to copy the url shown in the docker to our browser.
We are open to collaboration! If you want to start contributing you only need to:
- Check the contributing guidelines.
- Search for an issue in which you would like to work. Issues for newcomers are labeled with good first issue.
- Create a PR solving the issue.
This project is licensed under the MIT License.
This library should not be used in a production environment because it is still a prototype.