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 and REST APIs.

  • 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.10.0.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

mangum-0.10.0-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mangum-0.10.0.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.8.5

File hashes

Hashes for mangum-0.10.0.tar.gz
Algorithm Hash digest
SHA256 17a8bd5d0c71b8c413d3b9a07857e9aafabc08a5876c672a561a7acaa30f0d1f
MD5 2a36361c04b97280615aa3f1e08d0b03
BLAKE2b-256 4368ee7827be8c03149da06fb0f528d834878a995ef47aec4352450d519a39a4

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: mangum-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.8.5

File hashes

Hashes for mangum-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cd8d2d515226099a5f3491da32c68c5db64a92f559bd9215a22b43f881ba874f
MD5 8edee28cd97550198633d2234b58e8a2
BLAKE2b-256 7cd37886e0fbff142721d0007bd33abae6de9e33ece644915aeba7925ab0ee57

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