Metadata-Version: 2.1
Name: syft
Version: 0.8.7
Summary: Perform numpy-like analysis on data that remains in someone elses server
Home-page: https://openmined.github.io/PySyft/
Author: OpenMined
Author-email: info@openmined.org
License: Apache-2.0
Project-URL: Source, https://github.com/OpenMined/PySyft
Project-URL: Tracker, https://github.com/OpenMined/PySyft/issues
Platform: any
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Requires-Python: >=3.10
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
License-File: LICENSE
Requires-Dist: setuptools
Requires-Dist: bcrypt==4.1.2
Requires-Dist: boto3==1.34.56
Requires-Dist: forbiddenfruit==0.1.4
Requires-Dist: packaging>=23.0
Requires-Dist: pyarrow==15.0.0
Requires-Dist: pycapnp==2.0.0
Requires-Dist: pydantic[email]==2.6.0
Requires-Dist: pydantic-settings==2.2.1
Requires-Dist: pymongo==4.6.3
Requires-Dist: pynacl==1.5.0
Requires-Dist: pyzmq<=25.1.1,>=23.2.1
Requires-Dist: requests==2.32.3
Requires-Dist: RestrictedPython==7.0
Requires-Dist: result==0.16.1
Requires-Dist: tqdm==4.66.4
Requires-Dist: typeguard==4.1.5
Requires-Dist: typing_extensions==4.12.0
Requires-Dist: sherlock[filelock]==0.4.1
Requires-Dist: uvicorn[standard]==0.30.0
Requires-Dist: markdown==3.5.2
Requires-Dist: fastapi==0.111.0
Requires-Dist: psutil==6.0.0
Requires-Dist: itables==1.7.1
Requires-Dist: argon2-cffi==23.1.0
Requires-Dist: matplotlib<3.9.1,>=3.7.1
Requires-Dist: numpy<=1.24.4,>=1.23.5; python_version < "3.12"
Requires-Dist: numpy<1.27,>=1.26.4; python_version >= "3.12"
Requires-Dist: pandas==2.2.2
Requires-Dist: docker==7.1.0
Requires-Dist: kr8s==0.13.5
Requires-Dist: PyYAML==6.0.1
Requires-Dist: azure-storage-blob==12.19.1
Requires-Dist: ipywidgets==8.1.2
Requires-Dist: tomli==2.0.1
Requires-Dist: tomli_w==1.0.0
Requires-Dist: rich==13.7.1
Requires-Dist: jinja2==3.1.4
Requires-Dist: tenacity==8.3.0
Requires-Dist: nh3==0.2.17
Provides-Extra: data-science
Requires-Dist: transformers==4.41.2; extra == "data-science"
Requires-Dist: opendp==0.9.2; extra == "data-science"
Requires-Dist: evaluate==0.4.2; extra == "data-science"
Requires-Dist: recordlinkage==0.16; extra == "data-science"
Requires-Dist: torch==2.2.2; extra == "data-science"
Provides-Extra: dev
Requires-Dist: pytest<8; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: pytest-xdist[psutil]; extra == "dev"
Requires-Dist: pytest-parallel; extra == "dev"
Requires-Dist: pytest-randomly; extra == "dev"
Requires-Dist: pytest-sugar; extra == "dev"
Requires-Dist: pytest-lazy-fixture; extra == "dev"
Requires-Dist: pytest-rerunfailures; extra == "dev"
Requires-Dist: coverage; extra == "dev"
Requires-Dist: faker; extra == "dev"
Requires-Dist: distro; extra == "dev"
Requires-Dist: opentelemetry-api==1.14.0; extra == "dev"
Requires-Dist: opentelemetry-sdk==1.14.0; extra == "dev"
Requires-Dist: opentelemetry-exporter-jaeger==1.14.0; extra == "dev"
Requires-Dist: opentelemetry-instrumentation==0.35b0; extra == "dev"
Requires-Dist: opentelemetry-instrumentation-requests==0.35b0; extra == "dev"
Requires-Dist: bandit==1.7.8; extra == "dev"
Requires-Dist: debugpy==1.8.2; extra == "dev"
Requires-Dist: importlib-metadata==7.1.0; extra == "dev"
Requires-Dist: isort==5.13.2; extra == "dev"
Requires-Dist: mypy==1.10.0; extra == "dev"
Requires-Dist: pre-commit==3.7.1; extra == "dev"
Requires-Dist: ruff==0.4.7; extra == "dev"
Requires-Dist: safety>=2.4.0b2; extra == "dev"
Provides-Extra: telemetry
Requires-Dist: opentelemetry-api==1.14.0; extra == "telemetry"
Requires-Dist: opentelemetry-sdk==1.14.0; extra == "telemetry"
Requires-Dist: opentelemetry-exporter-jaeger==1.14.0; extra == "telemetry"
Requires-Dist: opentelemetry-instrumentation==0.35b0; extra == "telemetry"
Requires-Dist: opentelemetry-instrumentation-requests==0.35b0; extra == "telemetry"
Provides-Extra: test-plugins
Requires-Dist: pytest<8; extra == "test-plugins"
Requires-Dist: pytest-cov; extra == "test-plugins"
Requires-Dist: pytest-xdist[psutil]; extra == "test-plugins"
Requires-Dist: pytest-parallel; extra == "test-plugins"
Requires-Dist: pytest-randomly; extra == "test-plugins"
Requires-Dist: pytest-sugar; extra == "test-plugins"
Requires-Dist: pytest-lazy-fixture; extra == "test-plugins"
Requires-Dist: pytest-rerunfailures; extra == "test-plugins"
Requires-Dist: coverage; extra == "test-plugins"
Requires-Dist: faker; extra == "test-plugins"
Requires-Dist: distro; extra == "test-plugins"

<div align="left"> <a href="https://pypi.org/project/syft/"><img src="https://static.pepy.tech/badge/pysyft" /></a> <a href="https://pypi.org/project/syft/"><img src="https://badge.fury.io/py/syft.svg" /></a> <a href="https://hub.docker.com/u/openmined"><img src="https://img.shields.io/badge/docker-images-blue?logo=docker" /></a> <a href="https://github.com/OpenMined/PySyft/actions/workflows/nightlies.yml"><img src="https://github.com/OpenMined/PySyft/actions/workflows/nightlies.yml/badge.svg?branch=dev" /></a> <a href="https://slack.openmined.org/"><img src="https://img.shields.io/badge/chat-on%20slack-purple?logo=slack" /></a> <a href="https://openmined.github.io/PySyft/"><img src="https://img.shields.io/badge/read-docs-yellow?logo=mdbook" /></a>
<br /><br /></div>

<img alt="Syft Logo" src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/title_syft_light.png" width="200px" />

Perform data science on `data` that remains in `someone else's` server

# Quickstart

✅ `Linux` ✅ `macOS` ✅ `Windows` ✅ `Docker` ✅ `Kubernetes`

## Install Client

```bash
$ pip install -U syft[data_science]
```

## Launch Server

```python
# from Jupyter / Python
import syft as sy
sy.requires(">=0.8.7,<0.8.8")
server = sy.orchestra.launch(
    name="my-datasite",
    port=8080,
    create_producer=True,
    n_consumers=1,
    dev_mode=True,
    reset=True, # resets database
)
```

```bash
# or from the command line
$ syft launch --name=my-datasite --port=8080 --reset=True

Starting syft-datasite server on 0.0.0.0:8080
```

## Launch Client

```python
import syft as sy
sy.requires(">=0.8.6,<0.8.7")
datasite_client = sy.login(
    port=8080,
    email="info@openmined.org",
    password="changethis"
)
```

## PySyft in 10 minutes

📝 <a href="https://github.com/OpenMined/PySyft/tree/0.8.7/notebooks/api">API Example Notebooks</a>

