Vellox
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)