spicedb-client 0.1.1

Ergonomic Rust gRPC client for SpiceDB
Documentation
# 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`:

```toml
[dependencies]
spicedb-client = "0.1.1"
```

## Usage

```rust
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

See [docs.rs/spicedb-client](https://docs.rs/spicedb-client).

## Contributing

We welcome contributions!

## License

This project is licensed under [Apache 2.0](LICENSE).

## Acknowledgements

This client is based on the official [AuthZed SpiceDB API](https://docs.authzed.com) and uses [Tonic](https://github.com/hyperium/tonic) for to generate the gRPC client.