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 fordaphne
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.
Cap'n Proto is required to build DAP.
# debian
apt install capnproto
# macos
brew install capnp
The daphne
crate relies on unit tests. To test integration with Cloudflare's
backend, run make e2e
.