The Developer's Toolbelt For Accelerating Mean-Time-To-Party on AWS
Project description
The Developer's Toolbelt For Accelerating Mean Time To Party on AWS
Created by Jens Roland and fueled by a non-zero amount of alcohol
🥂💃🕺 Welcome to the Party! 🥂💃🕺
Kegstand is a free and open-source framework for creating Python APIs and services. It allows you to rapidly build and deploy services on AWS. We all have better things to do than print(json.dumps(event)) all day long, and Kegstand is here to help you get to the party — and into Prod — a lot faster.
It provides:
- A CLI tool for creating and deploying your services.
- A decorator based framework abstracting away the boilerplate of AWS Lambda, API Gateway, Cognito, and more.
- The full power of CDK to define and deploy arbitrary AWS resources with your services.
"Experience a streamlined cloud development process, enhanced productivity, and hit that "party" button sooner with Kegstand!" > — GPT-4, official spokesbot for the Kegstand team
Learn more on the Kegstand website.
Prerequisites
- Supports Python 3.10, 3.11, 3.12, and 3.13
- uv or Poetry
- AWS account
- AWS CLI configured with credentials
- AWS CDK CLI configured and initialized
- A well-poured Belgian style brown ale
Quick start
To create a service with Kegstand, you'll need a Python project with a few dependencies and a folder structure following the Kegstand convention.
You can create this in a few seconds, either with the Kegstand CLI or using Copier.
# Using the Kegstand CLI
> pipx install kegstandcli
> keg new my-service
# Using Copier
> copier copy -d project_name=my-service gh:JensRoland/kegstand-project-template .
Either method will create a new project folder called my-service containing:
📁 my-service
├── 📄 .gitignore # Standard .gitignore file
├── 📄 pyproject.toml # Project configuration
└── 📁 src
└── 📁 api
└── 📁 public
└── 📄 hello.py # Logic for /hello/
Kegstand projects are minimal by design, so a fresh project folder contains just those 3 files. Well, apart from a few empty __init__.py gatecrashers, but we can safely ignore those.
Install the dependencies for the new project (uv will do this for you during uv run so it's not strictly necessary):
> cd my-service
> uv sync
Finally, to build and deploy the service to AWS:
> uv run keg deploy
Note: Even if you installed the Kegstand CLI globally with
pipx, it is still recommended to useuv runto ensure that you are using the correct CLI version for the specific project.
You should now be able to access the API endpoint at https://<api-id>.execute-api.<region>.amazonaws.com/prod/hello.
Documentation
For further examples and more advanced usage, see the official documentation.
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 kegstandcli-0.4.3.tar.gz.
File metadata
- Download URL: kegstandcli-0.4.3.tar.gz
- Upload date:
- Size: 109.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d70d6c4756596ccf34da9b058b50aca95084641508729535be42b46440015964
|
|
| MD5 |
1113b36d8fb2ea2a6c5b19b8c3fc14d0
|
|
| BLAKE2b-256 |
f514652aea109539582be3c0d9654afaa8378f2c0446f2c3c1927928c6f62f14
|
Provenance
The following attestation bundles were made for kegstandcli-0.4.3.tar.gz:
Publisher:
python-publish.yml on JensRoland/kegstand
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kegstandcli-0.4.3.tar.gz -
Subject digest:
d70d6c4756596ccf34da9b058b50aca95084641508729535be42b46440015964 - Sigstore transparency entry: 161701669
- Sigstore integration time:
-
Permalink:
JensRoland/kegstand@4178901c040917702207ea4eb1a8bffbc1bc53b6 -
Branch / Tag:
refs/tags/v0.4.3 - Owner: https://github.com/JensRoland
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@4178901c040917702207ea4eb1a8bffbc1bc53b6 -
Trigger Event:
release
-
Statement type:
File details
Details for the file kegstandcli-0.4.3-py3-none-any.whl.
File metadata
- Download URL: kegstandcli-0.4.3-py3-none-any.whl
- Upload date:
- Size: 23.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f8e06a0c9838d38be748442d459b65c69d917c9e241badf4a915c3d77ce59aa
|
|
| MD5 |
b02c5b04bd18b02799288b9fb64e68fa
|
|
| BLAKE2b-256 |
4bcf9e97710ba0949798bc62c2f4afafc1d9d35e84e63614d9a39c2e939c3eff
|
Provenance
The following attestation bundles were made for kegstandcli-0.4.3-py3-none-any.whl:
Publisher:
python-publish.yml on JensRoland/kegstand
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kegstandcli-0.4.3-py3-none-any.whl -
Subject digest:
4f8e06a0c9838d38be748442d459b65c69d917c9e241badf4a915c3d77ce59aa - Sigstore transparency entry: 161701671
- Sigstore integration time:
-
Permalink:
JensRoland/kegstand@4178901c040917702207ea4eb1a8bffbc1bc53b6 -
Branch / Tag:
refs/tags/v0.4.3 - Owner: https://github.com/JensRoland
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@4178901c040917702207ea4eb1a8bffbc1bc53b6 -
Trigger Event:
release
-
Statement type: