1 unstable release
0.1.1 | Aug 10, 2024 |
---|
#4 in #zed
195KB
3K
SLoC
spicedb-client
Experimental ergonomic(-ish) Rust client for the SpiceDB gRPC API.
[!WARNING] Experimental!
Features
- More ergonomic wrappers around the auto-generated Tonic gRPC APIs
- Builder traits to simplify creating requests.
Installation
Add this to your Cargo.toml
:
[dependencies]
spicedb-client = "0.1.1"
Usage
use spicedb_client::SpicedbClient;
use spicedb_client::reader::*;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let spicedb_url = std::env::var("SPICEDB_URL")
.unwrap_or_else(|_| "http://localhost:50051".to_string());
let preshared_key = std::env::var("SPICEDB_PRESHARED_KEY")
.unwrap_or_else(|_| "spicedb".to_string());
let mut client = SpicedbClient::from_url_and_preshared_key(spicedb_url, preshared_key)
.await
.unwrap();
// Read schema
let response = client.read_schema().await.unwrap();
let schema = response.schema_text();
println!("Schema: {:?}", schema);
Ok(())
}
Documentation
Contributing
We welcome contributions!
License
This project is licensed under Apache 2.0.
Acknowledgements
This client is based on the official AuthZed SpiceDB API and uses Tonic for to generate the gRPC client.
Dependencies
~9–18MB
~240K SLoC