30 releases
new 0.7.0 | Apr 1, 2025 |
---|---|
0.6.0 | Feb 11, 2025 |
0.5.3 | Jan 17, 2025 |
0.5.1 | Aug 26, 2024 |
0.1.0 | Jan 8, 2021 |
#177 in HTTP client
108 downloads per month
89KB
2K
SLoC
Library for interacting with an Avassa system.
Avassa Client
The first interaction is to login into the system
#[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)?
.approle_login("https://api.customer.net",
&std::env::var("APPROLE_SECRET_ID").unwrap(),
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
Create a Volga producer and consumer
#[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(())
}
Avassa Client Library
Use this library to integrate with the Avassa APIs. For documentation, please see the docs.
For more information on Avassa, please see here.
Dependencies
~3–17MB
~217K SLoC