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 身份认证
每月92次下载
83KB
2K SLoC
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