{"library":"starlette-compress","title":"Starlette Compress","type":"library","description":"Starlette Compress is a fast and simple ASGI middleware for Starlette and FastAPI applications that provides response compression. It supports Zstandard (Zstd), Brotli, and GZip algorithms and offers more sensible defaults compared to Starlette's built-in GZipMiddleware. Currently at version 1.7.0, the library is actively maintained and aims for semantic versioning compliance.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install starlette-compress"],"cli":null},"imports":["from starlette_compress import CompressMiddleware"],"auth":{"required":false,"env_vars":[]},"links":{"homepage":null,"github":"https://github.com/Zaczero/pkgs","docs":null,"changelog":null,"pypi":"https://pypi.org/project/starlette-compress/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null},"quickstart":{"code":"from starlette.applications import Starlette\nfrom starlette.middleware import Middleware\nfrom starlette.responses import PlainTextResponse\nfrom starlette.routing import Route\nfrom starlette_compress import CompressMiddleware\n\nasync def homepage(request):\n    return PlainTextResponse(\"This is a sample response that will be compressed if larger than 500 bytes.\")\n\nroutes = [\n    Route(\"/\", endpoint=homepage),\n]\n\nmiddleware = [\n    Middleware(CompressMiddleware, minimum_size=100) # Set a lower minimum_size for demonstration\n]\n\napp = Starlette(routes=routes, middleware=middleware)\n\n# To run this example, save it as app.py and execute: uvicorn app:app --port 8000\n# Then test with curl -H \"Accept-Encoding: gzip, deflate, br, zstd\" http://localhost:8000/","lang":"python","description":"This example demonstrates how to integrate `CompressMiddleware` into a Starlette application. The middleware automatically compresses responses based on the client's `Accept-Encoding` header, provided the response meets the minimum size requirement.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"1.7.1","pypi_latest":"1.7.1","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.5,"avg_import_s":0.28,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"starlette-compress","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.19,"mem_mb":6.6,"disk_size":"39.2M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"starlette-compress","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.5,"import_time_s":0.14,"mem_mb":6.6,"disk_size":"49M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"starlette-compress","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.3,"mem_mb":7.8,"disk_size":"41.4M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"starlette-compress","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.5,"import_time_s":0.28,"mem_mb":7.8,"disk_size":"51M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"starlette-compress","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.51,"mem_mb":10.2,"disk_size":"33.1M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"starlette-compress","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.2,"import_time_s":0.5,"mem_mb":10.2,"disk_size":"43M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"starlette-compress","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.23,"mem_mb":6.5,"disk_size":"32.5M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"starlette-compress","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.2,"import_time_s":0.22,"mem_mb":6.5,"disk_size":"42M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"starlette-compress","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.19,"mem_mb":6.5,"disk_size":"38.6M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"starlette-compress","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.9,"import_time_s":0.2,"mem_mb":6.5,"disk_size":"49M"}]}}