#客户端 #janus #聚合 #协议 #指标 #分布式 #up

janus_client

Janus客户端,为ISRG的Divvi Up提供动力的服务器

192个版本

0.7.31 2024年8月20日
0.7.28 2024年7月30日
0.7.1 2024年3月21日
0.6.7 2023年12月14日
0.1.4 2022年7月26日

#1633 in 网络编程

Download history 397/week @ 2024-04-30 378/week @ 2024-05-07 805/week @ 2024-05-14 443/week @ 2024-05-21 594/week @ 2024-05-28 458/week @ 2024-06-04 1030/week @ 2024-06-11 524/week @ 2024-06-18 308/week @ 2024-06-25 324/week @ 2024-07-02 282/week @ 2024-07-09 459/week @ 2024-07-16 557/week @ 2024-07-23 423/week @ 2024-07-30 289/week @ 2024-08-06 272/week @ 2024-08-13

1,726 每月下载量
用于 divviup-cli

MPL-2.0 许可证

425KB
10K SLoC

janus_client

Build Status latest version docs badge

janus_client 是分布式聚合协议客户端角色的自包含实现。它适用于与 JanusDivvi Up 以及 ISRG 的尊重隐私的指标服务一起使用。当创建 janus 发布时,GitHub Action会发布到crates.io。


lib.rs:

DAP客户端

此库实现了DAP-PPM协议的客户端角色。它将测量值上传到两个DAP聚合服务器,然后这些服务器在保留每个客户端数据隐私的情况下,对来自许多客户端的数据进行统计聚合。

示例

use url::Url;
use prio::vdaf::prio3::Prio3Histogram;
use janus_messages::{Duration, TaskId};
use std::str::FromStr;

#[tokio::main]
async fn main() {
    let leader_url = Url::parse("https://leader.example.com/").unwrap();
    let helper_url = Url::parse("https://helper.example.com/").unwrap();
    let vdaf = Prio3Histogram::new_histogram(
        2,
        12,
        4
    ).unwrap();
    let taskid = "rc0jgm1MHH6Q7fcI4ZdNUxas9DAYLcJFK5CL7xUl-gU";
    let task = TaskId::from_str(taskid).unwrap();

    let client = janus_client::Client::new(
        task,
        leader_url,
        helper_url,
        Duration::from_seconds(300),
        vdaf
    )
    .await
    .unwrap();
    client.upload(&5).await.unwrap();
}

依赖关系

~38–53MB
~1M SLoC