- <a href="https://github.com/OpenMined/PySyft/tree/0.8.7/notebooks/api/0.8/00-load-data.ipynb">00-load-data.ipynb</a>
- <a href="https://github.com/OpenMined/PySyft/tree/0.8.7/notebooks/api/0.8/01-submit-code.ipynb">01-submit-code.ipynb</a>
- <a href="https://github.com/OpenMined/PySyft/tree/0.8.7/notebooks/api/0.8/02-review-code-and-approve.ipynb">02-review-code-and-approve.ipynb</a>
- <a href="https://github.com/OpenMined/PySyft/tree/0.8.7/notebooks/api/0.8/03-data-scientist-download-result.ipynb">03-data-scientist-download-result.ipynb</a>
- <a href="https://github.com/OpenMined/PySyft/tree/0.8.7/notebooks/api/0.8/04-pytorch-example.ipynb">04-pytorch-example.ipynb</a>
- <a href="https://github.com/OpenMined/PySyft/tree/0.8.7/notebooks/api/0.8/05-custom-policy.ipynb">05-custom-policy.ipynb</a>
- <a href="https://github.com/OpenMined/PySyft/tree/0.8.7/notebooks/api/0.8/06-multiple-code-requests.ipynb">06-multiple-code-requests.ipynb</a>
- <a href="https://github.com/OpenMined/PySyft/tree/0.8.7/notebooks/api/0.8/07-datasite-register-control-flow.ipynb">07-datasite-register-control-flow.ipynb</a>
- <a href="https://github.com/OpenMined/PySyft/tree/0.8.7/notebooks/api/0.8/08-code-version.ipynb">08-code-version.ipynb</a>
- <a href="https://github.com/OpenMined/PySyft/tree/0.8.7/notebooks/api/0.8/09-blob-storage.ipynb">09-blob-storage.ipynb</a>
- <a href="https://github.com/OpenMined/PySyft/tree/0.8.7/notebooks/api/0.8/10-container-images.ipynb">10-container-images.ipynb</a>
- <a href="https://github.com/OpenMined/PySyft/tree/0.8.7/notebooks/api/0.8/11-container-images-k8s.ipynb">11-container-images-k8s.ipynb</a>
- <a href="https://github.com/OpenMined/PySyft/tree/0.8.7/notebooks/api/0.8/12-custom-api-endpoint.ipynb">12-custom-api-endpoint.ipynb</a>

## Deploy Kubernetes Helm Chart

#### 0. Deploy Kubernetes

Required resources: 1 CPU and 4GB RAM. However, you will need some special instructions to deploy, please consult [these instructions](https://github.com/OpenMined/PySyft/blob/dev/notebooks/tutorials/deployments/03-deploy-k8s-k3d.ipynb) or look at the resource constraint testing [here](https://github.com/OpenMined/PySyft/pull/8828#issue-2300774645).  
Recommended resources: 8+ Cores and 16GB RAM

If you're using Docker Desktop to deploy your Kubernetes, you may need to go into Settings > Resources and increase CPUs and Memory.

**Note**: Assuming we have a Kubernetes cluster already setup.

#### 1. Add and update Helm repo for Syft

```sh
helm repo add openmined https://openmined.github.io/PySyft/helm
helm repo update openmined
```

#### 2. Search for available Syft versions

```sh
helm search repo openmined/syft --versions --devel
```

#### 3. Set your preferred Syft Chart version

```sh
SYFT_VERSION="<paste the chart version number>"
```

#### 4. Provisioning Helm Charts

```sh
helm install my-datasite openmined/syft --version $SYFT_VERSION --namespace syft --create-namespace --set ingress.className="traefik"
```

### Ingress Controllers

For Azure AKS

```sh
helm install ... --set ingress.className="azure-application-gateway"
```

For AWS EKS

```sh
helm install ... --set ingress.className="alb"
```

For Google GKE we need the [`gce` annotation](https://cloud.google.com/kubernetes-engine/docs/how-to/load-balance-ingress#create-ingress).

```sh
helm install ... --set ingress.class="gce"
```

## Note:

🚨 Our old deployment tool `HAGrid` has been `deprecated`. For the updated deployment options kindly refer to:

- 📚 <a href="https://github.com/OpenMined/PySyft/tree/dev/notebooks/tutorials/deployments">Deployments</a>

## Docs and Support

- 📚 <a href="https://openmined.github.io/PySyft/">Docs</a>
- `#support` on <a href="https://slack.openmined.org/">Slack</a>

# Install Notes

- PySyft 0.8.6 Requires: 🐍 `python 3.10 - 3.12` - Run: `pip install -U syft`
- Syft Server Requires: 🐳 `docker` or ☸️ `kubernetes`

# Versions

`0.9.0` - Coming soon...  
`0.8.8` (Beta) - `dev` branch 👈🏽 <a href="https://github.com/OpenMined/PySyft/tree/dev/notebooks/api/0.8">API</a> - Coming soon...  
`0.8.7` (Stable) - <a href="https://github.com/OpenMined/PySyft/tree/0.8.7/notebooks/api/0.8">API</a>

Deprecated:

- `0.8.6` - <a href="https://github.com/OpenMined/PySyft/tree/0.8.6/notebooks/api/0.8">API</a>
- `0.8.5-post.2` - <a href="https://github.com/OpenMined/PySyft/tree/0.8.5-post.2/notebooks/api/0.8">API</a>
- `0.8.4` - <a href="https://github.com/OpenMined/PySyft/tree/0.8.4/notebooks/api/0.8">API</a>
- `0.8.3` - <a href="https://github.com/OpenMined/PySyft/tree/0.8.3/notebooks/api/0.8">API</a>
- `0.8.2` - <a href="https://github.com/OpenMined/PySyft/tree/0.8.2/notebooks/api/0.8">API</a>
- `0.8.1` - <a href="https://github.com/OpenMined/PySyft/tree/0.8.1/notebooks/api/0.8">API</a>
- `0.8.0` - <a href="https://github.com/OpenMined/PySyft/tree/0.8/notebooks/api/0.8">API</a>
- `0.7.0` - <a href="https://github.com/OpenMined/courses/tree/introduction-to-remote-data-science-dev">Course 3 Updated</a>
- `0.6.0` - <a href="https://github.com/OpenMined/courses/tree/introduction-to-remote-data-science">Course 3</a>
- `0.5.1` - <a href="https://github.com/OpenMined/courses/tree/foundations-of-private-computation">Course 2</a> + M1 Hotfix
- `0.2.0` - `0.5.0`

PySyft and Syft Server use the same `version` and its best to match them up where possible. We release weekly betas which can be used in each context:

PySyft (Stable): `pip install -U syft`

PySyft (Beta): `pip install -U syft --pre`

# What is Syft?

<img align="right" src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/logo_big.png" alt="Syft" height="250" style="padding-left:30px;">

`Syft` is OpenMined's `open source` stack that provides `secure` and `private` Data Science in Python. Syft decouples `private data` from model training, using techniques like [Federated Learning](https://ai.googleblog.com/2017/04/federated-learning-collaborative.html), [Differential Privacy](https://en.wikipedia.org/wiki/Differential_privacy), and [Encrypted Computation](https://en.wikipedia.org/wiki/Homomorphic_encryption). This is done with a `numpy`-like interface and integration with `Deep Learning` frameworks, so that you as a `Data Scientist` can maintain your current workflow while using these new `privacy-enhancing techniques`.

### Why should I use Syft?

`Syft` allows a `Data Scientist` to ask `questions` about a `dataset` and, within `privacy limits` set by the `data owner`, get `answers` to those `questions`, all without obtaining a `copy` of the data itself. We call this process `Remote Data Science`. It means in a wide variety of `datasites` across society, the current `risks` of sharing information (`copying` data) with someone such as, privacy invasion, IP theft and blackmail will no longer prevent the vast `benefits` such as innovation, insights and scientific discovery which secure access will provide.

No more cold calls to get `access` to a dataset. No more weeks of `wait times` to get a `result` on your `query`. It also means `1000x more data` in every datasite. PySyft opens the doors to a streamlined Data Scientist `workflow`, all with the individual's `privacy` at its heart.

<!--
# Tutorials

<table border="5" bordercolor="grey">
<tr>
<th align="center">
<img width="441" height="1">
<div align="center">
<img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/personas_image/dataowner.png" alt="" width="100" height="100" align="center">
<p>Data Owner</p></div>
</th>
<th align="center">
<img width="441" height="1">
<div align="center"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/personas_image/datascientist.png" alt="" width="100" height="100" align="center">
<p>Data Scientist</p></div>

</th>
<th align="center">
<img width="441" height="1">
<div align="center">
<img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/personas_image/dataengineer.png" alt="" width="100" height="100" align="center">
<p>Data Engineer</p>
</div>
</th>
</tr>
<tr>
<td valign="top">

- <a href="https://github.com/OpenMined/PySyft/tree/0.8.7/notebooks/quickstart/data-owner/00-deploy-datasite.ipynb">Deploy a Datasite Server</a>
- <a href="https://github.com/OpenMined/PySyft/tree/0.8.7/notebooks/quickstart/data-owner/01-upload-data.ipynb">Upload Private Data</a>
- <a href="https://github.com/OpenMined/PySyft/tree/0.8.7/notebooks/quickstart/data-owner/02-create-account-configure-pb.ipynb">Create Accounts</a>
- Manage Privacy Budget</a>
- <a href="https://github.com/OpenMined/PySyft/tree/0.8.7/notebooks/quickstart/data-owner/03-join-network.ipynb">Join a Network</a>
- Learn how PETs streamline Data Policies

</td>
<td valign="top">

- Install Syft</a>
- Connect to a Datasite</a>
- Search for Datasets</a>
- Train Models
- Retrieve Secure Results
- Learn Differential Privacy

</td>
<td valign="top">

- Setup Dev Mode</a>
- Deploy to Azure
- Deploy to GCP
- Deploy to Kubernetes
- Customize Networking
- Modify Syft UI
</td>
</tr>
</table>
-->

# Terminology

<table border="5" bordercolor="grey">
<tr>
<th align="center">
<img width="441" height="1">
<p>👨🏻‍💼 Data Owners</p>
</th>
<th align="center">
<img width="441" height="1">
<p>👩🏽‍🔬 Data Scientists</p>
</th>
</tr>
<tr>
<td valign="top">
<!-- REMOVE THE BACKSLASHES -->

Provide `datasets` which they would like to make available for `study` by an `outside party` they may or may not `fully trust` has good intentions.

</td>
<td valign="top">
<!-- REMOVE THE BACKSLASHES -->

Are end `users` who desire to perform `computations` or `answer` a specific `question` using one or more data owners' `datasets`.

</td>
</tr>
<tr>
<th align="center">
<img width="441" height="1">
<p>🏰 Datasite Server</p>
</th>
<th align="center">
<img width="441" height="1">
<p>🔗 Gateway Server</p>
</th>
</tr>
<tr>
<td valign="top">
<!-- REMOVE THE BACKSLASHES -->

Manages the `remote study` of the data by a `Data Scientist` and allows the `Data Owner` to manage the `data` and control the `privacy guarantees` of the subjects under study. It also acts as a `gatekeeper` for the `Data Scientist's` access to the data to compute and experiment with the results.

</td>
<td valign="top">
<!-- REMOVE THE BACKSLASHES -->

Provides services to a group of `Data Owners` and `Data Scientists`, such as dataset `search` and bulk `project approval` (legal / technical) to participate in a project. A gateway server acts as a bridge between it's members (`Datasites`) and their subscribers (`Data Scientists`) and can provide access to a collection of `datasites` at once.</td>

</tr>
<tr>
</table>

# Community

<table border="5" bordercolor="grey">
<tr>
<th align="center" valign="top">
<img width="441" height="1">
<div align="center">

<img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/panel_slack_title_light.png" alt="" width="100%" align="center" />

<a href="https://slack.openmined.org/"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/panel_slack.png" alt="" width="100%" align="center" /></a>

</div>
</th>
<th align="center" valign="top">
<img width="441" height="1">
<div align="center">

<img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/panel_title_videos_papers_light.png" alt="" width="100%" align="center" />

<p align="left"><sub><sup>
🎥 <a href="https://www.youtube.com/watch?v=qVf0tPBzr2k">PETs: Remote Data Science Unleashed - R gov 2021</a><br />
🎥 <a href="https://youtu.be/sCoDWKTbh3s?list=PL_lsbAsL_o2BQKXG7mkGFA8LSApCnhljL">Introduction to Remote Data Science - PyTorch 2021</a><br />
🎥 <a href="https://youtu.be/kzLeTz_vIeQ?list=PL_lsbAsL_o2BtOz6KUfUI_Zla6Rg5dmyc">The Future of AI Tools - PyTorch 2020</a><br />
🎥 <a href="https://www.youtube.com/watch?v=4zrU54VIK6k&t=1s">Privacy Preserving AI - MIT Deep Learning Series</a><br />
🎥 <a href="https://www.youtube.com/watch?v=Pr4erdusiW0">Privacy-Preserving Data Science - TWiML Talk #241</a><br />
🎥 <a href="https://www.youtube.com/watch?v=NJBBE_SN90A">Privacy Preserving AI - PyTorch Devcon 2019</a><br />
📖 <a href="https://arxiv.org/pdf/2110.01315.pdf">Towards general-purpose infrastructure for protect...</a><br />
📖 <a href="https://arxiv.org/pdf/2104.12385.pdf">Syft 0.5: A platform for universally deployable ...</a><br />
📖 <a href="https://arxiv.org/pdf/1811.04017.pdf">A generic framework for privacy preserving deep ...</a>
</sup></sup></p>
</div>
</th>
<th align="center" valign="top">
<img width="441" height="1">
<div align="center">

<img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/panel_padawan_title_light.png" alt="" width="100%" align="center" />

<a href="https://blog.openmined.org/work-on-ais-most-exciting-frontier-no-phd-required/"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/panel_padawan.png" alt="" width="100%" align="center"></a>

</div>
</th>
</tr>
</table>

# Courses

<table border="5" bordercolor="grey">
<tr>
<th align="center">
<img width="441" height="1">
<div align="center">
<a href="https://courses.openmined.org/courses/our-privacy-opportunity"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/course_privacy.png" alt="" width="100%" align="center" /></a>
</th>
<th align="center">
<img width="441" height="1">
<div align="center">
<a href="https://courses.openmined.org/courses/foundations-of-private-computation"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/course_foundations.png" alt="" width="100%" align="center" /></a>
</div>
</th>
<th align="center">
<img width="441" height="1">
<div align="center">
<a href="https://courses.openmined.org/courses/introduction-to-remote-data-science"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/course_introduction.png" alt="" width="100%" align="center"></a>
</div>
</th>
</tr>
</table>

# Contributors

OpenMined and Syft appreciates all contributors, if you would like to fix a bug or suggest a new feature, please see our [guidelines](https://openmined.github.io/PySyft/developer_guide/index.html).<br />

<img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/contributors_light.jpg" alt="Contributors" width="100%" />

# Supporters

<table border="0">
<tr>
<th align="center">
<a href="https://sloan.org/"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/logo_sloan.png" /></a>
</th>
<th align="center">
<a href="https://opensource.fb.com/"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/logo_meta.png" /></a>
</th>
<th align="center">
<a href="https://pytorch.org/"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/logo_torch.png" /></a>
</th>
<th align="center">
<a href="https://www.dpmc.govt.nz/">
<img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/logo_nz_light.png" />
</a>
</th>
<th align="center">
<a href="https://twitter.com/"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/logo_twitter.png" /></a>
</th>
<th align="center">
<a href="https://google.com/"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/logo_google.png" /></a>
</th>
<th align="center">
<a href="https://microsoft.com/"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/logo_microsoft.png" /></a>
</th>
<th align="center">
<a href="https://omidyar.com/"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/logo_on.png" /></a>
</th>
<th align="center">
<a href="https://www.udacity.com/"><img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/logo_udacity.png" /></a>
</th>
<th align="center">
<a href="https://www.centerfordigitalhealthinnovation.org/">

<img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/logo_cdhi_light.png" />

</a>
</th>
<th align="center">
<a href="https://arkhn.org/">
<img src="https://raw.githubusercontent.com/OpenMined/PySyft/0.8.7/docs/img/logo_arkhn_light.png" />
</a>
</th>
</tr>
</table>

# Disclaimer

Syft is under active development and is not yet ready for pilots on private data without our assistance. As early access participants, please contact us via [Slack](https://slack.openmined.org/) or email if you would like to ask a question or have a use case that you would like to discuss.

# License

[Apache License 2.0](LICENSE)<br />
<a href="https://www.flaticon.com/free-icons/person" title="person icons">Person icons created by Freepik - Flaticon</a>

<!-- 🥇 -->
