4 releases (breaking)

Uses new Rust 2024

0.4.0 Apr 23, 2026
0.3.0 Jun 2, 2025
0.2.0 May 21, 2025
0.1.0 Sep 27, 2023

#17 in HTTP client

Download history 2885/week @ 2026-04-16 2078/week @ 2026-04-23 1674/week @ 2026-04-30 1761/week @ 2026-05-07 1628/week @ 2026-05-14 1646/week @ 2026-05-21 2110/week @ 2026-05-28 2159/week @ 2026-06-04 2503/week @ 2026-06-11 2844/week @ 2026-06-18 3137/week @ 2026-06-25 2681/week @ 2026-07-02 3433/week @ 2026-07-09 3773/week @ 2026-07-16 3289/week @ 2026-07-23 4317/week @ 2026-07-30

15,189 downloads per month
Used in 12 crates (10 directly)

Apache-2.0

1MB
21K SLoC

MinIO Rust SDK for Amazon S3 Compatible Cloud Storage

CI docs.rs Slack Sourcegraph crates.io Apache V2 License

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::MinioClient;
use minio::s3::creds::StaticProvider;
use minio::s3::http::BaseUrl;
use minio::s3::types::S3Api;
use minio::s3::response::BucketExistsResponse;

#[tokio::main]
async fn main() {
    let base_url = "http://localhost:9000".parse::<BaseUrl>().unwrap();
    let static_provider = StaticProvider::new("minioadmin", "minioadmin", None);
    let client = MinioClient::new(base_url, Some(static_provider), None, None).unwrap();

    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 MinioClient returns a builder struct
  • Builders implement ToS3Request for request conversion and S3Api for execution
  • Responses 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.

Dependencies

~20–41MB
~640K SLoC