https://github.com/stelviodev/stelvio
Ship Python to AWS in minutes, not days
https://github.com/stelviodev/stelvio
api-gateway aws dynamodb iac iam lambda-function lambda-layers python serverless
Last synced: 11 days ago
JSON representation
Ship Python to AWS in minutes, not days
- Host: GitHub
- URL: https://github.com/stelviodev/stelvio
- Owner: stelviodev
- License: apache-2.0
- Created: 2025-01-24T12:01:58.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2026-02-21T23:28:05.000Z (about 1 month ago)
- Last Synced: 2026-02-22T02:42:19.540Z (about 1 month ago)
- Topics: api-gateway, aws, dynamodb, iac, iam, lambda-function, lambda-layers, python, serverless
- Language: Python
- Homepage: https://stelvio.dev
- Size: 879 KB
- Stars: 275
- Watchers: 4
- Forks: 4
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Stelvio
[](https://pypi.org/project/stelvio/)
[](https://pypi.org/project/stelvio/)
[](https://opensource.org/licenses/Apache-2.0)
## Ship Python to AWS in minutes, not days.
[**Documentation**](https://stelvio.dev/intro/quickstart/) - [**Stelvio Manifesto**](https://stelvio.dev/about/manifesto/) - [**Roadmap**](https://github.com/stelviodev/stelvio/wiki/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.
[](https://stelvio.dev/intro-video)
## 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 dev` to 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.
```python
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](https://stelvio.dev/docs/guides/lambda/)** (AWS Lambda)
- **[Public API](https://stelvio.dev/docs/guides/api-gateway/)** (API Gateway)
- **[Scheduled Tasks](https://stelvio.dev/docs/guides/cron/)** (EventBridge Cron)
- **[Object Storage](https://stelvio.dev/docs/guides/s3/)** (S3)
- **[NoSQL Database](https://stelvio.dev/docs/guides/dynamo-db/)** (DynamoDB)
- **[Message Queues](https://stelvio.dev/docs/guides/queues/)** (SQS)
- **[Pub/Sub Topics](https://stelvio.dev/docs/guides/topics/)** (SNS)
- **[Email](https://stelvio.dev/docs/guides/email/)** (SES)
- **[AppSync](https://stelvio.dev/docs/guides/appsync/)** (AWS AppSync Managed GraphQL APIs)
## Give it a try
[](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=1084563664)
## Quick Start
You can get up and running in less than 2 minutes.
```bash
# 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](https://stelvio.dev/docs/getting-started/quickstart/) for a full walkthrough.
## Community & Contributing
Stelvio is open source and we welcome contributions!
- Check out our [Roadmap](https://github.com/stelviodev/stelvio/wiki/Roadmap) to see what's coming.
- Read the [Stelvio Manifesto](https://stelvio.dev/about/manifesto/) to understand our philosophy.
- Found a bug? Open an [Issue](https://github.com/stelviodev/stelvio/issues).
## License
This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.