apig-wsgi
Wrap a WSGI application in an AWS Lambda handler function for running on API Gateway or an ALB.
Decision gist · record as of 2026-08-14
Yes. This is a mature, actively maintained bridge for running WSGI applications on AWS Lambda. It has no dependencies, low install friction, clean MIT licensing, and zero known vulnerabilities. Install it if you're deploying a WSGI application to Lambda.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later.
- Your WSGI application must be deployable to AWS Lambda with appropriate IAM permissions.
- Low friction install with no runtime dependencies.
License · maintenance · safety
MIT (permissive) — MIT license permits commercial and private use with minimal restrictions; suitable for most projects.
last release 2025-09-08 (340 days) · last repo commit 2026-08-13 · 173 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 141,923 downloads/mo, #11,230 on PyPI
Alternatives
Verify before relying
pip install apig-wsgi
from apig_wsgi import make_lambda_handler
lambda_handler = make_lambda_handler(app)- Whether binary response support requires additional AWS configuration beyond what the package handles automatically.
- Performance characteristics and cold-start overhead compared to native Lambda frameworks.
- Specific Django and Flask compatibility versions beyond general WSGI support.
What it is and what it does
apig-wsgi is a thin adapter that lets you run existing WSGI applications on AWS Lambda by converting API Gateway and ALB events into WSGI environ dicts and wrapping responses back into the appropriate format. It handles both event format versions automatically, manages binary content encoding, and exposes Lambda context and request metadata through WSGI environ keys so your application can access AWS-specific details if needed.
The package has no runtime dependencies and installs cleanly. It's designed for teams deploying WSGI applications to serverless without rewriting the application layer. Configuration is minimal: you create a lambda_handler by passing your WSGI app to make_lambda_handler(), then deploy that function to Lambda. The package handles format detection, multi-value headers on format version 1, and conditional base64 encoding of binary responses.
Use it for
- Deploy a WSGI application behind an ALB in Lambda for cost-effective serverless HTTP handling.
- Run a WSGI app on a Lambda Function URL with automatic binary response support.
- Support both API Gateway REST and HTTP APIs with a single handler that auto-detects the event format.
- Access Lambda context and API Gateway request metadata from within your WSGI application.
- Wrap an existing WSGI application for Lambda without modifying application code.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
This is a mature, actively maintained bridge for running WSGI applications on AWS Lambda. It has no dependencies, low install friction, clean MIT licensing, and zero known vulnerabilities. Install it if you're deploying a WSGI application to Lambda.
Install
apig-wsgi on PyPI
Before you install
Low friction install with no runtime dependencies. Active maintenance with recent releases; last commit 2026-08-13.
Requires Python 3.9 or later. Your WSGI application must be deployable to AWS Lambda with appropriate IAM permissions.
License in practice
MIT license permits commercial and private use with minimal restrictions; suitable for most projects.
Quickstart
pip install apig-wsgi
from apig_wsgi import make_lambda_handler
lambda_handler = make_lambda_handler(app)
Verify before relying
- Whether binary response support requires additional AWS configuration beyond what the package handles automatically.
- Performance characteristics and cold-start overhead compared to native Lambda frameworks.
- Specific Django and Flask compatibility versions beyond general WSGI support.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 340 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 141,923 / month, #11,230 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Typing :: Typed |
Evidence: apig_wsgi-2.20.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “api gateway lambda handler”
- apig-wsgiWraps a WSGI application to run as an AWS Lambda handler on API…
- aws-wsgiAdapts WSGI-compatible Python web frameworks to run as AWS Lambda…
- mangumMangum adapts ASGI applications to run on AWS Lambda, handling events…
Give your agent the search over MCP, or paste the wish link into any chat.
More Dynamic Content packages
MarkupSafe provides a text object that escapes special characters so untrusted strings can be safely embedded in HTML and XML without injection attacks.
Jinja2 is a templating engine that renders dynamic content by combining templates with Python-like syntax and data, supporting template inheritance, macros, autoescaping, and sandboxed execution.
Soupsieve is a CSS selector library designed to work with Beautiful Soup 4 to select, match, and filter HTML and XML elements using modern CSS selectors from CSS level 1 through CSS level 4 specifications.
Install it if you use Beautiful Soup for HTML or XML parsing and want modern CSS selector support.
Werkzeug is a WSGI utility library providing request/response objects, URL routing, an interactive debugger, HTTP utilities, and a development server for building web applications.
Flask is a lightweight WSGI web application framework for building web applications in Python, from simple single-page sites to complex multi-route applications.
Mako compiles Python-embedded templates into Python modules for fast rendering, supporting layout inheritance, custom functions, and direct Python expressions within template syntax.
See also aws-lambda-context · aws-wsgi · awslambdaric · mangum · awsgi2 · serverless-wsgi · zappa · a2wsgi · WebOb · microversion-parse