Skip to content

Vellox

Package version PyPI - Python Version

Vellox is an adapter for running ASGI applications in GCP Cloud Functions.

Features

  • Event handlers for GCP Cloud Functions.

  • Compatibility with ASGI application frameworks, such as Starlette, FastAPI, Quart and Django.

  • Support for binary media types and payload compression in API Gateway using GZip or Brotli.

  • Startup and shutdown lifespan events.

Requirements

Python 3.8+

Installation

pip install vellox

Example

from vellox import Vellox

async def app(scope, receive, send):
    await send(
        {
            "type": "http.response.start",
            "status": 200,
            "headers": [[b"content-type", b"text/plain; charset=utf-8"]],
        }
    )
    await send({"type": "http.response.body", "body": b"Hello, world!"})


vellox = Vellox(app=app, lifespan="off")

def handler(request):
    return vellox(request)

Or using a framework:

from fastapi import FastAPI
from vellox import Vellox

app = FastAPI()


@app.get("/")
def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

vellox = Vellox(app=app, lifespan="off")

def handler(request):
    return vellox(request)