Ship Python to AWS in minutes, not days
Project description
Stelvio
Ship Python to AWS in minutes, not days.
Documentation - Stelvio Manifesto - Roadmap
Stelvio is an open-source framework that lets you build and deploy modern AWS applications using pure Python. Forget YAML, complex configuration, or learning new DSLs.
With the stlv CLI, you focus on your code, and Stelvio handles the infrastructure.
Why Stelvio?
- 🐍 Pure Python: Define your infrastructure with standard Python code. Use your favorite IDE, linter, and type checker.
- 🧠 Smart Defaults: We handle the complex IAM roles, networking, and configuration so you don't have to.
- 🔗 Automatic Permissions: Simply pass resources to your functions. Stelvio automatically configures permissions and environment variables.
- ⚡ Live Dev Mode: Run
stlv devto sync your code changes instantly. No waiting for deployments. - 🔧 Full Control: Logic and infrastructure in one place, with escape hatches to the underlying Pulumi resources.
- 📖 Open Source: Built by developers for developers. Apache 2.0 licensed.
Example
Define your infrastructure and application logic in one file. Stelvio handles the wiring.
from stelvio.aws.api_gateway import Api
from stelvio.aws.cron import Cron
from stelvio.aws.dynamo_db import DynamoTable
@app.run
def run() -> None:
todos = DynamoTable(
"todos-table",
fields={
"user": "string",
"date": "string"
},
sort_key="date",
partition_key="user"
)
cleanup = Cron(
"cleanup-cron",
"rate(1 minute)",
handler="api/handlers.cleanup",
links=[todos]
)
api = Api("stlv-demo-api")
api.route("GET", "/hello", handler="api/handlers.hello_world")
api.route("POST", "/todos", handler="api/handlers.post_todo", links=[todos])
api.route("GET", "/todos/{user}", handler="api/handlers.list_todos", links=[todos])
Supported Components
Stelvio provides high-level components for the most common AWS services:
- Function (AWS Lambda)
- Public API (API Gateway)
- Scheduled Tasks (EventBridge Cron)
- Object Storage (S3)
- NoSQL Database (DynamoDB)
- Message Queues (SQS)
- Pub/Sub Topics (SNS)
- Email (SES)
- AppSync (AWS AppSync Managed GraphQL APIs)
- Cognito (Amazon Cognito User Pools & Identity Pools)
Give it a try
Quick Start
You can get up and running in less than 2 minutes.
# 1. Create a new project
uv init my-todo-api && cd my-todo-api
# 2. Add Stelvio
uv add stelvio
# 3. Initialize project structure
uv run stlv init
# 4. Deploy to AWS
uv run stlv deploy
See the Quick Start Guide for a full walkthrough.
Community & Contributing
Stelvio is open source and we welcome contributions!
- Check out our Roadmap to see what's coming.
- Read the Stelvio Manifesto to understand our philosophy.
- Found a bug? Open an Issue.
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file stelvio-0.9.0b5.tar.gz.
File metadata
- Download URL: stelvio-0.9.0b5.tar.gz
- Upload date:
- Size: 163.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e20e7df8f791de3fa8b2c1c5db74535c6e0eb4291c9b7d1ec2047c52914e729c
|
|
| MD5 |
99bde63f2578f2966b079beb531d9171
|
|
| BLAKE2b-256 |
22efa94338838f8df9c0318afef2f44247b350cfd2851c3228c45a4eeed3e607
|
Provenance
The following attestation bundles were made for stelvio-0.9.0b5.tar.gz:
Publisher:
release.yml on stelviodev/stelvio
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
stelvio-0.9.0b5.tar.gz -
Subject digest:
e20e7df8f791de3fa8b2c1c5db74535c6e0eb4291c9b7d1ec2047c52914e729c - Sigstore transparency entry: 1286786410
- Sigstore integration time:
-
Permalink:
stelviodev/stelvio@226191da2578d45ade4afb885738ab8317ef652c -
Branch / Tag:
refs/tags/v0.9.0b5 - Owner: https://github.com/stelviodev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@226191da2578d45ade4afb885738ab8317ef652c -
Trigger Event:
push
-
Statement type:
File details
Details for the file stelvio-0.9.0b5-py3-none-any.whl.
File metadata
- Download URL: stelvio-0.9.0b5-py3-none-any.whl
- Upload date:
- Size: 211.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4eb23e8f2b5431a72623872cd497504933d2adc395c8a4f0babf59fa0240392
|
|
| MD5 |
4bb12f204ebb280f5535a68170fd9779
|
|
| BLAKE2b-256 |
70ea2827368b9f60ba7c95296889b7c6e0b1688a8f7dd688f37eeba1777c0b00
|
Provenance
The following attestation bundles were made for stelvio-0.9.0b5-py3-none-any.whl:
Publisher:
release.yml on stelviodev/stelvio
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
stelvio-0.9.0b5-py3-none-any.whl -
Subject digest:
c4eb23e8f2b5431a72623872cd497504933d2adc395c8a4f0babf59fa0240392 - Sigstore transparency entry: 1286786512
- Sigstore integration time:
-
Permalink:
stelviodev/stelvio@226191da2578d45ade4afb885738ab8317ef652c -
Branch / Tag:
refs/tags/v0.9.0b5 - Owner: https://github.com/stelviodev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@226191da2578d45ade4afb885738ab8317ef652c -
Trigger Event:
push
-
Statement type: