{"library":"quart-cors","title":"Quart-CORS","description":"Quart-CORS is an extension for Quart, an async Python web application framework, designed to provide Cross-Origin Resource Sharing (CORS) access control support. It simplifies the process of adding necessary CORS headers to your Quart application or specific routes and WebSockets. The library is actively maintained, with its current version being 0.8.0, and receives regular updates to keep pace with Quart and web standards.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install quart-cors"],"cli":null},"imports":["from quart_cors import cors","from quart_cors import route_cors","from quart_cors import websocket_cors","from quart_cors import cors_exempt"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from quart import Quart, request\nfrom quart_cors import cors, route_cors\n\napp = Quart(__name__)\n\n# Apply CORS to the entire application, allowing all origins\n# For production, specify allowed origins instead of '*'\napp = cors(app, allow_origin='*')\n\n@app.route('/')\nasync def hello():\n    return 'Hello, Quart-CORS!'\n\n@app.route('/api/data', methods=['GET', 'POST'])\n@route_cors(allow_origin='https://example.com', allow_methods=['GET', 'POST'], allow_headers=['Content-Type'])\nasync def api_data():\n    if request.method == 'GET':\n        return {'message': 'This is your data!'}\n    elif request.method == 'POST':\n        data = await request.get_json()\n        return {'received': data, 'message': 'Data posted successfully!'}\n\nif __name__ == '__main__':\n    app.run()","lang":"python","description":"This quickstart demonstrates how to initialize a Quart application and apply CORS globally using `cors(app, allow_origin='*')`. It also shows how to use the `route_cors` decorator to apply more specific CORS rules to an individual API endpoint, allowing GET and POST requests from a specific origin with custom headers. Remember to replace `allow_origin='*'` with specific origins in production for security.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"0.8.0","pypi_latest":"0.8.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.9,"avg_import_s":1.5,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"quart-cors","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":2.02,"mem_mb":20.9,"disk_size":"26.4M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"quart-cors","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.9,"import_time_s":2.2,"mem_mb":20.9,"disk_size":"27M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"quart-cors","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.56,"mem_mb":23.2,"disk_size":"28.7M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"quart-cors","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.8,"import_time_s":1.35,"mem_mb":23.2,"disk_size":"29M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"quart-cors","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.63,"mem_mb":23.4,"disk_size":"20.3M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"quart-cors","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.5,"import_time_s":1.55,"mem_mb":23.4,"disk_size":"21M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"quart-cors","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.56,"mem_mb":25.1,"disk_size":"20.0M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"quart-cors","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.6,"import_time_s":1.5,"mem_mb":25.1,"disk_size":"21M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"quart-cors","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.87,"mem_mb":18.2,"disk_size":"25.8M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"quart-cors","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.5,"import_time_s":0.79,"mem_mb":18.2,"disk_size":"26M"}]}}