Skip to content

Rust SDK

Install

[dependencies]
calvery = "0.1"
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }

Quickstart

use calvery::Client;
#[tokio::main]
async fn main() -> Result<(), calvery::Error> {
let client = Client::new(std::env::var("CVSM_TOKEN").unwrap(), "acme-corp")?;
let db_url = client.get("DATABASE_URL").await?;
println!("DB: {db_url}");
Ok(())
}

API

  • Client::new(token, team) — default config
  • Client::builder(token, team) — custom config (base_url, environment, cache_ttl, max_retries, timeout)
  • client.get("NAME") / .get_env("NAME", "staging") — single secret
  • client.get_all() / .get_all_env("staging") — HashMap semua secret
  • client.inject(overwrite: bool) — populate std::env::set_var, return list nama
  • client.clear_cache() — clear local cache

Error types

match client.get("NAME").await {
Ok(v) => { /* ... */ }
Err(calvery::Error::NotFound(msg)) => /* secret missing */,
Err(calvery::Error::Auth(msg)) => /* token invalid */,
Err(calvery::Error::Network(msg)) => /* konek gagal */,
Err(calvery::Error::Server { status, message }) => /* 4xx/5xx */,
Err(calvery::Error::Decode(msg)) => /* response format salah */,
Err(calvery::Error::Config(msg)) => /* token/team kosong */,
}