Skip to main content

Lightweight and powerful WSGI/AWS lambda framework for rapid building rest applications.

Project description

Chocs
PyPI version Release Linting and Tests codecov Maintainability

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 the bjoern 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

This version

1.6.1

Download files

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

Source Distribution

chocs-1.6.1.tar.gz (23.6 kB view details)

Uploaded Source

Built Distribution

chocs-1.6.1-py3-none-any.whl (32.9 kB view details)

Uploaded Python 3

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

Hashes for chocs-1.6.1.tar.gz
Algorithm Hash digest
SHA256 c5e9789747a508c1bcbe9dacde7c555d3147633e05b9621c1ca3f1677d5e6eca
MD5 6a54985a16d9156ca299f1d77312dedf
BLAKE2b-256 bbd0fc1621daa8824ac9022676856651d23109164ba4e80349ad684d9372a3dd

See more details on using hashes here.

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

Hashes for chocs-1.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bf2bb843ce718d1a9ad8330f22da9fd9b92042b77059cbf5eded5de2206f445a
MD5 a8db0529732cfcbd37c152aafa63d331
BLAKE2b-256 d23da5fe689800d6574bf57685b189c1acd9224199df0607ffd2dae93ef56254

See more details on using hashes here.

Supported by

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