A lightweight, high-throughput S3 client built on raw HTTP + SigV4 signing.
No AWS SDK — just reqwest, aws-sigv4, and tokio.
Install
Quick start
use ;
async
S3-compatible backends
use ;
let config = with_endpoint;
A lightweight, high-throughput S3 client built on raw HTTP + SigV4 signing.
No AWS SDK — just reqwest, aws-sigv4, and tokio.
cargo add s3z
use s3z::{Config, S3Client, UploadRequest, auth::CredentialSource};
#[tokio::main]
async fn main() -> s3z::error::Result<()> {
let client = S3Client::new(
Config::new("us-east-1", CredentialSource::Env),
).await?;
let result = client
.upload(UploadRequest::new(
vec!["./data".into()],
"my-bucket",
"uploads/",
))
.await?;
for f in &result.files {
println!("{} → s3://{} ({} parts)", f.source.display(), f.key, f.parts);
}
Ok(())
}
use s3z::{Config, S3Client, auth::CredentialSource};
let config = Config::with_endpoint(
"us-east-1",
CredentialSource::Static {
access_key: "minioadmin".into(),
secret_key: "minioadmin".into(),
},
"http://localhost:9000", // MinIO, SeaweedFS, Garage, etc.
);