> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mesa.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Rust SDK

> Use the Mesa Rust SDK for programmatic access to Depot.

The Mesa Rust SDK (`mesa-dev`) provides a type-safe client for interacting with the Depot API from Rust. For full API documentation, see [docs.rs/mesa-dev](https://docs.rs/mesa-dev/latest/mesa_dev/).

## Installation

```bash theme={null}
cargo add mesa-dev
```

## Quick Start

```rust theme={null}
use mesa_dev::{Mesa, RestError, models::CreateRepoRequest};

#[tokio::main]
async fn main() -> Result<(), RestError> {
    let client = Mesa::new("my-api-key");

    // Create a repository
    let repo = client
        .repos("my-org")
        .create(&CreateRepoRequest {
            name: "my-repo".to_owned(),
            default_bookmark: None,
        })
        .await?;
    println!("Created repo: {}", repo.name);

    // List all bookmarks (automatically paginates)
    let bookmarks = client
        .bookmarks("my-org", "my-repo")
        .list_all()
        .collect()
        .await?;
    println!("Found {} bookmarks", bookmarks.len());

    Ok(())
}
```

## Resources

| Resource  | Accessor                      | Operations                        |
| --------- | ----------------------------- | --------------------------------- |
| Repos     | `client.repos(org)`           | create, list, get, rename, delete |
| Bookmarks | `client.bookmarks(org, repo)` | create, list, delete              |
| Changes   | `client.changes(org, repo)`   | list, get                         |
| Content   | `client.content(org, repo)`   | get (files and directories)       |
| Diffs     | `client.diffs(org, repo)`     | get                               |
| Admin     | `client.admin(org)`           | API key management                |

For detailed usage of each resource, pagination, error handling, retry configuration, and custom HTTP backends, see the [full API documentation on docs.rs](https://docs.rs/mesa-dev/latest/mesa_dev/).

## Minimum Supported Rust Version

Rust **1.85+** (edition 2024).
