oslo.middleware
Oslo Middleware library
Decision gist · record as of 2026-08-14
Yes, if you are developing or operating an OpenStack application and need to customize request/response handling. The low install friction, active maintenance, permissive license, and tight integration with Oslo libraries make it a natural fit for OpenStack deployments. Not necessary for non-OpenStack WSGI applications, where other middleware libraries may be more appropriate.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.11 or later; designed for integration into WSGI application pipelines, not standalone use.
- Low install friction with a pure-Python wheel distribution.
- Actively maintained with a release 35 days ago.
License · maintenance · safety
Apache-2.0 (permissive) — Apache-2.0 permissive license allows commercial and private use with minimal restrictions, making it suitable for proprietary OpenStack deployments.
last release 2026-07-10 (35 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 382,642 downloads/mo, #7,085 on PyPI
Alternatives
Verify before relying
pip install oslo.middleware
from oslo_middleware import base
class CustomMiddleware(base.ConfigurableMiddleware):
def process_request(self, req):
# Intercept and modify request
return req
def process_response(self, response):
# Intercept and modify response
return response- Whether the package includes pre-built middleware for common tasks (e.g., CORS, rate limiting) beyond the base class.
- Performance characteristics when handling high request volumes or large payloads.
What it is and what it does
oslo.middleware is an OpenStack library that provides a base class and utilities for building WSGI middleware components. It allows developers to inject custom logic into the request/response pipeline of WSGI applications, enabling tasks like HTTP header manipulation, request/response filtering, and connection management. The library is part of the Oslo project and integrates with other Oslo libraries (oslo.config, oslo.context, oslo.i18n, oslo.utils) to provide configuration, context tracking, and internationalization support.
The package is intended for OpenStack developers and operators who need to customize request/response handling in their applications. It abstracts away boilerplate WSGI middleware code and provides hooks for common operations. With support for Python 3.11 through 3.14 and an active maintenance status, it is suitable for modern OpenStack deployments. The library depends on WebOb for HTTP request/response objects and stevedore for plugin management.
Use it for
- Add custom HTTP headers or modify existing ones in requests and responses across an OpenStack application.
- Implement request/response logging, timing, or metrics collection via the statsd dependency.
- Enforce connection limits or request size restrictions at the middleware layer.
- Integrate authentication or authorization checks into the request pipeline.
- Localize or internationalize responses using oslo.i18n integration.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are developing or operating an OpenStack application and need to customize request/response handling.
The low install friction, active maintenance, permissive license, and tight integration with Oslo libraries make it a natural fit for OpenStack deployments. Not necessary for non-OpenStack WSGI applications, where other middleware libraries may be more appropriate.
Install
oslo-middleware on PyPI
Before you install
Low install friction with a pure-Python wheel distribution. Actively maintained with a release 35 days ago. Depends on 11 runtime packages including oslo.config, oslo.context, and WebOb—all standard OpenStack ecosystem libraries.
Requires Python 3.11 or later; designed for integration into WSGI application pipelines, not standalone use.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions, making it suitable for proprietary OpenStack deployments.
Quickstart
pip install oslo.middleware
from oslo_middleware import base
class CustomMiddleware(base.ConfigurableMiddleware):
def process_request(self, req):
# Intercept and modify request
return req
def process_response(self, response):
# Intercept and modify response
return response
Verify before relying
- Whether the package includes pre-built middleware for common tasks (e.g., CORS, rate limiting) beyond the base class.
- Performance characteristics when handling high request volumes or large payloads.
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.11 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 11 packagesbcryptJinja2oslo.configoslo.contextoslo.i18noslo.utilspbrstatsdstevedoretyping-extensionsWebOb |
| Maintenance | Actively maintained 35 days since the last release |
| First released | |
| Downloads | 382,642 / month, #7,085 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Environment :: OpenStackIntended Audience :: Information TechnologyIntended Audience :: System AdministratorsOperating System :: POSIX :: LinuxProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonTyping :: Typed |
Evidence: oslo_middleware-8.2.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 › “WSGI middleware components”
- oslo.middlewareoslo.middleware provides WSGI middleware components for intercepting…
- PastePaste provides WSGI middleware components for building web…
- static3Serves static and templated content over WSGI, with optional gzip…
Give your agent the search over MCP, or paste the wish link into any chat.
More WWW/HTTP packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
HTTPX is a fully featured HTTP client library for Python that provides both sync and async APIs, with support for HTTP/1.1 and HTTP/2, plus an integrated command-line client.
Install it if you are building new projects or modernizing existing ones that rely on HTTP.
A minimal low-level HTTP client library that sends HTTP requests with thread-safe and task-safe connection pooling, supporting HTTP/1.1, HTTP/2, proxies, and both sync and async interfaces.
aiohttp is an async HTTP client and server framework built on asyncio, supporting both WebSockets and middleware-based routing for building concurrent web applications.
Install it if you need async HTTP client or server capabilities in asyncio-based applications.
See also microversion-parse · oslo.context · oslo.policy · oslo.service · oslo.utils · oslo.limit · oslo.vmware · oslo.concurrency · keystonemiddleware · oslo.messaging