aws-sdk-s3

AWS's official, code-generated Rust client for Amazon S3

SDK
Cargo
v1.155.0
3,354 stars
Apache License 2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
92 /100 Excellent
Development Activity 96
Maintenance 100
Community 72
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
78 /100 Good
Architecture 88
Code Quality 84
Innovation 72
Learning Curve 68

aws-sdk-s3 is the official Rust client for Amazon S3, one of several hundred per-service crates published from the awslabs/aws-sdk-rust monorepo. Like every crate in that repository, it is generated from Smithy service models (via the smithy-rs code generator) rather than hand-written, giving it complete, always-current coverage of the S3 REST API’s operations, request/response types, and error variants.

The crate is built on Tokio for async execution and integrates with aws-config for credential resolution (environment variables, shared config/credentials files, IAM roles, ECS/EKS container credentials, and EC2 instance metadata), following the same client-construction pattern (aws_config::load_from_env() + Client::new(&config)) shared across every AWS Rust SDK crate. It was selected as the canonical primary package for this repository over the initially-suggested aws-sdk-bedrock because it has vastly higher adoption (over 71M monthly downloads vs. roughly 354K for aws-sdk-bedrock), reflecting S3’s status as the most widely used AWS service from Rust.

What You Get

  • A typed async Client covering every S3 REST API operation (bucket/object CRUD, multipart uploads, presigned URLs, and more)
  • Integration with aws-config for automatic credential resolution across environment variables, shared config files, IAM roles, and container/instance metadata
  • Strongly typed request builders and response structs generated from AWS’s official Smithy service model, so the API surface tracks S3’s real capabilities exactly
  • Consistent client-construction and error-handling patterns shared across all other aws-sdk-* crates in the same monorepo
  • Tokio-based async execution with full support for streaming request/response bodies

Common Use Cases

  • Uploading, downloading, and managing objects in S3 buckets from a Rust backend service
  • Building data pipelines or CLIs that read/write large objects via S3 multipart upload/download
  • Generating presigned URLs for temporary, credential-free client access to S3 objects
  • Migrating an existing AWS-integrated Rust service from a community S3 client to the officially maintained, Smithy-generated SDK

Under The Hood

Architecture: Every crate in the monorepo, including sdk/s3, is machine-generated by the smithy-rs code generator (hosted in the separate smithy-lang/smithy-rs repository) from Smithy models under aws-models/; the generated sdk/s3/src contains the Client struct, per-operation fluent builders, typed input/output structs, and error enums, all reflecting the exact shape of the S3 API version 2006-03-01. Tech Stack: Rust 2021 edition (MSRV pinned per-release, e.g. 1.94.1), async via Tokio, credential/config handling delegated to the separately-versioned aws-config crate, and dependencies like arc-swap used internally for the generated client’s shared configuration state. Code Quality: Every generated file carries a DO NOT EDIT header pointing back to the code generator, meaning correctness and quality are governed upstream in smithy-rs and the Smithy models rather than through hand-review of this repository’s generated output; the monorepo itself runs an extensive tests/ suite and a public roadmap/CODEOWNERS process reflecting direct AWS ownership. API Design: The aws_config::load_from_env().await + Client::new(&config) construction pattern, and the fluent per-operation builder style (client.list_tables().limit(10).send().await), is identical across all ~300+ generated AWS Rust SDK crates, so developer experience learned on one AWS service (e.g. S3) transfers directly to any other (DynamoDB, Bedrock, Kinesis) with no additional learning curve beyond each service’s own operation set.

Used by 20 apps in this directory

Rust
43%
Apache 2.0

LanceDB

AI Development · Databases

11,757

Open-source, embedded vector database built on the Lance columnar format for fast multimodal search across billions of vectors, backed by Y Combinator (W23).

View details
90
Repo Health
86
Technical
72
Dependency
Built with
Rust 43%
Python 27%
HTML 21%
Updated 5 days ago
Rust
43%
Apache 2.0

LanceDB

AI Development · Databases

11,757

Open-source, embedded vector database built on the Lance columnar format for fast multimodal search across billions of vectors, backed by Y Combinator (W23).

View details
90
Repo Health
86
Technical
72
Dependency
Built with
Rust 43%
Python 27%
HTML 21%
Updated 5 days ago
Python
73%
AGPL 3.0

OpenViking

AI Development · AI Memory · Databases

40,705

An open-source context database that gives AI agents a unified filesystem for memory, resources, and skills with hierarchical tiered retrieval.

View details
85
Repo Health
75
Technical
64
Dependency
Built with
Python 73%
TypeScript 12%
Rust 11%
Updated 5 days ago
Go
82%
AGPL 3.0

PeerDB

Data Engineering · Databases

3,309

Postgres-native ETL that streams change data capture in real time to Snowflake, BigQuery, ClickHouse, S3, and Kafka — up to 10x faster than general-purpose pipelines, managed through a familiar Postgres SQL interface.

View details
89
Repo Health
76
Technical
66
Dependency
Built with
Go 82%
TypeScript 12%
Updated 5 days ago
Rust
63%
MIT

Readur

Bookmarks Archiving · File Storage · Knowledge Management

804

A self-hosted document management system that OCRs, indexes, and makes every PDF, scan, and Office file instantly searchable.

View details
83
Repo Health
78
Technical
67
Dependency
Built with
Rust 63%
TypeScript 32%
Updated 5 days ago
Rust
66%
Apache 2.0

Temps

Analytics · Devops · Monitoring

865

A self-hosted Rust PaaS that replaces Vercel, Sentry, PostHog, Pingdom, Resend, and E2B with one binary — plus 440+ CLI operations agents like Claude Code can drive directly.

View details
81
Repo Health
86
Technical
66
Dependency
Built with
Rust 66%
TypeScript 33%
Updated 6 days ago
Rust
66%
Apache 2.0

Temps

Analytics · Devops · Monitoring

865

A self-hosted Rust PaaS that replaces Vercel, Sentry, PostHog, Pingdom, Resend, and E2B with one binary — plus 440+ CLI operations agents like Claude Code can drive directly.

View details
81
Repo Health
86
Technical
66
Dependency
Built with
Rust 66%
TypeScript 33%
Updated 6 days ago
Rust
79%
Apache 2.0

TensorZero

Ab Testing Experimentation · AI Development · Monitoring

11,708

TensorZero unifies the LLM gateway, observability, evaluation, optimization, and experimentation stack behind a single OpenAI-compatible API, built in Rust for sub-millisecond p99 latency.

View details
53
Repo Health
87
Technical
68
Dependency
Built with
Rust 79%
TypeScript 15%
Updated 4 months ago
Rust
50%
Apache 2.0

Vibe Kanban

AI Agents · AI Code Assistants · Project Management

28,441

A kanban board for planning work and dispatching Claude Code, Codex, Gemini CLI, and eight other coding agents into isolated git worktrees, then reviewing and merging their diffs from one UI.

View details
72
Repo Health
75
Technical
63
Dependency
Built with
Rust 50%
TypeScript 46%
Updated 1 months ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers