/daphne

Implementation of DAP

Primary LanguageRustBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Daphne

Daphne is a Rust implementation of the Distributed Aggregation Protocol (DAP) standard. DAP is under active development in the PPM working group of the IETF.

Daphne currently implements:

  • draft-ietf-ppm-dap-09
    • Prio3: draft-irtf-cfrg-vdaf-08
    • Taskprov extension: draft-wang-ppm-dap-taskprov-06
    • Interop test API: draft-dcook-ppm-dap-interop-test-design-07

The repository contains a number of crates. The main one, daphne, implements the core DAP protocol logic for Clients, Aggregators, and Collectors. This crate does not provide the complete, end-to-end functionality of any party. Instead, it defines traits for the functionalities that a concrete instantiation of the protocol is required to implement. We call these functionalities "roles".

The remaining crates are not intended for general use:

  • daphne-server, daphne-worker, daphne-service-utils -- Components of Cloudflare's backend for its DAP deployments. These crates are not intended for general use.

  • daphne-worker-test -- Integration tests for daphne and Cloudflare's backend.

  • dapf (short for "DAP Functions") -- CLI for interacting with DAP deployments. Some of its features are specific to Cloudflare's own deployment.

Testing

The daphne crate relies on unit tests. To test integration with Cloudflare's backend, run make e2e.