Metadata-Version: 2.1
Name: dpsa4fl-bindings
Version: 0.1.36
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.7
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM


# Python bindings for dpsa4fl

**Warning: This project is work in progress and should not be used in production. The current implementation is a prototype.**

The dpsa4fl project aims at providing a mechanism for secure and differentially private aggregation
of gradients in federated machine learning. For more information see the [project overview](https://github.com/dpsa-project/overview).

## About this package
This package provides python bindings for the [dpsa4fl](https://github.com/dpsa-project/dpsa4fl) library.
The following functionality is provided:
 - **Controller api**: start a training session on the janus server, and collect aggregated gradients.
 - **Client api**: securely submit gradients to the janus server.
 
A modified [janus server setup](https://github.com/dpsa-project/dpsa4fl-testing-infrastructure) is required,
see the [example project](https://github.com/dpsa-project/dpsa4fl-example-project) for step-by-step instructions.

## Development notes
To release a new version of this package, you have to:
 1. Increment the version number in `Cargo.toml`.
 2. Push the current state to the `release` branch. Then github actions will do the rest.
    Alternatively, you can use [act](https://github.com/nektos/act) to run github actions locally.


