boto3

The official AWS SDK for Python — call every Amazon Web Services API from your code.

SDK
PyPI
v1.43.118
9,920 stars
Apache License 2.0

Repository Health

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

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
88 /100 Excellent
Architecture 92
Code Quality 92
Innovation 93
Learning Curve 76

Boto3 is the Amazon Web Services (AWS) Software Development Kit for Python, maintained and published by AWS. It lets Python developers create, configure, and manage AWS services such as Amazon S3, EC2, DynamoDB, Lambda, and hundreds more directly from their code.

Boto3 exposes two complementary interfaces: low-level clients that map one-to-one onto every AWS service API, and higher-level resource objects that provide an object-oriented, Pythonic abstraction over common services. Built on top of botocore, it handles authentication, request signing, retries, pagination, and waiters so you can focus on your application logic instead of AWS plumbing.

What You Get

  • Low-level service clients that map one-to-one onto every AWS service operation, kept current automatically from AWS API models
  • High-level resource objects offering an object-oriented, Pythonic interface to common services like S3, EC2, and DynamoDB
  • Built-in credential resolution from environment variables, shared config files, IAM roles, and instance profiles
  • Automatic request signing, configurable retries, paginators, and waiters for long-running operations
  • Managed S3 transfers (multipart uploads/downloads) via s3transfer and a DynamoDB conditions/types helper layer

Common Use Cases

  • Uploading, downloading, and managing objects in Amazon S3 buckets from scripts or applications
  • Provisioning and controlling compute resources such as EC2 instances and Lambda functions
  • Reading and writing items in DynamoDB tables with condition expressions and typed serialization
  • Automating cloud infrastructure and operational tasks across hundreds of AWS services

Under The Hood

Architecture — Boto3 sits as a high-level layer on top of botocore, AWS’s shared low-level HTTP/signing core. Everything begins with a boto3.session.Session (boto3/session.py), which wraps a botocore.session.Session and exposes client() and resource() factories; a lazily-created default session backs the module-level boto3.client()/boto3.resource() helpers in boto3/init.py. Resources are not hand-written — the ResourceFactory (boto3/resources/factory.py) dynamically synthesizes ServiceResource subclasses at runtime from JSON resource definitions, wiring in actions, collections, waiters, and sub-resources via ServiceAction, CollectionFactory, and ResourceHandler. Service-specific behavior (S3 transfers, DynamoDB conditions/serialization, EC2 helpers) is layered on through event-emitter hooks in the boto3/s3, boto3/dynamodb, and boto3/ec2 packages.

Tech Stack — Pure Python targeting 3.10+ (setup.py python_requires), with a deliberately small runtime dependency set: botocore (the request/signing/model engine), jmespath (response querying), and s3transfer (managed multipart transfers), all version-pinned to compatible ranges. Development tooling uses ruff for linting/formatting (line length 79, configured in pyproject.toml), tox for multi-version test matrices, pytest as the runner, and pre-commit hooks; releases are automated from AWS API model updates.

Code Quality — The test suite is substantial and well-organized, with 63 test modules split across tests/unit, tests/functional, and tests/integration covering sessions, the resource factory, collections, S3, DynamoDB, and EC2. Code is consistently licensed and documented with reStructuredText docstrings, follows enforced ruff formatting, and uses a changelog-fragment workflow (.changes directory) for disciplined release notes. The dynamic resource-generation approach concentrates complexity in a small, heavily-tested factory layer rather than spreading it across per-service code.

API Design — The public surface is deliberately minimal and ergonomic: boto3.client('s3') for full one-to-one API access, or boto3.resource('s3') for an object-oriented experience where AWS entities become Python objects with attributes and methods (for bucket in s3.buckets.all()). Credentials, region, signing, retries, pagination, and waiters are handled implicitly so getting started takes only a few lines. Documentation is extensive and first-party (docs.aws.amazon.com/boto3), though the sheer breadth of AWS services and the client-vs-resource distinction give the SDK a real but manageable learning curve.

Used by 60 apps in this directory

Python
55%
Other

PostHog

Ab Testing Experimentation · Analytics · Developer Tools

40,397

The all-in-one open source product platform combining analytics, session replay, feature flags, error tracking, AI observability, and a built-in data warehouse in a single self-hostable stack.

View details
92
Repo Health
80
Technical
65
Dependency
Built with
Python 55%
TypeScript 36%
Updated 5 days ago
Python
87%
Apache 2.0

PrivateGPT

AI Development

57,611

The open-source API layer that turns local LLMs into production private AI applications with full Claude API compatibility

View details
88
Repo Health
83
Technical
70
Dependency
Built with
Python 87%
Updated 6 days ago
JavaScript
50%
AGPL 3.0

QRev

AI Agents · CRM

364

Open source AI-first sales platform that replaces Salesforce with autonomous agents handling prospecting, outreach, and lead management at scale.

View details
39
Repo Health
68
Technical
64
Dependency
Built with
JavaScript 50%
Python 28%
TypeScript 14%
Updated 8 months ago
Python
99%
Apache 2.0

Rasa Open Source

AI Assistants · AI Development · Voice AI

21,353

Rasa Open Source is a Python machine learning framework for building contextual, multi-turn chatbots and voice assistants that understand natural language and maintain conversation state.

View details
62
Repo Health
78
Technical
63
Dependency
Built with
Python 99%
Updated 3 months ago
Python
57%
Other

Sentry

Analytics · Developer Tools · Monitoring

45,632

Developer-first error tracking and performance monitoring platform with AI-powered root-cause analysis across 20+ languages and frameworks.

View details
95
Repo Health
80
Technical
66
Dependency
Built with
Python 57%
TypeScript 42%
Updated 5 days ago
Python
59%
AGPL 3.0

Speakr

AI Assistants

4,112

Self-hosted AI transcription with speaker diarization, smart tagging, and multi-user collaboration — your recordings stay on your infrastructure.

View details
84
Repo Health
79
Technical
70
Dependency
Built with
Python 59%
HTML 21%
JavaScript 17%
Updated 6 days ago
TypeScript
72%
Apache 2.0

Supabase

Authentication · Databases · Developer Tools

113,827

The open-source Postgres development platform that replaces Firebase with authentication, real-time APIs, edge functions, storage, and vector embeddings — all built on PostgreSQL.

View details
90
Repo Health
91
Technical
62
Dependency
Built with
TypeScript 72%
MDX 26%
Updated 5 days ago
Python
71%
Apache 2.0

SurfSense

AI Assistants · Search

16,586

The open-source, unlimited NotebookLM alternative with real-time collaboration, a desktop app, and no vendor lock-in.

View details
88
Repo Health
71
Technical
66
Dependency
Built with
Python 71%
TypeScript 27%
Updated 5 days ago
Python
94%
Apache 2.0

SWIRL

Data Engineering · Databases · Search

3,046

Federated AI search and RAG across 100+ enterprise sources—no data extraction, no vector database required.

View details
61
Repo Health
83
Technical
65
Dependency
Built with
Python 94%
Updated 1 weeks 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