MinIO Rust SDK for Amazon S3 Compatible Cloud Storage
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
method to execute the request and return a typed response.
Basic Usage
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 structBuilders implement [
ToS3Request
] for request conversion and [S3Api
] for executionResponses implement [
FromS3Response
] for consistent deserialization
Examples
You can run the examples from the command line with:
cargo run --example <example_name>
The examples below cover several common operations.
You can find the complete list of examples in the examples
directory.
file_uploader.rs
file_downloader.rs
object_prompt.rs
License
This SDK is distributed under the Apache License, Version 2.0, see LICENSE for more information.