gitextract_ti_vnsti/ ├── .github/ │ ├── DISCUSSION_TEMPLATE/ │ │ ├── issue-triage.yml │ │ └── question.yml │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── config.yml │ │ └── preapproved.md │ ├── dependabot.yml │ └── workflows/ │ ├── docker-integration.yml │ ├── docker-publish.yml │ ├── docs.yml │ ├── embedding-integration.yml │ ├── freebsd.yml │ ├── lint.yml │ └── tox.yml ├── .gitignore ├── .pylintrc ├── CONTRIBUTING.md ├── LICENSE ├── MAINTAINERS ├── MANIFEST.in ├── Makefile ├── NOTICE ├── README.md ├── SECURITY.md ├── THANKS ├── appveyor.yml ├── benchmarks/ │ ├── baseline.json │ ├── dirty_bench_app.py │ ├── dirty_bench_gunicorn.py │ ├── dirty_bench_wsgi.py │ ├── dirty_benchmark.py │ ├── dirty_streaming.py │ ├── quick_bench.sh │ ├── results/ │ │ └── queue_refactor_results.json │ ├── run_benchmark.py │ └── simple_app.py ├── docker/ │ ├── .dockerignore │ ├── Dockerfile │ └── docker-entrypoint.sh ├── docs/ │ ├── README.md │ ├── content/ │ │ ├── 2010-news.md │ │ ├── 2011-news.md │ │ ├── 2012-news.md │ │ ├── 2013-news.md │ │ ├── 2014-news.md │ │ ├── 2015-news.md │ │ ├── 2016-news.md │ │ ├── 2017-news.md │ │ ├── 2018-news.md │ │ ├── 2019-news.md │ │ ├── 2020-news.md │ │ ├── 2021-news.md │ │ ├── 2023-news.md │ │ ├── 2024-news.md │ │ ├── 2026-news.md │ │ ├── 404.md │ │ ├── CNAME │ │ ├── asgi.md │ │ ├── assets/ │ │ │ ├── javascripts/ │ │ │ │ └── toc-collapse.js │ │ │ └── stylesheets/ │ │ │ └── home.css │ │ ├── community.md │ │ ├── configure.md │ │ ├── custom.md │ │ ├── deploy.md │ │ ├── design.md │ │ ├── dirty.md │ │ ├── faq.md │ │ ├── guides/ │ │ │ ├── docker.md │ │ │ ├── gunicornc.md │ │ │ └── http2.md │ │ ├── index.md │ │ ├── install.md │ │ ├── instrumentation.md │ │ ├── news.md │ │ ├── quickstart.md │ │ ├── reference/ │ │ │ └── settings.md │ │ ├── run.md │ │ ├── signals.md │ │ ├── sponsor.md │ │ ├── styles/ │ │ │ └── overrides.css │ │ └── uwsgi.md │ └── macros.py ├── examples/ │ ├── alt_spec.py │ ├── asgi/ │ │ ├── __init__.py │ │ ├── basic_app.py │ │ └── websocket_app.py │ ├── bad.py │ ├── boot_fail.py │ ├── celery_alternative/ │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── app.py │ │ ├── docker-compose.yml │ │ ├── gunicorn_conf.py │ │ ├── requirements.txt │ │ ├── run_tests.sh │ │ ├── tasks.py │ │ └── tests/ │ │ ├── __init__.py │ │ ├── conftest.py │ │ ├── test_integration.py │ │ └── test_tasks.py │ ├── deep/ │ │ ├── __init__.py │ │ └── test.py │ ├── dirty_example/ │ │ ├── Dockerfile │ │ ├── __init__.py │ │ ├── dirty_app.py │ │ ├── docker-compose.yml │ │ ├── gunicorn_conf.py │ │ ├── test_dirty_app.py │ │ ├── test_integration.py │ │ ├── test_protocol.py │ │ ├── test_stash_integration.py │ │ ├── test_worker_integration.py │ │ └── wsgi_app.py │ ├── echo.py │ ├── embedding_service/ │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── __init__.py │ │ ├── docker-compose.yml │ │ ├── embedding_app.py │ │ ├── gunicorn_conf.py │ │ ├── main.py │ │ ├── requirements.txt │ │ └── test_embedding.py │ ├── example_config.py │ ├── frameworks/ │ │ ├── cherryapp.py │ │ ├── django/ │ │ │ ├── README │ │ │ └── testing/ │ │ │ ├── manage.py │ │ │ └── testing/ │ │ │ ├── __init__.py │ │ │ ├── apps/ │ │ │ │ ├── __init__.py │ │ │ │ └── someapp/ │ │ │ │ ├── __init__.py │ │ │ │ ├── middleware.py │ │ │ │ ├── models.py │ │ │ │ ├── templates/ │ │ │ │ │ ├── base.html │ │ │ │ │ └── home.html │ │ │ │ ├── tests.py │ │ │ │ ├── urls.py │ │ │ │ └── views.py │ │ │ ├── settings.py │ │ │ ├── urls.py │ │ │ └── wsgi.py │ │ ├── flask_sendfile.py │ │ ├── flaskapp.py │ │ ├── flaskapp_aiohttp_wsgi.py │ │ ├── pyramidapp.py │ │ ├── requirements.txt │ │ ├── requirements_cherryapp.txt │ │ ├── requirements_flaskapp.txt │ │ ├── requirements_pyramidapp.txt │ │ ├── requirements_tornadoapp.txt │ │ ├── requirements_webpyapp.txt │ │ ├── tornadoapp.py │ │ └── webpyapp.py │ ├── gunicorn_rc │ ├── hello.txt │ ├── http2_features/ │ │ ├── Dockerfile │ │ ├── __init__.py │ │ ├── docker-compose.yml │ │ ├── gunicorn_conf.py │ │ ├── http2_app.py │ │ ├── requirements.txt │ │ └── test_http2.py │ ├── http2_gevent/ │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── app.py │ │ ├── docker-compose.yml │ │ ├── generate_certs.sh │ │ ├── gunicorn_conf.py │ │ └── test_http2_gevent.py │ ├── log_app.ini │ ├── log_app.py │ ├── logging.conf │ ├── longpoll.py │ ├── multiapp.py │ ├── multidomainapp.py │ ├── nginx.conf │ ├── read_django_settings.py │ ├── readline_app.py │ ├── sendfile.py │ ├── server.crt │ ├── server.key │ ├── slowclient.py │ ├── standalone_app.py │ ├── streaming_chat/ │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── __init__.py │ │ ├── chat_app.py │ │ ├── demo_capture.txt │ │ ├── docker-compose.yml │ │ ├── gunicorn_conf.py │ │ ├── main.py │ │ ├── requirements.txt │ │ └── test_streaming.py │ ├── supervisor.conf │ ├── test.py │ ├── timeout.py │ ├── websocket/ │ │ ├── gevent_websocket.py │ │ └── websocket.html │ └── when_ready.conf.py ├── gunicorn/ │ ├── __init__.py │ ├── __main__.py │ ├── app/ │ │ ├── __init__.py │ │ ├── base.py │ │ ├── pasterapp.py │ │ └── wsgiapp.py │ ├── arbiter.py │ ├── asgi/ │ │ ├── __init__.py │ │ ├── lifespan.py │ │ ├── message.py │ │ ├── protocol.py │ │ ├── unreader.py │ │ ├── uwsgi.py │ │ └── websocket.py │ ├── config.py │ ├── ctl/ │ │ ├── __init__.py │ │ ├── cli.py │ │ ├── client.py │ │ ├── handlers.py │ │ ├── protocol.py │ │ └── server.py │ ├── debug.py │ ├── dirty/ │ │ ├── __init__.py │ │ ├── app.py │ │ ├── arbiter.py │ │ ├── client.py │ │ ├── errors.py │ │ ├── protocol.py │ │ ├── stash.py │ │ ├── tlv.py │ │ └── worker.py │ ├── errors.py │ ├── glogging.py │ ├── http/ │ │ ├── __init__.py │ │ ├── body.py │ │ ├── errors.py │ │ ├── message.py │ │ ├── parser.py │ │ ├── unreader.py │ │ └── wsgi.py │ ├── http2/ │ │ ├── __init__.py │ │ ├── async_connection.py │ │ ├── connection.py │ │ ├── errors.py │ │ ├── request.py │ │ └── stream.py │ ├── instrument/ │ │ ├── __init__.py │ │ └── statsd.py │ ├── pidfile.py │ ├── reloader.py │ ├── sock.py │ ├── systemd.py │ ├── util.py │ ├── uwsgi/ │ │ ├── __init__.py │ │ ├── errors.py │ │ ├── message.py │ │ └── parser.py │ └── workers/ │ ├── __init__.py │ ├── base.py │ ├── base_async.py │ ├── gasgi.py │ ├── geventlet.py │ ├── ggevent.py │ ├── gthread.py │ ├── gtornado.py │ ├── sync.py │ └── workertmp.py ├── mkdocs.yml ├── overrides/ │ └── home.html ├── pyproject.toml ├── requirements_dev.txt ├── requirements_test.txt ├── scripts/ │ ├── build_settings_doc.py │ └── update_thanks.py ├── tests/ │ ├── config/ │ │ ├── __init__.py │ │ ├── test_cfg.py │ │ ├── test_cfg_alt.py │ │ └── test_cfg_with_wsgi_app.py │ ├── conftest.py │ ├── ctl/ │ │ ├── __init__.py │ │ ├── test_client.py │ │ ├── test_handlers.py │ │ ├── test_protocol.py │ │ └── test_server.py │ ├── dirty/ │ │ ├── __init__.py │ │ ├── test_arbiter_signals.py │ │ ├── test_arbiter_streaming.py │ │ ├── test_client_streaming.py │ │ ├── test_client_streaming_async.py │ │ ├── test_multi_app_routing.py │ │ ├── test_per_app_worker_allocation.py │ │ ├── test_streaming_integration.py │ │ └── test_worker_streaming.py │ ├── docker/ │ │ ├── __init__.py │ │ ├── asgi/ │ │ │ ├── Dockerfile │ │ │ ├── app.py │ │ │ ├── docker-compose.yml │ │ │ └── test_asgi.sh │ │ ├── asgi_compliance/ │ │ │ ├── Dockerfile.gunicorn │ │ │ ├── Dockerfile.nginx │ │ │ ├── __init__.py │ │ │ ├── apps/ │ │ │ │ ├── __init__.py │ │ │ │ ├── framework_apps.py │ │ │ │ ├── http_app.py │ │ │ │ ├── lifespan_app.py │ │ │ │ ├── main_app.py │ │ │ │ ├── streaming_app.py │ │ │ │ └── websocket_app.py │ │ │ ├── certs/ │ │ │ │ ├── server.crt │ │ │ │ └── server.key │ │ │ ├── conftest.py │ │ │ ├── docker-compose.yml │ │ │ ├── nginx.conf │ │ │ ├── test_concurrency.py │ │ │ ├── test_framework_integration.py │ │ │ ├── test_http2_asgi.py │ │ │ ├── test_http_compliance.py │ │ │ ├── test_lifespan_compliance.py │ │ │ ├── test_streaming_compliance.py │ │ │ └── test_websocket_compliance.py │ │ ├── dirty_arbiter/ │ │ │ ├── Dockerfile │ │ │ ├── README.md │ │ │ ├── app.py │ │ │ ├── docker-compose.yml │ │ │ ├── gunicorn_conf.py │ │ │ └── test_parent_death.py │ │ ├── dirty_ttin_ttou/ │ │ │ ├── Dockerfile │ │ │ ├── __init__.py │ │ │ ├── app.py │ │ │ ├── docker-compose.yml │ │ │ ├── gunicorn_conf.py │ │ │ └── test_ttin_ttou_docker.py │ │ ├── http2/ │ │ │ ├── Dockerfile.gunicorn │ │ │ ├── Dockerfile.nginx │ │ │ ├── README.rst │ │ │ ├── __init__.py │ │ │ ├── app.py │ │ │ ├── certs/ │ │ │ │ ├── .gitkeep │ │ │ │ ├── server.crt │ │ │ │ └── server.key │ │ │ ├── conftest.py │ │ │ ├── docker-compose.yml │ │ │ ├── nginx.conf │ │ │ └── test_http2_docker.py │ │ ├── per_app_allocation/ │ │ │ ├── Dockerfile │ │ │ ├── README.md │ │ │ ├── app.py │ │ │ ├── docker-compose.yml │ │ │ ├── gunicorn_conf.py │ │ │ └── test_per_app_e2e.py │ │ ├── test_asgi_uwsgi/ │ │ │ ├── Dockerfile │ │ │ ├── app.py │ │ │ ├── docker-compose.yml │ │ │ ├── nginx.conf │ │ │ └── test_uwsgi.sh │ │ └── uwsgi/ │ │ ├── Dockerfile.gunicorn │ │ ├── Dockerfile.nginx │ │ ├── README.md │ │ ├── app.py │ │ ├── conftest.py │ │ ├── docker-compose.yml │ │ ├── nginx.conf │ │ ├── test_uwsgi_integration.py │ │ └── uwsgi_params │ ├── requests/ │ │ ├── invalid/ │ │ │ ├── 001.http │ │ │ ├── 001.py │ │ │ ├── 002.http │ │ │ ├── 002.py │ │ │ ├── 003.http │ │ │ ├── 003.py │ │ │ ├── 003b.http │ │ │ ├── 003b.py │ │ │ ├── 003c.http │ │ │ ├── 003c.py │ │ │ ├── 004.http │ │ │ ├── 004.py │ │ │ ├── 005.http │ │ │ ├── 005.py │ │ │ ├── 006.http │ │ │ ├── 006.py │ │ │ ├── 007.http │ │ │ ├── 007.py │ │ │ ├── 008.http │ │ │ ├── 008.py │ │ │ ├── 009.http │ │ │ ├── 009.py │ │ │ ├── 010.http │ │ │ ├── 010.py │ │ │ ├── 011.http │ │ │ ├── 011.py │ │ │ ├── 012.http │ │ │ ├── 012.py │ │ │ ├── 013.http │ │ │ ├── 013.py │ │ │ ├── 014.http │ │ │ ├── 014.py │ │ │ ├── 015.http │ │ │ ├── 015.py │ │ │ ├── 016.http │ │ │ ├── 016.py │ │ │ ├── 017.http │ │ │ ├── 017.py │ │ │ ├── 018.http │ │ │ ├── 018.py │ │ │ ├── 019.http │ │ │ ├── 019.py │ │ │ ├── 020.http │ │ │ ├── 020.py │ │ │ ├── 021.http │ │ │ ├── 021.py │ │ │ ├── 022.http │ │ │ ├── 022.py │ │ │ ├── 023.http │ │ │ ├── 023.py │ │ │ ├── 024.http │ │ │ ├── 024.py │ │ │ ├── 040.http │ │ │ ├── 040.py │ │ │ ├── chunked_01.http │ │ │ ├── chunked_01.py │ │ │ ├── chunked_02.http │ │ │ ├── chunked_02.py │ │ │ ├── chunked_03.http │ │ │ ├── chunked_03.py │ │ │ ├── chunked_04.http │ │ │ ├── chunked_04.py │ │ │ ├── chunked_05.http │ │ │ ├── chunked_05.py │ │ │ ├── chunked_06.http │ │ │ ├── chunked_06.py │ │ │ ├── chunked_07.http │ │ │ ├── chunked_07.py │ │ │ ├── chunked_08.http │ │ │ ├── chunked_08.py │ │ │ ├── chunked_09.http │ │ │ ├── chunked_09.py │ │ │ ├── chunked_10.http │ │ │ ├── chunked_10.py │ │ │ ├── chunked_11.http │ │ │ ├── chunked_11.py │ │ │ ├── chunked_12.http │ │ │ ├── chunked_12.py │ │ │ ├── chunked_13.http │ │ │ ├── chunked_13.py │ │ │ ├── invalid_field_value_01.http │ │ │ ├── invalid_field_value_01.py │ │ │ ├── nonascii_01.http │ │ │ ├── nonascii_01.py │ │ │ ├── nonascii_02.http │ │ │ ├── nonascii_02.py │ │ │ ├── nonascii_03.http │ │ │ ├── nonascii_03.py │ │ │ ├── nonascii_04.http │ │ │ ├── nonascii_04.py │ │ │ ├── obs_fold_01.http │ │ │ ├── obs_fold_01.py │ │ │ ├── pp_01.http │ │ │ ├── pp_01.py │ │ │ ├── pp_02.http │ │ │ ├── pp_02.py │ │ │ ├── prefix_01.http │ │ │ ├── prefix_01.py │ │ │ ├── prefix_02.http │ │ │ ├── prefix_02.py │ │ │ ├── prefix_03.http │ │ │ ├── prefix_03.py │ │ │ ├── prefix_04.http │ │ │ ├── prefix_04.py │ │ │ ├── prefix_05.http │ │ │ ├── prefix_05.py │ │ │ ├── prefix_06.http │ │ │ ├── prefix_06.py │ │ │ ├── version_01.http │ │ │ ├── version_01.py │ │ │ ├── version_02.http │ │ │ └── version_02.py │ │ └── valid/ │ │ ├── 001.http │ │ ├── 001.py │ │ ├── 002.http │ │ ├── 002.py │ │ ├── 003.http │ │ ├── 003.py │ │ ├── 004.http │ │ ├── 004.py │ │ ├── 005.http │ │ ├── 005.py │ │ ├── 006.http │ │ ├── 006.py │ │ ├── 007.http │ │ ├── 007.py │ │ ├── 008.http │ │ ├── 008.py │ │ ├── 009.http │ │ ├── 009.py │ │ ├── 010.http │ │ ├── 010.py │ │ ├── 011.http │ │ ├── 011.py │ │ ├── 012.http │ │ ├── 012.py │ │ ├── 013.http │ │ ├── 013.py │ │ ├── 014.http │ │ ├── 014.py │ │ ├── 015.http │ │ ├── 015.py │ │ ├── 017.http │ │ ├── 017.py │ │ ├── 018.http │ │ ├── 018.py │ │ ├── 019.http │ │ ├── 019.py │ │ ├── 020.http │ │ ├── 020.py │ │ ├── 021.http │ │ ├── 021.py │ │ ├── 022.http │ │ ├── 022.py │ │ ├── 023.http │ │ ├── 023.py │ │ ├── 024.http │ │ ├── 024.py │ │ ├── 025.http │ │ ├── 025.py │ │ ├── 025_line.http │ │ ├── 025_line.py │ │ ├── 026.http │ │ ├── 026.py │ │ ├── 027.http │ │ ├── 027.py │ │ ├── 028.http │ │ ├── 028.py │ │ ├── 029.http │ │ ├── 029.py │ │ ├── 030.http │ │ ├── 030.py │ │ ├── 031.http │ │ ├── 031.py │ │ ├── 031compat.http │ │ ├── 031compat.py │ │ ├── 031compat2.http │ │ ├── 031compat2.py │ │ ├── 040.http │ │ ├── 040.py │ │ ├── 040_compat.http │ │ ├── 040_compat.py │ │ ├── 099.http │ │ ├── 099.py │ │ ├── 100.http │ │ ├── 100.py │ │ ├── compat_obs_fold.http │ │ ├── compat_obs_fold.py │ │ ├── compat_obs_fold_huge.http │ │ ├── compat_obs_fold_huge.py │ │ ├── padding_01.http │ │ ├── padding_01.py │ │ ├── pp_01.http │ │ ├── pp_01.py │ │ ├── pp_02.http │ │ ├── pp_02.py │ │ ├── pp_03.http │ │ ├── pp_03.py │ │ ├── pp_04.http │ │ ├── pp_04.py │ │ ├── pp_05.http │ │ └── pp_05.py │ ├── support.py │ ├── support_dirty_app.py │ ├── support_dirty_apps.py │ ├── t.py │ ├── test_arbiter.py │ ├── test_asgi.py │ ├── test_asgi_compliance.py │ ├── test_asgi_disconnect.py │ ├── test_asgi_http_scope.py │ ├── test_asgi_parser.py │ ├── test_asgi_streaming.py │ ├── test_asgi_uwsgi.py │ ├── test_asgi_websocket_protocol.py │ ├── test_asgi_worker.py │ ├── test_config.py │ ├── test_control_socket_integration.py │ ├── test_dirty_app.py │ ├── test_dirty_arbiter.py │ ├── test_dirty_client.py │ ├── test_dirty_config.py │ ├── test_dirty_errors.py │ ├── test_dirty_hooks.py │ ├── test_dirty_integration.py │ ├── test_dirty_protocol.py │ ├── test_dirty_stash.py │ ├── test_dirty_tlv.py │ ├── test_dirty_worker.py │ ├── test_early_hints.py │ ├── test_gthread.py │ ├── test_gtornado.py │ ├── test_http.py │ ├── test_http2_alpn.py │ ├── test_http2_async_connection.py │ ├── test_http2_config.py │ ├── test_http2_connection.py │ ├── test_http2_errors.py │ ├── test_http2_integration.py │ ├── test_http2_request.py │ ├── test_http2_stream.py │ ├── test_invalid_requests.py │ ├── test_logger.py │ ├── test_pidfile.py │ ├── test_reload.py │ ├── test_signal_integration.py │ ├── test_sock.py │ ├── test_ssl.py │ ├── test_statsd.py │ ├── test_systemd.py │ ├── test_util.py │ ├── test_uwsgi.py │ ├── test_valid_requests.py │ ├── treq.py │ └── workers/ │ ├── __init__.py │ ├── test_gevent_import_order.py │ ├── test_geventlet.py │ └── test_ggevent.py └── tox.ini