25个不稳定版本 (4个破坏性更新)

0.5.0 2023年11月13日
0.4.3 2023年6月21日
0.4.1 2023年3月29日
0.2.10 2022年11月8日
0.1.0 2021年1月8日

#355 in 身份认证

Download history 2/week @ 2024-03-15 10/week @ 2024-03-29 4/week @ 2024-04-05

每月92次下载

Apache-2.0

83KB
2K SLoC

Avassa logo

Avassa客户端库

使用此库来集成Avassa API。有关文档,请参阅文档

有关Avassa的更多信息,请参阅此处


lib.rs:

用于与Avassa系统交互的库。

Avassa客户端

第一次交互是登录系统

#[tokio::main]
async fn main() -> Result<(), avassa_client::Error> {
    use avassa_client::Client;

    // API CA certificate loaded
    let ca_cert = Vec::new();

    // Use login using platform provided application token
    let approle_id = "secret approle id";
    let client = Client::builder()
        .add_root_certificate(&ca_cert)?
        .application_login("https://api.customer.net", Some(approle_id)).await?;

    // Username and password authentication, good during the development phase
    let client = Client::builder()
        .add_root_certificate(&ca_cert)?
        .login("https://1.2.3.4", "joe", "secret").await?;

    Ok(())
}

Volga

创建Volga生产者和消费者

#[tokio::main]
async fn main() -> Result<(), avassa_client::Error> {
    use avassa_client::Client;

    // API CA certificate loaded
    let ca_cert = Vec::new();

    // Use login using platform provided application token
    let approle_id = "secret approle id";
    let client = Client::builder()
        .add_root_certificate(&ca_cert)?
        .application_login("https://api.customer.net", Some(approle_id)).await?;

    // Clone to move into async closure
    let producer_client = client.clone();

    tokio::spawn(async move {
        let mut producer = producer_client.volga_open_producer(
            "test-producer",
            "my-topic",
            avassa_client::volga::OnNoExists::Create(Default::default())
            )
            .await?;

        producer.produce(&serde_json::json!({
           "msg": "The Message",
        })).await?;
        Ok::<_, avassa_client::Error>(())
    });

    let mut consumer = client.volga_open_consumer(
        "test-consumer",
        "my-topic",
        Default::default())
        .await?;

    let message = consumer.consume::<String>().await?;

    assert_eq!(message.payload, "test message");
    Ok(())
}

依赖关系

~15–31MB
~540K SLoC