Lightweight and powerful WSGI/AWS lambda framework for rapid building rest applications.
Project description
Chocs
Chocs is a modern HTTP framework for building AWS HTTP API/REST API and WSGI compatible applications. Chocs aims to be small, expressive, and robust. It provides an elegant API for writing fault-proof, extensible microservices.
Features
- AWS Serverless integration
- Elegant and easy API
- No additional bloat like built-in template engines, session handlers, etc.
- Compatible with all WSGI servers
- Loosely coupled components which can be used separately
- Multipart body parsing
- Graceful error handling
- HTTP middleware support
- Fast routing
- Middleware packages to simplify daily tasks
Installation
pip install chocs
or with poetry
poetry add chocs
Quick start
import chocs
http = chocs.Application()
@http.get("/hello/{name}")
def hello(request: chocs.HttpRequest) -> chocs.HttpResponse:
return chocs.HttpResponse(f"Hello {request.path_parameters.get('name')}!")
chocs.serve(http)
Keep in mind that the
chocs.serve()
function is using thebjoern
package, so make sure you included it in your project dependencies before using it. You are able to use any WSGI compatible server.
Available middlewares
OpenAPI Integration middleware
Allows integrating OpenAPI documentation into your codebase, providing automating request validation based on your OpenAPI spec. More details are available in the chocs-openapi repository.
ParsedBody middleware
Parsed body middleware helps to convert json/yaml request payloads into dataclass, this not only makes your daily tasks easier but increases readability of your code and contract. More details are available in the chocs-parsed-body repository.
Documentation
For usage and detailed documentation please visit our wiki page
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
File details
Details for the file chocs-1.6.1.tar.gz
.
File metadata
- Download URL: chocs-1.6.1.tar.gz
- Upload date:
- Size: 23.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.8.12 Linux/5.11.0-1028-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5e9789747a508c1bcbe9dacde7c555d3147633e05b9621c1ca3f1677d5e6eca |
|
MD5 | 6a54985a16d9156ca299f1d77312dedf |
|
BLAKE2b-256 | bbd0fc1621daa8824ac9022676856651d23109164ba4e80349ad684d9372a3dd |
File details
Details for the file chocs-1.6.1-py3-none-any.whl
.
File metadata
- Download URL: chocs-1.6.1-py3-none-any.whl
- Upload date:
- Size: 32.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.8.12 Linux/5.11.0-1028-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf2bb843ce718d1a9ad8330f22da9fd9b92042b77059cbf5eded5de2206f445a |
|
MD5 | a8db0529732cfcbd37c152aafa63d331 |
|
BLAKE2b-256 | d23da5fe689800d6574bf57685b189c1acd9224199df0607ffd2dae93ef56254 |