chalice
Microframework
What it is and what it does
Chalice is a Python microframework that simplifies building and deploying serverless applications to AWS Lambda. It provides a decorator-based API for defining REST endpoints, scheduled tasks, and event handlers (S3, SNS, SQS) without boilerplate infrastructure code. The framework generates IAM policies automatically and handles deployment through a command-line tool that manages Lambda functions, API Gateway, and related resources.
You write Python functions decorated with @app.route(), @app.schedule(), or @app.on_s3_event() and run `chalice deploy` to push your application to AWS. Chalice abstracts away CloudFormation templates and manual resource provisioning, making it practical for developers who want to focus on application logic rather than AWS infrastructure plumbing. It supports Python 3.10 through 3.14 and depends on botocore and other standard AWS SDK libraries.
Use it for:
- Build and deploy REST APIs on Lambda without writing CloudFormation or managing API Gateway manually.
- Create scheduled background tasks that run on a timer using Lambda and CloudWatch Events.
- Connect Lambda functions to S3 bucket events to trigger processing when objects are uploaded.
- Process messages from SQS queues with Lambda handlers defined as simple Python functions.
- Rapidly prototype serverless microservices with minimal infrastructure configuration overhead.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Chalice is a Python framework for building and deploying serverless applications to AWS Lambda, with decorators for integrating API Gateway, S3, SNS, SQS, and other AWS services.
Yes, if you are building serverless applications on AWS Lambda and want to avoid infrastructure boilerplate. Chalice is actively maintained, has no known vulnerabilities, low install friction, and a permissive license. It is well-suited for REST APIs, scheduled tasks, and event-driven Lambda handlers. Not suitable if you need multi-cloud deployment or prefer explicit infrastructure-as-code control.
Install
chalice on PyPI
pip
pip install chaliceuv
uv add chalicepoetry
poetry add chaliceInstalling chalice
Before you install
Low install friction with a pure-Python wheel distribution. Active maintenance with a recent commit on 2026-08-12 and 11065 repository stars. Nine runtime dependencies are all well-established packages (click, botocore, pyyaml, etc.), suggesting stable, widely-used foundations.
License in practice
Apache License 2.0 is permissive, allowing commercial and private use with minimal restrictions—typical for AWS-sponsored open-source projects. No licensing constraints on adopting this package.
Quickstart
pip install chalice
chalice new-project helloworld
cd helloworld
# Edit app.py:
from chalice import Chalice
app = Chalice(app_name='helloworld')
@app.route('/')
def index():
return {'hello': 'world'}
# Deploy:
chalice deploy
Requires AWS credentials configured (via ~/.aws/config or environment variables) and Python 3.10 or later.
Verify before relying
- Whether the package supports all advertised AWS services (SNS, SQS, S3, etc.) equally well or if some integrations are more mature than others.
- Performance characteristics and cold-start overhead for Lambda functions deployed via Chalice.
- Scope of automatic IAM policy generation—whether it covers all use cases or requires manual policy refinement.
Package facts
| License | Apache License 2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 9 — click, botocore, six, pip, jmespath, pyyaml, inquirer, wheel, setuptools |
| Maintenance | actively maintained — 99 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 763,727/month — #5,125 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: chalice-1.33.0-py3-none-any.whl
Keywords: chalice
Tags
More Application Frameworks packages
FastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
textualTextual is a Python framework for building…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
mcpBuild and connect to Model Context Protocol…
permissive · top 1,000 on PyPI
WerkzeugWerkzeug is a WSGI utility library providing…
permissive · top 1,000 on PyPI
zappaZappa packages and deploys Python WSGI and ASGI…
permissive · top 15,000 on PyPI
aws-sam-cliAWS SAM CLI is a command-line tool for…
permissive · top 5,000 on PyPI
ecs-deployecs-deploy is a CLI tool that simplifies Amazon…
permissive · top 15,000 on PyPI
falfal is a serverless Python runtime that…
unclear · top 15,000 on PyPI
kappaKappa is a command-line tool that automates the…
permissive · top 15,000 on PyPI
cargo-lambdacargo-lambda is a Cargo subcommand that…
permissive · top 15,000 on PyPI
serverless-wsgiBridges Python WSGI applications (Flask,…
permissive · top 15,000 on PyPI
aws-lambda-typingProvides type hints and IDE autocomplete for…
permissive · top 5,000 on PyPI
pulumi-awsPulumi AWS provider for Python that lets you…
permissive · top 5,000 on PyPI
sqlalchemy-aurora-data-apiProvides a SQLAlchemy dialect for accessing…
permissive · top 15,000 on PyPI