The MinIO Rust SDK is a Simple Storage Service (aka S3) client for performing bucket and object operations to any Amazon S3 compatible object storage service.
It provides a strongly-typed, async-first interface to the MinIO and Amazon S3-compatible object storage APIs.
Each supported S3 operation has a corresponding request builder (for example: [`BucketExists`], [`PutObject`], [`UploadPartCopy`]), which allows users to configure request parameters using a fluent builder pattern.
All request builders implement the [`S3Api`] trait, which provides the async [`send`](crate::s3::types::S3Api::send) method to execute the request and return a typed response.
## Basic Usage
```no_run
use minio::s3::Client;
use minio::s3::types::S3Api;
use minio::s3::response::BucketExistsResponse;
#[tokio::main]
async fn main() {
let client: Client = Default::default(); // configure your client
let exists: BucketExistsResponse = client
.bucket_exists("my-bucket")
.send()
.await
.expect("request failed");
println!("Bucket exists: {}", exists.exists);
}
```
## Features
- Request builder pattern for ergonomic API usage
- Full async/await support via [`tokio`]
- Strongly-typed responses
- Transparent error handling via `Result<T, Error>`
## Design
- Each API method on the [`Client`] returns a builder struct
- Builders implement [`ToS3Request`] for request conversion and [`S3Api`] for execution
- Responses implement [`FromS3Response`] for consistent deserialization
This SDK is distributed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0), see [LICENSE](https://github.com/minio/minio-rs/blob/master/LICENSE) for more information.