aws-sdk-s3

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

SDK
Cargo
v1.150.0
3,339 stars
Apache License 2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
93 /100 Excellent
Development Activity 100
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

TypeScript
54%
MIT

Anarlog

AI Assistants · Note Taking · Productivity

9,404

Anarlog is an open-source, local-first AI meeting notetaker that records, transcribes, and summarizes meetings entirely on your device — no cloud lock-in, no mandatory account, and every note saved as a plain markdown file you own forever.

View details
86
Repo Health
77
Technical
68
Dependency
Built with
TypeScript 54%
Rust 34%
Updated 4 days ago
TypeScript
54%
MIT

Anarlog

AI Assistants · Note Taking · Productivity

9,404

Anarlog is an open-source, local-first AI meeting notetaker that records, transcribes, and summarizes meetings entirely on your device — no cloud lock-in, no mandatory account, and every note saved as a plain markdown file you own forever.

View details
86
Repo Health
77
Technical
68
Dependency
Built with
TypeScript 54%
Rust 34%
Updated 4 days ago
Rust
86%
Other

Arroyo

Analytics · Data Engineering

5,039

A distributed stream processing engine written in Rust that lets you write SQL to run stateful, real-time computations over data streams with subsecond results.

View details
86
Repo Health
74
Technical
62
Dependency
Built with
Rust 86%
Updated 1 weeks ago
Rust
52%
Apache 2.0

cocoindex

AI Development · Data Engineering

11,607

An incremental data indexing engine that keeps AI agent context perpetually fresh by reprocessing only what changed.

View details
87
Repo Health
85
Technical
65
Dependency
Built with
Rust 52%
Python 48%
Updated 4 days ago
Rust
37%
Other

Hook0

Devops

1,491

Open-source Webhooks-as-a-Service: deliver events to your users with auto-retry, signed payloads, and a real-time subscriber dashboard — all without building the infrastructure yourself.

View details
82
Repo Health
82
Technical
69
Dependency
Built with
Rust 37%
TypeScript 12%
Updated 1 weeks ago
TypeScript
61%
EPL-2.0

Huly Platform

Collaboration · Project Management · Team Chat

27,797

Open-source all-in-one workspace that replaces Linear, Jira, Slack, and Notion for product and engineering teams.

View details
90
Repo Health
86
Technical
62
Dependency
Built with
TypeScript 61%
Svelte 34%
Updated 6 days ago
TypeScript
64%
Apache 2.0

Laminar

AI Development · Monitoring

3,285

Open-source observability platform purpose-built for AI agents — trace, evaluate, debug, and monitor at scale with SQL access and real-time replay.

View details
85
Repo Health
76
Technical
66
Dependency
Built with
TypeScript 64%
Rust 34%
Updated 5 days ago
TypeScript
64%
Apache 2.0

Laminar

AI Development · Monitoring

3,285

Open-source observability platform purpose-built for AI agents — trace, evaluate, debug, and monitor at scale with SQL access and real-time replay.

View details
85
Repo Health
76
Technical
66
Dependency
Built with
TypeScript 64%
Rust 34%
Updated 5 days ago
Rust
43%
Apache 2.0

LanceDB

AI Development · Databases

11,544

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
71
Dependency
Built with
Rust 43%
Python 25%
HTML 23%
Updated 5 days 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