# hashtree-s3

S3 storage backend for hashtree with non-blocking uploads.

Store hashtree blobs in Amazon S3 or compatible object storage (MinIO, R2, etc.).

## Usage

```rust
use hashtree_s3::S3Store;
use hashtree_core::Store;

let store = S3Store::new(
    "my-bucket",
    "us-east-1",
    Some("https://s3.example.com"),  // Optional custom endpoint
).await?;

// Store a blob
store.put(&hash, &data).await?;

// Retrieve a blob
let data = store.get(&hash).await?;
```

## Features

- Non-blocking async uploads
- Compatible with S3-compatible services (MinIO, Cloudflare R2, etc.)
- Optional feature in hashtree-cli: `cargo install hashtree-cli --features s3`

Part of [hashtree-rs](https://git.iris.to/#/npub1xdhnr9mrv47kkrn95k6cwecearydeh8e895990n3acntwvmgk2dsdeeycm/hashtree).
