Skip to main content

AWS Lambda & API Gateway support for ASGI

Project description

Mangum

Package version Build Status PyPI - Python Version

Mangum is an adapter for using ASGI applications with AWS Lambda & API Gateway. It is intended to provide an easy-to-use, configurable wrapper for any ASGI application deployed in an AWS Lambda function to handle API Gateway requests and responses.

Documentation: https://mangum.io/

Features

  • API Gateway support for HTTP, REST, and WebSocket APIs.

  • Multiple storage backend interfaces for managing WebSocket connections.

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

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

  • Works with existing deployment and configuration tools, including Serverless Framework and AWS SAM.

  • Startup and shutdown lifespan events.

Requirements

Python 3.6+

Installation

pip install mangum

Example

from mangum import Mangum

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!"})


handler = Mangum(app)

Or using a framework.

from fastapi import FastAPI
from mangum import Mangum

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}

handler = Mangum(app)

Project details


Download files

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

Source Distribution

mangum-0.12.2.tar.gz (21.0 kB view details)

Uploaded Source

Built Distribution

mangum-0.12.2-py3-none-any.whl (30.4 kB view details)

Uploaded Python 3

File details

Details for the file mangum-0.12.2.tar.gz.

File metadata

  • Download URL: mangum-0.12.2.tar.gz
  • Upload date:
  • Size: 21.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11

File hashes

Hashes for mangum-0.12.2.tar.gz
Algorithm Hash digest
SHA256 f49a3b56daffe776b0325734ff2afcb0f87f8f9d7eb3f1364ca50f600be52092
MD5 47a3eef0f143b925420e5133c595d5f0
BLAKE2b-256 e2dbea0bd511dcd772c8cd9014517922d9faeb6195d025766f672b14dd845584

See more details on using hashes here.

Provenance

File details

Details for the file mangum-0.12.2-py3-none-any.whl.

File metadata

  • Download URL: mangum-0.12.2-py3-none-any.whl
  • Upload date:
  • Size: 30.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11

File hashes

Hashes for mangum-0.12.2-py3-none-any.whl
Algorithm Hash digest
SHA256 eb7cb2cf0c06b537aee8ac39993771d0bf8aa86ba1b0a2173e4037aa58e5c35f
MD5 5399e17c43eac8531ad87926e4025bdf
BLAKE2b-256 ed92198d5d04166464c5fb7f67b571b52a33d3752baf8bd97baa8bcfe7b62ab0

See more details on using hashes here.

Provenance

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