whitenoise
Radically simplified static file serving for WSGI applications
Decision gist · record as of 2026-08-14
Yes. WhiteNoise is production-stable, actively maintained, has zero security vulnerabilities, requires no external dependencies, and solves a common deployment pain point. Install it if you are deploying a WSGI or Django application to a managed platform or containerized environment where you want static files bundled with the app.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later; application must be WSGI-compatible.
- Low install friction with no runtime dependencies.
- Actively maintained as of 2026-02-27 with recent commits, and marked Production/Stable.
License · maintenance · safety
MIT (permissive) — MIT license permits commercial and private use with minimal restrictions—straightforward permissive terms suitable for most projects.
last release 2026-02-27 (168 days) · last repo commit 2026-08-13 · 2,758 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 16,674,728 downloads/mo, #1,143 on PyPI
Alternatives
Verify before relying
pip install whitenoise==6.12.0
from whitenoise import WhiteNoise
app = WhiteNoise(application, root='staticfiles')- Performance comparison with dedicated static file servers under high traffic loads.
- Specific CDN integration patterns and recommended configurations.
- Exact performance characteristics when serving compressed content formats.
What it is and what it does
WhiteNoise is a WSGI middleware that allows Python web applications to serve their own static files without relying on external services like nginx or Amazon S3. It wraps any WSGI-compatible application and intercepts requests for static assets, handling them efficiently within the application itself. This makes deployments simpler and more self-contained, particularly valuable on Platform-as-a-Service providers where external services may be unavailable or costly.
The package automates several static-file best practices: it compresses responses using gzip and Brotli formats with proper Accept-Encoding and Vary header handling, sets far-future cache headers on immutable content, and includes special auto-configuration for Django applications. It is designed to work alongside CDNs for high-traffic sites, so adopting it does not sacrifice performance for simplicity.
Use it for
- Deploy a Django app to Heroku or OpenShift without configuring external static file storage.
- Serve CSS, JavaScript, and images from a containerized Python application without nginx.
- Simplify local development by eliminating separate static file server setup.
- Reduce deployment complexity for small-to-medium traffic sites by bundling static serving.
- Enable gzip and Brotli compression of static assets with automatic header management.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
WhiteNoise is production-stable, actively maintained, has zero security vulnerabilities, requires no external dependencies, and solves a common deployment pain point. Install it if you are deploying a WSGI or Django application to a managed platform or containerized environment where you want static files bundled with the app.
Install
whitenoise on PyPI
Before you install
Low install friction with no runtime dependencies. Actively maintained as of 2026-02-27 with recent commits, and marked Production/Stable.
Requires Python 3.10 or later; application must be WSGI-compatible.
License in practice
MIT license permits commercial and private use with minimal restrictions—straightforward permissive terms suitable for most projects.
Quickstart
pip install whitenoise==6.12.0
from whitenoise import WhiteNoise
app = WhiteNoise(application, root='staticfiles')
Verify before relying
- Performance comparison with dedicated static file servers under high traffic loads.
- Specific CDN integration patterns and recommended configurations.
- Exact performance characteristics when serving compressed content formats.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 168 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 16,674,728 / month, #1,143 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/StableFramework :: DjangoFramework :: Django :: 4.2Framework :: Django :: 5.0Framework :: Django :: 5.1Framework :: Django :: 5.2Framework :: Django :: 6.0Intended Audience :: DevelopersOperating 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 :: Implementation :: CPythonTopic :: Internet :: WWW/HTTP :: WSGI :: MiddlewareTyping :: Typed |
Evidence: whitenoise-6.12.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 › “django static files middleware”
- whitenoiseWhiteNoise serves static files directly from a Python WSGI…
- servestaticServeStatic serves static files efficiently from Python ASGI/WSGI…
- django-htmlminMinifies HTML by removing whitespace and comments, reducing response…
Give your agent the search over MCP, or paste the wish link into any chat.
More Middleware packages
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.
Bottle is a lightweight WSGI microframework for building web applications in Python, providing routing, templating, and HTTP utilities with no external dependencies beyond the standard library.
WebOb provides request and response objects that wrap WSGI environments, offering convenient parsing and construction of HTTP requests and responses.
Install it if you're building or working with WSGI applications and need convenient request/response handling—it's a standard choice in the Python web ecosystem.
A lightweight LRU (least recently used) cache implementation that evicts infrequently accessed keys and values to manage memory automatically.
Install it if you need a simple, lightweight LRU cache without the overhead of external dependencies or more complex caching frameworks.
PasteDeploy loads and configures WSGI applications and servers from URI-based configuration files, allowing you to compose web applications declaratively.
However, if you are starting a new project, verify whether your chosen web framework or deployment tool has a more modern alternative, as this package reflects older…
Paste provides WSGI middleware components for building web applications, including request/response utilities, authentication, sessions, error handling, and debugging tools.
See also django-heroku · servestatic · dj-static · static3 · Flask-Compress · starlette-compress · starlette-cramjam · zappa