{"id":13499511,"url":"https://github.com/OpenMined/SyMPC","last_synced_at":"2025-03-29T05:31:40.197Z","repository":{"id":37218239,"uuid":"312573123","full_name":"OpenMined/SyMPC","owner":"OpenMined","description":"A SMPC companion library for Syft","archived":false,"fork":false,"pushed_at":"2024-08-13T02:31:49.000Z","size":1298,"stargazers_count":96,"open_issues_count":180,"forks_count":39,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-08-13T03:58:18.000Z","etag":null,"topics":["cryptography","machine-learning","mpc","privacy","python","torch"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenMined.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":"SUPPORTED_OPS.rst","governance":null,"roadmap":null,"authors":"AUTHORS.rst","dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"openmined","open_collective":"openmined"}},"created_at":"2020-11-13T12:44:46.000Z","updated_at":"2024-08-12T12:16:26.000Z","dependencies_parsed_at":"2024-05-21T13:36:42.588Z","dependency_job_id":"e7829ca2-10c6-445a-ad08-f6ce23141650","html_url":"https://github.com/OpenMined/SyMPC","commit_stats":{"total_commits":178,"total_committers":20,"mean_commits":8.9,"dds":0.6797752808988764,"last_synced_commit":"91cf991d64bd5be8e3757e1f41ac7c3d57312817"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenMined%2FSyMPC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenMined%2FSyMPC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenMined%2FSyMPC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenMined%2FSyMPC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenMined","download_url":"https://codeload.github.com/OpenMined/SyMPC/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222465380,"owners_count":16989000,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cryptography","machine-learning","mpc","privacy","python","torch"],"created_at":"2024-07-31T22:00:33.918Z","updated_at":"2024-10-31T18:30:41.014Z","avatar_url":"https://github.com/OpenMined.png","language":"Python","funding_links":["https://github.com/sponsors/openmined","https://opencollective.com/openmined"],"categories":["Securing AI SaaS","Defense \u0026 Security Controls"],"sub_categories":["Defensive Tools and Frameworks","Privacy \u0026 Confidential Computing"],"readme":".. raw:: html\n\n    \u003ch1 align=\"center\"\u003e\n    \u003cbr\u003e\n    \u003ca href=\"http://duet.openmined.org/\"\u003e\u003cimg src=\"https://github.com/OpenMined/design-assets/raw/master/logos/OM/mark-primary-trans.png\" alt=\"SyMPC\" width=\"200\"\u003e\u003c/a\u003e\n    \u003cbr\u003e\n    SyMPC\n    \u003c/h1\u003e\n    \u003ch4 align=\"center\"\u003e\n    A library that extends PySyft with SMPC support\n    \u003cbr\u003e\n    \u003cbr\u003e\n    \u003c/h4\u003e\n\n    \u003ca href=\"\"\u003e\u003cimg src=\"https://github.com/OpenMined/SyMPC/actions/workflows/tests.yml/badge.svg\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://openmined.slack.com/messages/support\"\u003e\u003cimg src=\"https://img.shields.io/badge/chat-on%20slack-7A5979.svg\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://codecov.io/gh/OpenMined/SyMPC\"\u003e\u003cimg src=\"https://codecov.io/gh/OpenMined/SyMPC/branch/main/graph/badge.svg?token=TS2rZyJRlo\" /\u003e\u003c/a\u003e\n\n\nSyMPC **/ˈsɪmpəθi/** is a library which extends `PySyft \u003chttps://github.com/OpenMined/PySyft\u003e`_ ≥0.3 with SMPC support. It allows computing over encrypted data, and to train and evaluate neural networks.\n\n\nInstallation\n############\n\nSyMPC is a companion library for PySyft. Therefore, we will need to install PySyft among other dependencies. We recommend using a virtual environment like `conda`.\n\n.. code:: bash\n\n    $ conda create -n sympc python=3.9\n    $ conda activate sympc\n    $ pip install -r requirements.txt\n    $ pip install .\n\nYou can also run SyMPC using docker by running the following commands. \n\n.. code:: bash\n    \n    $ docker build -t sympc -f docker-images/Dockerfile .  #builds image named sympc\n    $ docker run -i -t sympc  #runs the container \n\n\nGetting Started\n###############\n\nIf we want to start learning how to use SyMPC we can go to the *examples* folder and execute the *introduction.ipynb*.\n\n.. code:: bash\n    \n    $ conda activate sympc\n    $ pip install jupyter\n    $ jupyter notebook examples/introduction.ipynb\n\nIf we decided to use docker, we would need to run the image and publish the jupyter notebook port\n\n.. code:: bash\n    \n    $ sudo docker run -i -t -p 8888:8888 sympc\n    $ jupyter notebook examples/introduction.ipynb --allow-root --ip=0.0.0.0\n\nFinally, we would need to copy the url shown in the docker to our browser.\n\n\nSupported protocols\n###################\n\nSyMPC supports the following protocols.\n\n.. table::\n\n    +--------------+------------------------+-----------------------+\n    | **Protocol** | **Security Guarantee** | **Number of Parties** |\n    +==============+========================+=======================+\n    | ABY3         | Semi-honest, Malicious |                     3 |\n    +--------------+------------------------+-----------------------+\n    | Falcon       | Semi-honest, Malicious |                     3 |\n    +--------------+------------------------+-----------------------+\n    | FSS          | Semi-honest            |                     2 |\n    +--------------+------------------------+-----------------------+\n    | SPDZ         | Semi-honest            |                    2+ |\n    +--------------+------------------------+-----------------------+\n\nWe can see other interesting information about the supported operations and Neural\nNetwork layers in `Supported operations and Neural Network layers \u003cSUPPORTED_OPS.rst\u003e`_.\n\n\nContributing\n############\n\nWe are open to collaboration! If you want to start contributing you only need to:\n\n1. Check the `contributing guidelines \u003chttps://github.com/OpenMined/SyMPC/blob/main/CONTRIBUTING.md\u003e`_.\n2. Search for an issue in which you would like to work. Issues for newcomers are labeled with **good first issue**.\n3. Create a PR solving the issue.\n\n\nLicense\n#######\n\nThis project is licensed under the `MIT License \u003chttps://github.com/OpenMined/SyMPC/blob/main/LICENSE.txt\u003e`_.\n\n\nDisclaimer\n##########\n\nThis library should not be used in a production environment because it is still a prototype.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOpenMined%2FSyMPC","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FOpenMined%2FSyMPC","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOpenMined%2FSyMPC/lists"}