Skip to main content

AWS for Python devs made simple.

Project description

Stelvio

PyPI Python Version License

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.

stlv 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.

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:

Give it a try

Open in GitHub Codespaces

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!

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stelvio-0.7.2b3.tar.gz (115.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

stelvio-0.7.2b3-py3-none-any.whl (149.8 kB view details)

Uploaded Python 3

File details

Details for the file stelvio-0.7.2b3.tar.gz.

File metadata

  • Download URL: stelvio-0.7.2b3.tar.gz
  • Upload date:
  • Size: 115.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for stelvio-0.7.2b3.tar.gz
Algorithm Hash digest
SHA256 88594d0e4df886250b2afbef8aa77e2e75fbb9c96f5db70bbb1459090a0fca75
MD5 670634ef2f417d68f33cfd4b3a2c6cf0
BLAKE2b-256 1c4ab7610f4d53e0d5b8b4fe2021172880801900fe8e4dbfb84cd3c1f8b424b2

See more details on using hashes here.

File details

Details for the file stelvio-0.7.2b3-py3-none-any.whl.

File metadata

  • Download URL: stelvio-0.7.2b3-py3-none-any.whl
  • Upload date:
  • Size: 149.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for stelvio-0.7.2b3-py3-none-any.whl
Algorithm Hash digest
SHA256 875ca498f9db67acd3a349c2e173b1a3b8501baaab436a3d46fce4f884c16fb5
MD5 b81f36feb1d7709ffbee81497a13a595
BLAKE2b-256 63cf441d4c76acd5fd9bc1f154b705d72ae2c50c7892257ee1020b7a3f073681

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page