-Perform data science on `data` that remains in `someone else's` server
+
Data Science on data you are not allowed to see
+
+PySyft enables a new way to do data science, where you can use non-public information, without seeing nor obtaining a copy of the data itself. All you need is to connect to a Datasite!
+
+Datasites are like websites, but for data. Designed with the principles of structured transparency, they enable data owners to control how their data is protected and data scientists to use data without obtaining a copy.
+
+PySyft supports any statistical analysis or machine learning, offering support for directly running Python code - even using third-party Python libraries.
+
+
Supported on:
+
+✅ Linux
+✅ macOS
+✅ Windows
+✅ Docker
+✅ Kubernetes
# Quickstart
-✅ `Linux` ✅ `macOS` ✅ `Windows` ✅ `Docker` ✅ `Kubernetes`
+Try out your first query against a live demo Datasite!
## Install Client
@@ -18,34 +32,46 @@ Perform data science on `data` that remains in `someone else's` server
$ pip install -U syft[data_science]
```
+More instructions are available here.
+
## Launch Server
+Launch a development server directly in your Jupyter Notebook:
+
```python
-# from Jupyter / Python
import syft as sy
-sy.requires(">=0.8.8,<0.8.9")
+
+sy.requires(">=0.9,<0.9.1")
+
server = sy.orchestra.launch(
name="my-datasite",
port=8080,
create_producer=True,
n_consumers=1,
- dev_mode=True,
+ dev_mode=False,
reset=True, # resets database
)
```
+or from the command line:
+
```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
```
+Datasite servers can be deployed as a single container using Docker or directly in Kubernetes. Check out our deployment guide.
+
## Launch Client
+Main way to use a Datasite is via our Syft client, in a Jupyter Notebook. Check out our PySyft client guide:
+
```python
import syft as sy
-sy.requires(">=0.8.8,<0.8.9")
+
+sy.requires(">=0.9,<0.9.1")
+
datasite_client = sy.login(
port=8080,
email="info@openmined.org",
@@ -53,321 +79,98 @@ datasite_client = sy.login(
)
```
-## PySyft in 10 minutes
+## PySyft - Getting started 📝
-📝 API Example Notebooks
+Learn about PySyft via our getting started guide:
-- 00-load-data.ipynb
-- 01-submit-code.ipynb
-- 02-review-code-and-approve.ipynb
-- 03-data-scientist-download-result.ipynb
-- 04-pytorch-example.ipynb
-- 05-custom-policy.ipynb
-- 06-multiple-code-requests.ipynb
-- 07-datasite-register-control-flow.ipynb
-- 08-code-version.ipynb
-- 09-blob-storage.ipynb
-- 10-container-images.ipynb
-- 11-container-images-k8s.ipynb
-- 12-custom-api-endpoint.ipynb
+- PySyft from the ground up
+- Part 1: Datasets & Assets
+- Part 2: Client and Datasite Access
+- Part 3: Propose the research study
+- Part 4: Review Code Requests
+- Part 5: Retrieving Results
-## Deploy Kubernetes Helm Chart
+# PySyft In-depth
-#### 0. Deploy Kubernetes
+📚 Check out our docs website.
-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
+Quick PySyft components links:
-If you're using Docker Desktop to deploy your Kubernetes, you may need to go into Settings > Resources and increase CPUs and Memory.
+- DataSite Server
-**Note**: Assuming we have a Kubernetes cluster already setup.
+- Syft Client
-#### 1. Add and update Helm repo for Syft
+- Datasets API (`.datasets`)
-```sh
-helm repo add openmined https://openmined.github.io/PySyft/helm
-helm repo update openmined
-```
+- Users API (`.users`)
-#### 2. Search for available Syft versions
+- Projects API (`.projects`)
-```sh
-helm search repo openmined/syft --versions --devel
-```
-
-#### 3. Set your preferred Syft Chart version
-
-```sh
-SYFT_VERSION=""
-```
-
-#### 4. Provisioning Helm Charts
-
-```sh
-helm install my-datasite openmined/syft --version $SYFT_VERSION --namespace syft --create-namespace --set ingress.className="traefik"
-```
+- Request API (`.requests`)
-### Ingress Controllers
+- Code API (`.code`)
-For Azure AKS
+- Syft Policies API (`.policy`)
-```sh
-helm install ... --set ingress.className="azure-application-gateway"
-```
-
-For AWS EKS
+- Settings API (`.settings`)
-```sh
-helm install ... --set ingress.className="alb"
-```
+- Notifications API (`.notifications`)
-For Google GKE we need the [`gce` annotation](https://cloud.google.com/kubernetes-engine/docs/how-to/load-balance-ingress#create-ingress).
+- Sync API (`.sync`)
-```sh
-helm install ... --set ingress.class="gce"
-```
+## Why use PySyft?
-## Note:
+In a variety of domains across society, data owners have **valid concerns about the risks associated with sharing their data**, such as legal risks, privacy invasion (_misuing the data_), or intellectual property (_copying and redistributing it_).
-🚨 Our old deployment tool `HAGrid` has been `deprecated`. For the updated deployment options kindly refer to:
+Datasites enable data scientists to **answer questions** without even seeing or acquiring a copy of the data, **within the data owners's definition of acceptable use**. We call this process Remote Data Science.
-- 📚 Deployments
+This means that the **current risks** of sharing information with someone will **no longer prevent** the vast benefits such as innovation, insights and scientific discovery. With each Datasite, data owners are able to enable `1000x more accesible data` in each scientific field and lead, together with data scientists, breakthrough innovation.
-## Docs and Support
+Learn more about our work on our website.
-- 📚 Docs
-- `#support` on Slack
+## Support
-# Install Notes
+For questions about PySyft, reach out via `#support` on Slack.
-- PySyft 0.8.6 Requires: 🐍 `python 3.10 - 3.12` - Run: `pip install -U syft`
-- Syft Server Requires: 🐳 `docker` or ☸️ `kubernetes`
+## Syft Versions
-# Versions
+:exclamation: PySyft and Syft Server must use the same `version`.
-`0.9.0` (Beta) - `dev` branch 👈🏽 API - Coming soon...
-`0.8.8` (Stable) - API
+**Latest Stable**
-Deprecated:
+- `0.8.8` (Stable) - Docs
+- Install PySyft (Stable): `pip install -U syft`
-- `0.8.7` - API
-- `0.8.6` - API
-- `0.8.5-post.2` - API
-- `0.8.4` - API
-- `0.8.3` - API
-- `0.8.2` - API
-- `0.8.1` - API
-- `0.8.0` - API
-- `0.7.0` - Course 3 Updated
-- `0.6.0` - Course 3
-- `0.5.1` - Course 2 + M1 Hotfix
-- `0.2.0` - `0.5.0`
+**Latest Beta**
-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:
+- `0.9.0` (Beta) - `dev` branch 👈🏽
+- Install PySyft (Beta): `pip install -U syft --pre`
-PySyft (Stable): `pip install -U syft`
-
-PySyft (Beta): `pip install -U syft --pre`
-
-# What is Syft?
-
-
-
-`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.
-
-
-
-# Terminology
-
-
-
-
-
-
👨🏻💼 Data Owners
-
-
-
-
👩🏽🔬 Data Scientists
-
-
-
-
-
-
-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.
-
-
-
-
-
-Are end `users` who desire to perform `computations` or `answer` a specific `question` using one or more data owners' `datasets`.
-
-
-
-
-
-
-
🏰 Datasite Server
-
-
-
-
🔗 Gateway Server
-
-
-
-
-
-
-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.
-
-
-
-
-
-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.
-
-
-
-
+Find more about previous releases here.
# Community
-
-
-
+Supported by the OpenMined Foundation, the OpenMined Community is an online network of over 17,000 technologists, researchers, and industry professionals keen to _unlock 1000x more data in every scientific field and industry_.
-
-
-
-
-
-
+
# Courses
-
+
-
+
-
+
@@ -377,13 +180,20 @@ Provides services to a group of `Data Owners` and `Data Scientists`, such as dat
# 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).
+OpenMined and Syft appreciates all contributors, if you would like to fix a bug or suggest a new feature, please reach out via Github or Slack!
+# About OpenMined
+
+OpenMined is a non-profit foundation creating technology infrastructure that helps researchers get answers from data without needing a copy or direct access. Our community of technologists is building Syft.
+
+
+
# Supporters
@@ -441,10 +251,6 @@ OpenMined and Syft appreciates all contributors, if you would like to fix a bug
-# 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)
diff --git a/docs/img/Syft-Logo-Light.svg b/docs/img/Syft-Logo-Light.svg
new file mode 100644
index 00000000000..8d1bff88f21
--- /dev/null
+++ b/docs/img/Syft-Logo-Light.svg
@@ -0,0 +1,126 @@
+
+
\ No newline at end of file
diff --git a/docs/img/Syft-Logo.svg b/docs/img/Syft-Logo.svg
new file mode 100644
index 00000000000..24adb15bbf7
--- /dev/null
+++ b/docs/img/Syft-Logo.svg
@@ -0,0 +1,126 @@
+
+
\ No newline at end of file
diff --git a/releases.md b/releases.md
new file mode 100644
index 00000000000..1f9ec045d23
--- /dev/null
+++ b/releases.md
@@ -0,0 +1,28 @@
+# Releases
+
+:exclamation: PySyft and Syft Server must use the same `version`.
+
+### Latest Stable
+
+- `0.8.8` (Stable) - Docs
+- Install PySyft (Stable): `pip install -U syft`
+
+### Latest Beta
+
+- `0.9.0` (Beta) - `dev` branch 👈🏽
+- Install PySyft (Beta): `pip install -U syft --pre`
+
+**Deprecated**:
+
+- `0.8.7` - API
+- `0.8.6` - API
+- `0.8.5-post.2` - API
+- `0.8.4` - API
+- `0.8.3` - API
+- `0.8.2` - API
+- `0.8.1` - API
+- `0.8.0` - API
+- `0.7.0` - Course 3 Updated
+- `0.6.0` - Course 3
+- `0.5.1` - Course 2 + M1 Hotfix
+- `0.2.0` - `0.5.0`