tigrcorn 0.3.9__tar.gz → 0.3.16.dev5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (695) hide show
  1. tigrcorn-0.3.16.dev5/PKG-INFO +933 -0
  2. tigrcorn-0.3.16.dev5/README.md +696 -0
  3. tigrcorn-0.3.16.dev5/pyproject.toml +138 -0
  4. tigrcorn-0.3.16.dev5/src/tigrcorn/__init__.py +46 -0
  5. tigrcorn-0.3.16.dev5/src/tigrcorn/_workspace.py +15 -0
  6. tigrcorn-0.3.16.dev5/src/tigrcorn/api.py +7 -0
  7. tigrcorn-0.3.16.dev5/src/tigrcorn/app_interfaces.py +7 -0
  8. tigrcorn-0.3.16.dev5/src/tigrcorn/asgi/__init__.py +12 -0
  9. tigrcorn-0.3.16.dev5/src/tigrcorn/asgi/connection.py +7 -0
  10. tigrcorn-0.3.16.dev5/src/tigrcorn/asgi/errors.py +7 -0
  11. tigrcorn-0.3.16.dev5/src/tigrcorn/asgi/events/__init__.py +12 -0
  12. tigrcorn-0.3.16.dev5/src/tigrcorn/asgi/events/custom.py +7 -0
  13. tigrcorn-0.3.16.dev5/src/tigrcorn/asgi/events/http.py +7 -0
  14. tigrcorn-0.3.16.dev5/src/tigrcorn/asgi/events/lifespan.py +7 -0
  15. tigrcorn-0.3.16.dev5/src/tigrcorn/asgi/events/websocket.py +7 -0
  16. tigrcorn-0.3.16.dev5/src/tigrcorn/asgi/extensions/__init__.py +12 -0
  17. tigrcorn-0.3.16.dev5/src/tigrcorn/asgi/extensions/tls.py +7 -0
  18. tigrcorn-0.3.16.dev5/src/tigrcorn/asgi/extensions/websocket_denial.py +7 -0
  19. tigrcorn-0.3.16.dev5/src/tigrcorn/asgi/receive.py +7 -0
  20. tigrcorn-0.3.16.dev5/src/tigrcorn/asgi/scopes/__init__.py +12 -0
  21. tigrcorn-0.3.16.dev5/src/tigrcorn/asgi/scopes/custom.py +7 -0
  22. tigrcorn-0.3.16.dev5/src/tigrcorn/asgi/scopes/http.py +7 -0
  23. tigrcorn-0.3.16.dev5/src/tigrcorn/asgi/scopes/lifespan.py +7 -0
  24. tigrcorn-0.3.16.dev5/src/tigrcorn/asgi/scopes/websocket.py +7 -0
  25. tigrcorn-0.3.16.dev5/src/tigrcorn/asgi/send.py +7 -0
  26. tigrcorn-0.3.16.dev5/src/tigrcorn/asgi/state.py +7 -0
  27. tigrcorn-0.3.16.dev5/src/tigrcorn/availability.py +7 -0
  28. tigrcorn-0.3.16.dev5/src/tigrcorn/cli.py +7 -0
  29. tigrcorn-0.3.16.dev5/src/tigrcorn/compat/__init__.py +12 -0
  30. tigrcorn-0.3.16.dev5/src/tigrcorn/compat/aioquic_preflight.py +7 -0
  31. tigrcorn-0.3.16.dev5/src/tigrcorn/compat/asgi3.py +7 -0
  32. tigrcorn-0.3.16.dev5/src/tigrcorn/compat/certification_env.py +7 -0
  33. tigrcorn-0.3.16.dev5/src/tigrcorn/compat/conformance.py +7 -0
  34. tigrcorn-0.3.16.dev5/src/tigrcorn/compat/hypercorn.py +7 -0
  35. tigrcorn-0.3.16.dev5/src/tigrcorn/compat/interop.py +7 -0
  36. tigrcorn-0.3.16.dev5/src/tigrcorn/compat/interop_capture.py +7 -0
  37. tigrcorn-0.3.16.dev5/src/tigrcorn/compat/interop_cli.py +7 -0
  38. tigrcorn-0.3.16.dev5/src/tigrcorn/compat/interop_runner.py +7 -0
  39. tigrcorn-0.3.16.dev5/src/tigrcorn/compat/perf_runner.py +7 -0
  40. tigrcorn-0.3.16.dev5/src/tigrcorn/compat/release_gates.py +7 -0
  41. tigrcorn-0.3.16.dev5/src/tigrcorn/compat/uvicorn.py +7 -0
  42. tigrcorn-0.3.16.dev5/src/tigrcorn/config/__init__.py +12 -0
  43. tigrcorn-0.3.16.dev5/src/tigrcorn/config/audit.py +7 -0
  44. tigrcorn-0.3.16.dev5/src/tigrcorn/config/defaults.py +7 -0
  45. tigrcorn-0.3.16.dev5/src/tigrcorn/config/env.py +7 -0
  46. tigrcorn-0.3.16.dev5/src/tigrcorn/config/files.py +7 -0
  47. tigrcorn-0.3.16.dev5/src/tigrcorn/config/governance_surface.py +7 -0
  48. tigrcorn-0.3.16.dev5/src/tigrcorn/config/load.py +7 -0
  49. tigrcorn-0.3.16.dev5/src/tigrcorn/config/merge.py +7 -0
  50. tigrcorn-0.3.16.dev5/src/tigrcorn/config/model.py +7 -0
  51. tigrcorn-0.3.16.dev5/src/tigrcorn/config/negative_surface.py +7 -0
  52. tigrcorn-0.3.16.dev5/src/tigrcorn/config/normalize.py +7 -0
  53. tigrcorn-0.3.16.dev5/src/tigrcorn/config/observability_surface.py +7 -0
  54. tigrcorn-0.3.16.dev5/src/tigrcorn/config/origin_surface.py +7 -0
  55. tigrcorn-0.3.16.dev5/src/tigrcorn/config/policy_surface.py +7 -0
  56. tigrcorn-0.3.16.dev5/src/tigrcorn/config/profiles.py +7 -0
  57. tigrcorn-0.3.16.dev5/src/tigrcorn/config/quic_surface.py +7 -0
  58. tigrcorn-0.3.16.dev5/src/tigrcorn/config/validate.py +7 -0
  59. tigrcorn-0.3.16.dev5/src/tigrcorn/constants.py +8 -0
  60. tigrcorn-0.3.16.dev5/src/tigrcorn/contract/__init__.py +12 -0
  61. tigrcorn-0.3.16.dev5/src/tigrcorn/contract/classification.py +7 -0
  62. tigrcorn-0.3.16.dev5/src/tigrcorn/contract/events.py +7 -0
  63. tigrcorn-0.3.16.dev5/src/tigrcorn/contract/metadata.py +7 -0
  64. tigrcorn-0.3.16.dev5/src/tigrcorn/contract/scopes.py +7 -0
  65. tigrcorn-0.3.16.dev5/src/tigrcorn/embedded.py +7 -0
  66. tigrcorn-0.3.16.dev5/src/tigrcorn/errors.py +8 -0
  67. tigrcorn-0.3.16.dev5/src/tigrcorn/flow/__init__.py +10 -0
  68. tigrcorn-0.3.16.dev5/src/tigrcorn/flow/backpressure.py +7 -0
  69. tigrcorn-0.3.16.dev5/src/tigrcorn/flow/buffers.py +7 -0
  70. tigrcorn-0.3.16.dev5/src/tigrcorn/flow/credits.py +7 -0
  71. tigrcorn-0.3.16.dev5/src/tigrcorn/flow/keepalive.py +7 -0
  72. tigrcorn-0.3.16.dev5/src/tigrcorn/flow/timeouts.py +7 -0
  73. tigrcorn-0.3.16.dev5/src/tigrcorn/flow/watermarks.py +7 -0
  74. tigrcorn-0.3.16.dev5/src/tigrcorn/http/__init__.py +12 -0
  75. tigrcorn-0.3.16.dev5/src/tigrcorn/http/alt_svc.py +7 -0
  76. tigrcorn-0.3.16.dev5/src/tigrcorn/http/conditional.py +7 -0
  77. tigrcorn-0.3.16.dev5/src/tigrcorn/http/early_hints.py +7 -0
  78. tigrcorn-0.3.16.dev5/src/tigrcorn/http/entity.py +7 -0
  79. tigrcorn-0.3.16.dev5/src/tigrcorn/http/etag.py +7 -0
  80. tigrcorn-0.3.16.dev5/src/tigrcorn/http/range.py +7 -0
  81. tigrcorn-0.3.16.dev5/src/tigrcorn/http/structured_fields.py +7 -0
  82. tigrcorn-0.3.16.dev5/src/tigrcorn/listeners/__init__.py +12 -0
  83. tigrcorn-0.3.16.dev5/src/tigrcorn/listeners/base.py +7 -0
  84. tigrcorn-0.3.16.dev5/src/tigrcorn/listeners/inproc.py +7 -0
  85. tigrcorn-0.3.16.dev5/src/tigrcorn/listeners/pipe.py +7 -0
  86. tigrcorn-0.3.16.dev5/src/tigrcorn/listeners/registry.py +7 -0
  87. tigrcorn-0.3.16.dev5/src/tigrcorn/listeners/tcp.py +7 -0
  88. tigrcorn-0.3.16.dev5/src/tigrcorn/listeners/udp.py +7 -0
  89. tigrcorn-0.3.16.dev5/src/tigrcorn/listeners/unix.py +7 -0
  90. tigrcorn-0.3.16.dev5/src/tigrcorn/observability/__init__.py +12 -0
  91. tigrcorn-0.3.16.dev5/src/tigrcorn/observability/events.py +7 -0
  92. tigrcorn-0.3.16.dev5/src/tigrcorn/observability/logging.py +7 -0
  93. tigrcorn-0.3.16.dev5/src/tigrcorn/observability/metrics.py +7 -0
  94. tigrcorn-0.3.16.dev5/src/tigrcorn/observability/tracing.py +7 -0
  95. tigrcorn-0.3.16.dev5/src/tigrcorn/profiles/README.md +30 -0
  96. tigrcorn-0.3.16.dev5/src/tigrcorn/profiles/__init__.py +2 -0
  97. tigrcorn-0.3.16.dev5/src/tigrcorn/profiles/default.profile.json +191 -0
  98. tigrcorn-0.3.16.dev5/src/tigrcorn/profiles/static-origin.profile.json +200 -0
  99. tigrcorn-0.3.16.dev5/src/tigrcorn/profiles/strict-h1-origin.profile.json +196 -0
  100. tigrcorn-0.3.16.dev5/src/tigrcorn/profiles/strict-h2-origin.profile.json +202 -0
  101. tigrcorn-0.3.16.dev5/src/tigrcorn/profiles/strict-h3-edge.profile.json +231 -0
  102. tigrcorn-0.3.16.dev5/src/tigrcorn/profiles/strict-mtls-origin.profile.json +206 -0
  103. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/__init__.py +12 -0
  104. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/_compression.py +7 -0
  105. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/connect.py +7 -0
  106. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/content_coding.py +7 -0
  107. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/custom/__init__.py +12 -0
  108. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/custom/adapters.py +7 -0
  109. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/custom/registry.py +7 -0
  110. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/http1/__init__.py +12 -0
  111. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/http1/keepalive.py +7 -0
  112. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/http1/parser.py +7 -0
  113. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/http1/serializer.py +7 -0
  114. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/http1/state.py +7 -0
  115. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/http2/__init__.py +12 -0
  116. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/http2/codec.py +7 -0
  117. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/http2/flow.py +7 -0
  118. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/http2/handler.py +7 -0
  119. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/http2/hpack.py +7 -0
  120. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/http2/state.py +7 -0
  121. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/http2/streams.py +7 -0
  122. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/http2/websocket.py +7 -0
  123. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/http3/__init__.py +12 -0
  124. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/http3/codec.py +7 -0
  125. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/http3/handler.py +7 -0
  126. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/http3/qpack.py +7 -0
  127. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/http3/state.py +7 -0
  128. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/http3/streams.py +7 -0
  129. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/http3/websocket.py +7 -0
  130. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/lifespan/__init__.py +12 -0
  131. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/lifespan/driver.py +7 -0
  132. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/rawframed/__init__.py +12 -0
  133. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/rawframed/codec.py +7 -0
  134. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/rawframed/frames.py +7 -0
  135. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/rawframed/handler.py +7 -0
  136. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/rawframed/state.py +7 -0
  137. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/registry.py +7 -0
  138. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/websocket/__init__.py +12 -0
  139. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/websocket/codec.py +7 -0
  140. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/websocket/extensions.py +7 -0
  141. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/websocket/frames.py +7 -0
  142. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/websocket/handler.py +7 -0
  143. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/websocket/handshake.py +7 -0
  144. tigrcorn-0.3.16.dev5/src/tigrcorn/protocols/websocket/state.py +7 -0
  145. tigrcorn-0.3.16.dev5/src/tigrcorn/scheduler/__init__.py +10 -0
  146. tigrcorn-0.3.16.dev5/src/tigrcorn/scheduler/cancellation.py +7 -0
  147. tigrcorn-0.3.16.dev5/src/tigrcorn/scheduler/dispatch.py +7 -0
  148. tigrcorn-0.3.16.dev5/src/tigrcorn/scheduler/fairness.py +7 -0
  149. tigrcorn-0.3.16.dev5/src/tigrcorn/scheduler/policy.py +7 -0
  150. tigrcorn-0.3.16.dev5/src/tigrcorn/scheduler/priorities.py +7 -0
  151. tigrcorn-0.3.16.dev5/src/tigrcorn/scheduler/quotas.py +7 -0
  152. tigrcorn-0.3.16.dev5/src/tigrcorn/scheduler/runtime.py +7 -0
  153. tigrcorn-0.3.16.dev5/src/tigrcorn/scheduler/tasks.py +7 -0
  154. tigrcorn-0.3.16.dev5/src/tigrcorn/security/__init__.py +12 -0
  155. tigrcorn-0.3.16.dev5/src/tigrcorn/security/alpn.py +7 -0
  156. tigrcorn-0.3.16.dev5/src/tigrcorn/security/certs.py +7 -0
  157. tigrcorn-0.3.16.dev5/src/tigrcorn/security/policies.py +7 -0
  158. tigrcorn-0.3.16.dev5/src/tigrcorn/security/tls.py +7 -0
  159. tigrcorn-0.3.16.dev5/src/tigrcorn/security/tls13/__init__.py +12 -0
  160. tigrcorn-0.3.16.dev5/src/tigrcorn/security/tls13/extensions.py +7 -0
  161. tigrcorn-0.3.16.dev5/src/tigrcorn/security/tls13/handshake.py +7 -0
  162. tigrcorn-0.3.16.dev5/src/tigrcorn/security/tls13/key_schedule.py +7 -0
  163. tigrcorn-0.3.16.dev5/src/tigrcorn/security/tls13/messages.py +7 -0
  164. tigrcorn-0.3.16.dev5/src/tigrcorn/security/tls13/transcript.py +7 -0
  165. tigrcorn-0.3.16.dev5/src/tigrcorn/security/tls_cipher_policy.py +7 -0
  166. tigrcorn-0.3.16.dev5/src/tigrcorn/security/x509/__init__.py +12 -0
  167. tigrcorn-0.3.16.dev5/src/tigrcorn/security/x509/path.py +7 -0
  168. tigrcorn-0.3.16.dev5/src/tigrcorn/server/__init__.py +12 -0
  169. tigrcorn-0.3.16.dev5/src/tigrcorn/server/app_loader.py +7 -0
  170. tigrcorn-0.3.16.dev5/src/tigrcorn/server/bootstrap.py +13 -0
  171. tigrcorn-0.3.16.dev5/src/tigrcorn/server/hooks.py +7 -0
  172. tigrcorn-0.3.16.dev5/src/tigrcorn/server/reloader.py +7 -0
  173. tigrcorn-0.3.16.dev5/src/tigrcorn/server/runner.py +7 -0
  174. tigrcorn-0.3.16.dev5/src/tigrcorn/server/shutdown.py +7 -0
  175. tigrcorn-0.3.16.dev5/src/tigrcorn/server/signals.py +7 -0
  176. tigrcorn-0.3.16.dev5/src/tigrcorn/server/state.py +7 -0
  177. tigrcorn-0.3.16.dev5/src/tigrcorn/server/supervisor.py +7 -0
  178. tigrcorn-0.3.16.dev5/src/tigrcorn/sessions/__init__.py +10 -0
  179. tigrcorn-0.3.16.dev5/src/tigrcorn/sessions/base.py +7 -0
  180. tigrcorn-0.3.16.dev5/src/tigrcorn/sessions/connection.py +7 -0
  181. tigrcorn-0.3.16.dev5/src/tigrcorn/sessions/limits.py +7 -0
  182. tigrcorn-0.3.16.dev5/src/tigrcorn/sessions/manager.py +7 -0
  183. tigrcorn-0.3.16.dev5/src/tigrcorn/sessions/metadata.py +7 -0
  184. tigrcorn-0.3.16.dev5/src/tigrcorn/sessions/quic.py +7 -0
  185. tigrcorn-0.3.16.dev5/src/tigrcorn/static.py +7 -0
  186. tigrcorn-0.3.16.dev5/src/tigrcorn/streams/__init__.py +10 -0
  187. tigrcorn-0.3.16.dev5/src/tigrcorn/streams/base.py +7 -0
  188. tigrcorn-0.3.16.dev5/src/tigrcorn/streams/ids.py +7 -0
  189. tigrcorn-0.3.16.dev5/src/tigrcorn/streams/multiplex.py +7 -0
  190. tigrcorn-0.3.16.dev5/src/tigrcorn/streams/registry.py +7 -0
  191. tigrcorn-0.3.16.dev5/src/tigrcorn/streams/singleplex.py +7 -0
  192. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/__init__.py +12 -0
  193. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/base.py +7 -0
  194. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/inproc/__init__.py +12 -0
  195. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/inproc/channel.py +7 -0
  196. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/pipe/__init__.py +12 -0
  197. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/pipe/connection.py +7 -0
  198. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/quic/__init__.py +12 -0
  199. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/quic/connection.py +7 -0
  200. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/quic/crypto.py +7 -0
  201. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/quic/datagrams.py +7 -0
  202. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/quic/flow.py +7 -0
  203. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/quic/handshake.py +7 -0
  204. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/quic/packets.py +7 -0
  205. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/quic/recovery.py +7 -0
  206. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/quic/scheduler.py +7 -0
  207. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/quic/streams.py +7 -0
  208. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/quic/tls_adapter.py +7 -0
  209. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/registry.py +7 -0
  210. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/tcp/__init__.py +12 -0
  211. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/tcp/accept.py +7 -0
  212. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/tcp/connection.py +7 -0
  213. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/tcp/reader.py +7 -0
  214. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/tcp/socketopts.py +7 -0
  215. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/tcp/tls.py +7 -0
  216. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/tcp/writer.py +7 -0
  217. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/udp/__init__.py +12 -0
  218. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/udp/endpoint.py +7 -0
  219. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/udp/packet.py +7 -0
  220. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/udp/socketopts.py +7 -0
  221. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/unix/__init__.py +12 -0
  222. tigrcorn-0.3.16.dev5/src/tigrcorn/transports/unix/connection.py +7 -0
  223. tigrcorn-0.3.16.dev5/src/tigrcorn/types.py +8 -0
  224. tigrcorn-0.3.16.dev5/src/tigrcorn/utils/__init__.py +10 -0
  225. tigrcorn-0.3.16.dev5/src/tigrcorn/utils/authority.py +7 -0
  226. tigrcorn-0.3.16.dev5/src/tigrcorn/utils/bytes.py +7 -0
  227. tigrcorn-0.3.16.dev5/src/tigrcorn/utils/headers.py +7 -0
  228. tigrcorn-0.3.16.dev5/src/tigrcorn/utils/ids.py +7 -0
  229. tigrcorn-0.3.16.dev5/src/tigrcorn/utils/imports.py +7 -0
  230. tigrcorn-0.3.16.dev5/src/tigrcorn/utils/net.py +7 -0
  231. tigrcorn-0.3.16.dev5/src/tigrcorn/utils/proxy.py +7 -0
  232. tigrcorn-0.3.16.dev5/src/tigrcorn/version.py +7 -0
  233. tigrcorn-0.3.16.dev5/src/tigrcorn/workers/__init__.py +10 -0
  234. tigrcorn-0.3.16.dev5/src/tigrcorn/workers/local.py +7 -0
  235. tigrcorn-0.3.16.dev5/src/tigrcorn/workers/model.py +7 -0
  236. tigrcorn-0.3.16.dev5/src/tigrcorn/workers/process.py +7 -0
  237. tigrcorn-0.3.16.dev5/src/tigrcorn/workers/supervisor.py +7 -0
  238. tigrcorn-0.3.16.dev5/src/tigrcorn.egg-info/PKG-INFO +933 -0
  239. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/src/tigrcorn.egg-info/SOURCES.txt +163 -37
  240. tigrcorn-0.3.16.dev5/src/tigrcorn.egg-info/requires.txt +62 -0
  241. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_additional_remaining_work.py +3 -1
  242. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_aioquic_adapter_preflight.py +5 -1
  243. tigrcorn-0.3.16.dev5/tests/test_app_interface_cli_flag.py +16 -0
  244. tigrcorn-0.3.16.dev5/tests/test_app_interface_config_toml.py +19 -0
  245. tigrcorn-0.3.16.dev5/tests/test_app_interface_detection_precedence.py +37 -0
  246. tigrcorn-0.3.16.dev5/tests/test_app_interface_env_var.py +21 -0
  247. tigrcorn-0.3.16.dev5/tests/test_app_interface_fail_closed_ambiguity.py +20 -0
  248. tigrcorn-0.3.16.dev5/tests/test_app_interface_public_api.py +18 -0
  249. tigrcorn-0.3.16.dev5/tests/test_app_loader.py +60 -0
  250. tigrcorn-0.3.16.dev5/tests/test_asgi2_compat_exclusion.py +8 -0
  251. tigrcorn-0.3.16.dev5/tests/test_asgi3_endpoint_metadata_extension.py +8 -0
  252. tigrcorn-0.3.16.dev5/tests/test_asgi3_hot_path_isolation.py +21 -0
  253. tigrcorn-0.3.16.dev5/tests/test_asgi3_security_metadata_extension.py +8 -0
  254. tigrcorn-0.3.16.dev5/tests/test_asgi3_stream_datagram_extension.py +8 -0
  255. tigrcorn-0.3.16.dev5/tests/test_asgi3_transport_identity_extension.py +8 -0
  256. tigrcorn-0.3.16.dev5/tests/test_category_boundaries.py +75 -0
  257. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_certification_environment_freeze.py +5 -1
  258. tigrcorn-0.3.16.dev5/tests/test_certification_explicit_surfaces_boundary.py +64 -0
  259. tigrcorn-0.3.9/tests/test_phase2_cli_config_surface.py → tigrcorn-0.3.16.dev5/tests/test_cli_config_surface.py +1 -1
  260. tigrcorn-0.3.16.dev5/tests/test_code_style_governance.py +35 -0
  261. tigrcorn-0.3.16.dev5/tests/test_compat_dispatch_selection.py +33 -0
  262. tigrcorn-0.3.16.dev5/tests/test_compat_http_boundary.py +119 -0
  263. tigrcorn-0.3.16.dev5/tests/test_config_matrix_pytest.py +53 -0
  264. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_conformance_corpus.py +19 -0
  265. tigrcorn-0.3.9/tests/test_phase9d1_connect_relay_local_negatives.py → tigrcorn-0.3.16.dev5/tests/test_connect_relay_local_negatives.py +2 -0
  266. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_connect_rfc9110.py +1 -0
  267. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_connect_tunnel_h2_h3.py +2 -0
  268. tigrcorn-0.3.16.dev5/tests/test_contract_alpn_metadata.py +8 -0
  269. tigrcorn-0.3.16.dev5/tests/test_contract_app_dispatch.py +30 -0
  270. tigrcorn-0.3.16.dev5/tests/test_contract_core_boundary.py +142 -0
  271. tigrcorn-0.3.16.dev5/tests/test_contract_datagram_flow_control_mapping.py +8 -0
  272. tigrcorn-0.3.16.dev5/tests/test_contract_datagram_unit_identity.py +8 -0
  273. tigrcorn-0.3.16.dev5/tests/test_contract_emit_completion_asgi_extension.py +8 -0
  274. tigrcorn-0.3.16.dev5/tests/test_contract_emit_completion_events.py +8 -0
  275. tigrcorn-0.3.16.dev5/tests/test_contract_fd_endpoint_metadata.py +8 -0
  276. tigrcorn-0.3.16.dev5/tests/test_contract_generic_datagram_runtime.py +8 -0
  277. tigrcorn-0.3.16.dev5/tests/test_contract_generic_stream_runtime.py +8 -0
  278. tigrcorn-0.3.16.dev5/tests/test_contract_http2_stream_identity.py +8 -0
  279. tigrcorn-0.3.16.dev5/tests/test_contract_http3_stream_identity.py +8 -0
  280. tigrcorn-0.3.16.dev5/tests/test_contract_illegal_event_order_rejection.py +8 -0
  281. tigrcorn-0.3.16.dev5/tests/test_contract_inproc_endpoint_metadata.py +8 -0
  282. tigrcorn-0.3.16.dev5/tests/test_contract_invalid_endpoint_metadata_rejection.py +8 -0
  283. tigrcorn-0.3.16.dev5/tests/test_contract_jsonrpc_binding_classification.py +8 -0
  284. tigrcorn-0.3.16.dev5/tests/test_contract_listener_endpoint_metadata.py +8 -0
  285. tigrcorn-0.3.16.dev5/tests/test_contract_lossy_metadata_rejection.py +8 -0
  286. tigrcorn-0.3.16.dev5/tests/test_contract_mtls_peer_metadata.py +8 -0
  287. tigrcorn-0.3.16.dev5/tests/test_contract_native_public_api.py +31 -0
  288. tigrcorn-0.3.16.dev5/tests/test_contract_native_runtime.py +20 -0
  289. tigrcorn-0.3.16.dev5/tests/test_contract_ocsp_crl_metadata.py +8 -0
  290. tigrcorn-0.3.16.dev5/tests/test_contract_pipe_endpoint_metadata.py +8 -0
  291. tigrcorn-0.3.16.dev5/tests/test_contract_planned_coverage_inventory.py +177 -0
  292. tigrcorn-0.3.16.dev5/tests/test_contract_proof_boundary.py +98 -0
  293. tigrcorn-0.3.16.dev5/tests/test_contract_quic_connection_identity.py +8 -0
  294. tigrcorn-0.3.16.dev5/tests/test_contract_rest_binding_classification.py +8 -0
  295. tigrcorn-0.3.16.dev5/tests/test_contract_sni_metadata.py +8 -0
  296. tigrcorn-0.3.16.dev5/tests/test_contract_sse_binding_classification.py +8 -0
  297. tigrcorn-0.3.16.dev5/tests/test_contract_stream_backpressure_mapping.py +8 -0
  298. tigrcorn-0.3.16.dev5/tests/test_contract_tcp_connection_identity.py +8 -0
  299. tigrcorn-0.3.16.dev5/tests/test_contract_tls_endpoint_metadata.py +8 -0
  300. tigrcorn-0.3.16.dev5/tests/test_contract_uds_endpoint_metadata.py +8 -0
  301. tigrcorn-0.3.16.dev5/tests/test_contract_unix_connection_identity.py +8 -0
  302. tigrcorn-0.3.16.dev5/tests/test_contract_unsupported_scope_rejection.py +8 -0
  303. tigrcorn-0.3.16.dev5/tests/test_contract_webtransport_session_identity.py +8 -0
  304. tigrcorn-0.3.16.dev5/tests/test_contract_webtransport_stream_identity.py +8 -0
  305. tigrcorn-0.3.16.dev5/tests/test_default_audits.py +56 -0
  306. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_documentation_truth_normalization_checkpoint.py +2 -0
  307. tigrcorn-0.3.16.dev5/tests/test_dos_resilience.py +208 -0
  308. tigrcorn-0.3.9/tests/test_phase2_entity_semantics_checkpoint.py → tigrcorn-0.3.16.dev5/tests/test_entity_semantics_checkpoint.py +11 -4
  309. tigrcorn-0.3.16.dev5/tests/test_governance_graph_export.py +65 -0
  310. tigrcorn-0.3.16.dev5/tests/test_governed_rfc_deep_coverage.py +368 -0
  311. tigrcorn-0.3.16.dev5/tests/test_governed_rfc_support_floor.py +187 -0
  312. tigrcorn-0.3.16.dev5/tests/test_h11_http1_probe_fixture.py +52 -0
  313. tigrcorn-0.3.16.dev5/tests/test_h2_http2_probe_fixture.py +53 -0
  314. tigrcorn-0.3.16.dev5/tests/test_h3_asgi3_lab.py +77 -0
  315. tigrcorn-0.3.16.dev5/tests/test_h3_http3_probe_fixture.py +63 -0
  316. tigrcorn-0.3.16.dev5/tests/test_h3_quic_probe_fixture.py +67 -0
  317. tigrcorn-0.3.16.dev5/tests/test_http2_asgi3_demo.py +99 -0
  318. tigrcorn-0.3.16.dev5/tests/test_http_status_code_surface.py +97 -0
  319. tigrcorn-0.3.16.dev5/tests/test_json_rpc_runtime_exclusion.py +8 -0
  320. tigrcorn-0.3.16.dev5/tests/test_lifespan_example.py +76 -0
  321. tigrcorn-0.3.9/tests/test_phase9f2_logging_exporter_closure.py → tigrcorn-0.3.16.dev5/tests/test_logging_exporter_closure.py +150 -31
  322. tigrcorn-0.3.16.dev5/tests/test_negative_certification.py +43 -0
  323. tigrcorn-0.3.16.dev5/tests/test_observability_surface.py +113 -0
  324. tigrcorn-0.3.16.dev5/tests/test_origin_contract.py +129 -0
  325. tigrcorn-0.3.16.dev5/tests/test_p8_gov.py +65 -0
  326. tigrcorn-0.3.16.dev5/tests/test_p8_sf.py +30 -0
  327. tigrcorn-0.3.16.dev5/tests/test_p9_auto.py +75 -0
  328. tigrcorn-0.3.16.dev5/tests/test_package_boundaries.py +242 -0
  329. tigrcorn-0.3.16.dev5/tests/test_policy_surface.py +133 -0
  330. tigrcorn-0.3.16.dev5/tests/test_profile_resolution.py +103 -0
  331. tigrcorn-0.3.16.dev5/tests/test_protocol_scope_fixtures.py +101 -0
  332. tigrcorn-0.3.16.dev5/tests/test_quic_surface.py +88 -0
  333. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_quic_transport_runtime_completion.py +24 -0
  334. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_release_gates.py +93 -1
  335. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_response_pipeline_streaming_checkpoint.py +1 -1
  336. tigrcorn-0.3.16.dev5/tests/test_rest_runtime_exclusion.py +8 -0
  337. tigrcorn-0.3.16.dev5/tests/test_rsgi_compat_exclusion.py +8 -0
  338. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_server_unix.py +4 -0
  339. tigrcorn-0.3.16.dev5/tests/test_ssot_registry.py +251 -0
  340. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_static_delivery_productionization_checkpoint.py +8 -11
  341. tigrcorn-0.3.9/tests/test_phase2_static_delivery_surface.py → tigrcorn-0.3.16.dev5/tests/test_static_delivery_surface.py +10 -13
  342. tigrcorn-0.3.16.dev5/tests/test_stream_probe_fixtures.py +82 -0
  343. tigrcorn-0.3.9/tests/test_phase9g_strict_performance_closure.py → tigrcorn-0.3.16.dev5/tests/test_strict_performance_closure.py +2 -2
  344. tigrcorn-0.3.9/tests/test_phase3_strict_rfc_surface.py → tigrcorn-0.3.16.dev5/tests/test_strict_rfc_surface.py +8 -1
  345. tigrcorn-0.3.16.dev5/tests/test_tigr_asgi_contract_peer_validation.py +233 -0
  346. tigrcorn-0.3.16.dev5/tests/test_websocket_uix_demo.py +49 -0
  347. tigrcorn-0.3.16.dev5/tests/test_webtransport_bidi_stream_context.py +303 -0
  348. tigrcorn-0.3.16.dev5/tests/test_webtransport_datagram_runtime_dispatch.py +138 -0
  349. tigrcorn-0.3.16.dev5/tests/test_webtransport_feature_coverage.py +452 -0
  350. tigrcorn-0.3.16.dev5/tests/test_webtransport_h3_quic_completion_events.py +8 -0
  351. tigrcorn-0.3.16.dev5/tests/test_webtransport_h3_quic_datagram_events.py +8 -0
  352. tigrcorn-0.3.16.dev5/tests/test_webtransport_h3_quic_scope.py +8 -0
  353. tigrcorn-0.3.16.dev5/tests/test_webtransport_h3_quic_session_events.py +8 -0
  354. tigrcorn-0.3.16.dev5/tests/test_webtransport_h3_quic_stream_events.py +8 -0
  355. tigrcorn-0.3.16.dev5/tests/test_webtransport_mtls_demo.py +488 -0
  356. tigrcorn-0.3.16.dev5/tests/test_webtransport_operator_surface.py +113 -0
  357. tigrcorn-0.3.16.dev5/tests/test_ws_wss_probe_fixture.py +81 -0
  358. tigrcorn-0.3.16.dev5/tests/test_wsgi_compat_exclusion.py +8 -0
  359. tigrcorn-0.3.16.dev5/tests/test_wss_asgi3_lab.py +94 -0
  360. tigrcorn-0.3.16.dev5/tests/test_wt_peer_probe_package.py +192 -0
  361. tigrcorn-0.3.16.dev5/tests/test_wt_stream_probe_fixture.py +80 -0
  362. tigrcorn-0.3.9/PKG-INFO +0 -637
  363. tigrcorn-0.3.9/README.md +0 -425
  364. tigrcorn-0.3.9/pyproject.toml +0 -77
  365. tigrcorn-0.3.9/src/tigrcorn/__init__.py +0 -6
  366. tigrcorn-0.3.9/src/tigrcorn/api.py +0 -227
  367. tigrcorn-0.3.9/src/tigrcorn/asgi/__init__.py +0 -1
  368. tigrcorn-0.3.9/src/tigrcorn/asgi/connection.py +0 -12
  369. tigrcorn-0.3.9/src/tigrcorn/asgi/errors.py +0 -2
  370. tigrcorn-0.3.9/src/tigrcorn/asgi/events/__init__.py +0 -1
  371. tigrcorn-0.3.9/src/tigrcorn/asgi/events/custom.py +0 -13
  372. tigrcorn-0.3.9/src/tigrcorn/asgi/events/http.py +0 -13
  373. tigrcorn-0.3.9/src/tigrcorn/asgi/events/lifespan.py +0 -9
  374. tigrcorn-0.3.9/src/tigrcorn/asgi/events/websocket.py +0 -17
  375. tigrcorn-0.3.9/src/tigrcorn/asgi/extensions/__init__.py +0 -1
  376. tigrcorn-0.3.9/src/tigrcorn/asgi/extensions/tls.py +0 -10
  377. tigrcorn-0.3.9/src/tigrcorn/asgi/extensions/websocket_denial.py +0 -5
  378. tigrcorn-0.3.9/src/tigrcorn/asgi/receive.py +0 -200
  379. tigrcorn-0.3.9/src/tigrcorn/asgi/scopes/__init__.py +0 -1
  380. tigrcorn-0.3.9/src/tigrcorn/asgi/scopes/custom.py +0 -12
  381. tigrcorn-0.3.9/src/tigrcorn/asgi/scopes/http.py +0 -51
  382. tigrcorn-0.3.9/src/tigrcorn/asgi/scopes/lifespan.py +0 -12
  383. tigrcorn-0.3.9/src/tigrcorn/asgi/scopes/websocket.py +0 -59
  384. tigrcorn-0.3.9/src/tigrcorn/asgi/send.py +0 -663
  385. tigrcorn-0.3.9/src/tigrcorn/asgi/state.py +0 -9
  386. tigrcorn-0.3.9/src/tigrcorn/cli.py +0 -183
  387. tigrcorn-0.3.9/src/tigrcorn/compat/__init__.py +0 -44
  388. tigrcorn-0.3.9/src/tigrcorn/compat/aioquic_preflight.py +0 -449
  389. tigrcorn-0.3.9/src/tigrcorn/compat/asgi3.py +0 -46
  390. tigrcorn-0.3.9/src/tigrcorn/compat/certification_env.py +0 -419
  391. tigrcorn-0.3.9/src/tigrcorn/compat/conformance.py +0 -42
  392. tigrcorn-0.3.9/src/tigrcorn/compat/hypercorn.py +0 -13
  393. tigrcorn-0.3.9/src/tigrcorn/compat/interop.py +0 -40
  394. tigrcorn-0.3.9/src/tigrcorn/compat/interop_capture.py +0 -170
  395. tigrcorn-0.3.9/src/tigrcorn/compat/interop_cli.py +0 -34
  396. tigrcorn-0.3.9/src/tigrcorn/compat/interop_runner.py +0 -1983
  397. tigrcorn-0.3.9/src/tigrcorn/compat/perf_runner.py +0 -725
  398. tigrcorn-0.3.9/src/tigrcorn/compat/release_gates.py +0 -1190
  399. tigrcorn-0.3.9/src/tigrcorn/compat/uvicorn.py +0 -23
  400. tigrcorn-0.3.9/src/tigrcorn/config/__init__.py +0 -38
  401. tigrcorn-0.3.9/src/tigrcorn/config/defaults.py +0 -5
  402. tigrcorn-0.3.9/src/tigrcorn/config/env.py +0 -186
  403. tigrcorn-0.3.9/src/tigrcorn/config/files.py +0 -108
  404. tigrcorn-0.3.9/src/tigrcorn/config/load.py +0 -558
  405. tigrcorn-0.3.9/src/tigrcorn/config/merge.py +0 -22
  406. tigrcorn-0.3.9/src/tigrcorn/config/model.py +0 -459
  407. tigrcorn-0.3.9/src/tigrcorn/config/normalize.py +0 -210
  408. tigrcorn-0.3.9/src/tigrcorn/config/validate.py +0 -210
  409. tigrcorn-0.3.9/src/tigrcorn/constants.py +0 -40
  410. tigrcorn-0.3.9/src/tigrcorn/embedded.py +0 -77
  411. tigrcorn-0.3.9/src/tigrcorn/errors.py +0 -22
  412. tigrcorn-0.3.9/src/tigrcorn/flow/__init__.py +0 -1
  413. tigrcorn-0.3.9/src/tigrcorn/flow/backpressure.py +0 -17
  414. tigrcorn-0.3.9/src/tigrcorn/flow/buffers.py +0 -29
  415. tigrcorn-0.3.9/src/tigrcorn/flow/credits.py +0 -21
  416. tigrcorn-0.3.9/src/tigrcorn/flow/keepalive.py +0 -85
  417. tigrcorn-0.3.9/src/tigrcorn/flow/timeouts.py +0 -17
  418. tigrcorn-0.3.9/src/tigrcorn/flow/watermarks.py +0 -16
  419. tigrcorn-0.3.9/src/tigrcorn/http/__init__.py +0 -24
  420. tigrcorn-0.3.9/src/tigrcorn/http/alt_svc.py +0 -71
  421. tigrcorn-0.3.9/src/tigrcorn/http/conditional.py +0 -126
  422. tigrcorn-0.3.9/src/tigrcorn/http/early_hints.py +0 -49
  423. tigrcorn-0.3.9/src/tigrcorn/http/entity.py +0 -338
  424. tigrcorn-0.3.9/src/tigrcorn/http/etag.py +0 -133
  425. tigrcorn-0.3.9/src/tigrcorn/http/range.py +0 -293
  426. tigrcorn-0.3.9/src/tigrcorn/listeners/__init__.py +0 -4
  427. tigrcorn-0.3.9/src/tigrcorn/listeners/base.py +0 -14
  428. tigrcorn-0.3.9/src/tigrcorn/listeners/inproc.py +0 -24
  429. tigrcorn-0.3.9/src/tigrcorn/listeners/pipe.py +0 -72
  430. tigrcorn-0.3.9/src/tigrcorn/listeners/registry.py +0 -15
  431. tigrcorn-0.3.9/src/tigrcorn/listeners/tcp.py +0 -90
  432. tigrcorn-0.3.9/src/tigrcorn/listeners/udp.py +0 -82
  433. tigrcorn-0.3.9/src/tigrcorn/listeners/unix.py +0 -69
  434. tigrcorn-0.3.9/src/tigrcorn/observability/__init__.py +0 -1
  435. tigrcorn-0.3.9/src/tigrcorn/observability/events.py +0 -9
  436. tigrcorn-0.3.9/src/tigrcorn/observability/logging.py +0 -216
  437. tigrcorn-0.3.9/src/tigrcorn/observability/metrics.py +0 -237
  438. tigrcorn-0.3.9/src/tigrcorn/observability/tracing.py +0 -180
  439. tigrcorn-0.3.9/src/tigrcorn/protocols/__init__.py +0 -1
  440. tigrcorn-0.3.9/src/tigrcorn/protocols/_compression.py +0 -219
  441. tigrcorn-0.3.9/src/tigrcorn/protocols/connect.py +0 -107
  442. tigrcorn-0.3.9/src/tigrcorn/protocols/content_coding.py +0 -179
  443. tigrcorn-0.3.9/src/tigrcorn/protocols/custom/__init__.py +0 -3
  444. tigrcorn-0.3.9/src/tigrcorn/protocols/custom/adapters.py +0 -18
  445. tigrcorn-0.3.9/src/tigrcorn/protocols/custom/registry.py +0 -15
  446. tigrcorn-0.3.9/src/tigrcorn/protocols/http1/__init__.py +0 -16
  447. tigrcorn-0.3.9/src/tigrcorn/protocols/http1/keepalive.py +0 -21
  448. tigrcorn-0.3.9/src/tigrcorn/protocols/http1/parser.py +0 -481
  449. tigrcorn-0.3.9/src/tigrcorn/protocols/http1/serializer.py +0 -188
  450. tigrcorn-0.3.9/src/tigrcorn/protocols/http1/state.py +0 -9
  451. tigrcorn-0.3.9/src/tigrcorn/protocols/http2/__init__.py +0 -16
  452. tigrcorn-0.3.9/src/tigrcorn/protocols/http2/codec.py +0 -266
  453. tigrcorn-0.3.9/src/tigrcorn/protocols/http2/flow.py +0 -35
  454. tigrcorn-0.3.9/src/tigrcorn/protocols/http2/handler.py +0 -1303
  455. tigrcorn-0.3.9/src/tigrcorn/protocols/http2/hpack.py +0 -393
  456. tigrcorn-0.3.9/src/tigrcorn/protocols/http2/state.py +0 -226
  457. tigrcorn-0.3.9/src/tigrcorn/protocols/http2/streams.py +0 -76
  458. tigrcorn-0.3.9/src/tigrcorn/protocols/http2/websocket.py +0 -360
  459. tigrcorn-0.3.9/src/tigrcorn/protocols/http3/__init__.py +0 -71
  460. tigrcorn-0.3.9/src/tigrcorn/protocols/http3/codec.py +0 -146
  461. tigrcorn-0.3.9/src/tigrcorn/protocols/http3/handler.py +0 -1372
  462. tigrcorn-0.3.9/src/tigrcorn/protocols/http3/qpack.py +0 -843
  463. tigrcorn-0.3.9/src/tigrcorn/protocols/http3/state.py +0 -129
  464. tigrcorn-0.3.9/src/tigrcorn/protocols/http3/streams.py +0 -636
  465. tigrcorn-0.3.9/src/tigrcorn/protocols/http3/websocket.py +0 -360
  466. tigrcorn-0.3.9/src/tigrcorn/protocols/lifespan/__init__.py +0 -3
  467. tigrcorn-0.3.9/src/tigrcorn/protocols/lifespan/driver.py +0 -83
  468. tigrcorn-0.3.9/src/tigrcorn/protocols/rawframed/__init__.py +0 -5
  469. tigrcorn-0.3.9/src/tigrcorn/protocols/rawframed/codec.py +0 -18
  470. tigrcorn-0.3.9/src/tigrcorn/protocols/rawframed/frames.py +0 -28
  471. tigrcorn-0.3.9/src/tigrcorn/protocols/rawframed/handler.py +0 -72
  472. tigrcorn-0.3.9/src/tigrcorn/protocols/rawframed/state.py +0 -9
  473. tigrcorn-0.3.9/src/tigrcorn/protocols/registry.py +0 -22
  474. tigrcorn-0.3.9/src/tigrcorn/protocols/websocket/__init__.py +0 -1
  475. tigrcorn-0.3.9/src/tigrcorn/protocols/websocket/codec.py +0 -31
  476. tigrcorn-0.3.9/src/tigrcorn/protocols/websocket/extensions.py +0 -324
  477. tigrcorn-0.3.9/src/tigrcorn/protocols/websocket/frames.py +0 -174
  478. tigrcorn-0.3.9/src/tigrcorn/protocols/websocket/handler.py +0 -462
  479. tigrcorn-0.3.9/src/tigrcorn/protocols/websocket/handshake.py +0 -66
  480. tigrcorn-0.3.9/src/tigrcorn/protocols/websocket/state.py +0 -10
  481. tigrcorn-0.3.9/src/tigrcorn/scheduler/__init__.py +0 -17
  482. tigrcorn-0.3.9/src/tigrcorn/scheduler/cancellation.py +0 -21
  483. tigrcorn-0.3.9/src/tigrcorn/scheduler/dispatch.py +0 -27
  484. tigrcorn-0.3.9/src/tigrcorn/scheduler/fairness.py +0 -21
  485. tigrcorn-0.3.9/src/tigrcorn/scheduler/policy.py +0 -12
  486. tigrcorn-0.3.9/src/tigrcorn/scheduler/priorities.py +0 -8
  487. tigrcorn-0.3.9/src/tigrcorn/scheduler/quotas.py +0 -19
  488. tigrcorn-0.3.9/src/tigrcorn/scheduler/runtime.py +0 -156
  489. tigrcorn-0.3.9/src/tigrcorn/scheduler/tasks.py +0 -26
  490. tigrcorn-0.3.9/src/tigrcorn/security/__init__.py +0 -1
  491. tigrcorn-0.3.9/src/tigrcorn/security/alpn.py +0 -27
  492. tigrcorn-0.3.9/src/tigrcorn/security/certs.py +0 -10
  493. tigrcorn-0.3.9/src/tigrcorn/security/policies.py +0 -68
  494. tigrcorn-0.3.9/src/tigrcorn/security/tls.py +0 -569
  495. tigrcorn-0.3.9/src/tigrcorn/security/tls13/__init__.py +0 -66
  496. tigrcorn-0.3.9/src/tigrcorn/security/tls13/extensions.py +0 -759
  497. tigrcorn-0.3.9/src/tigrcorn/security/tls13/handshake.py +0 -1382
  498. tigrcorn-0.3.9/src/tigrcorn/security/tls13/key_schedule.py +0 -108
  499. tigrcorn-0.3.9/src/tigrcorn/security/tls13/messages.py +0 -428
  500. tigrcorn-0.3.9/src/tigrcorn/security/tls13/transcript.py +0 -51
  501. tigrcorn-0.3.9/src/tigrcorn/security/tls_cipher_policy.py +0 -43
  502. tigrcorn-0.3.9/src/tigrcorn/security/x509/__init__.py +0 -31
  503. tigrcorn-0.3.9/src/tigrcorn/security/x509/path.py +0 -1258
  504. tigrcorn-0.3.9/src/tigrcorn/server/__init__.py +0 -3
  505. tigrcorn-0.3.9/src/tigrcorn/server/app_loader.py +0 -40
  506. tigrcorn-0.3.9/src/tigrcorn/server/bootstrap.py +0 -225
  507. tigrcorn-0.3.9/src/tigrcorn/server/hooks.py +0 -24
  508. tigrcorn-0.3.9/src/tigrcorn/server/reloader.py +0 -109
  509. tigrcorn-0.3.9/src/tigrcorn/server/runner.py +0 -871
  510. tigrcorn-0.3.9/src/tigrcorn/server/shutdown.py +0 -12
  511. tigrcorn-0.3.9/src/tigrcorn/server/signals.py +0 -33
  512. tigrcorn-0.3.9/src/tigrcorn/server/state.py +0 -13
  513. tigrcorn-0.3.9/src/tigrcorn/server/supervisor.py +0 -110
  514. tigrcorn-0.3.9/src/tigrcorn/sessions/__init__.py +0 -1
  515. tigrcorn-0.3.9/src/tigrcorn/sessions/base.py +0 -16
  516. tigrcorn-0.3.9/src/tigrcorn/sessions/connection.py +0 -12
  517. tigrcorn-0.3.9/src/tigrcorn/sessions/limits.py +0 -12
  518. tigrcorn-0.3.9/src/tigrcorn/sessions/manager.py +0 -31
  519. tigrcorn-0.3.9/src/tigrcorn/sessions/metadata.py +0 -10
  520. tigrcorn-0.3.9/src/tigrcorn/sessions/quic.py +0 -14
  521. tigrcorn-0.3.9/src/tigrcorn/static.py +0 -547
  522. tigrcorn-0.3.9/src/tigrcorn/streams/__init__.py +0 -1
  523. tigrcorn-0.3.9/src/tigrcorn/streams/base.py +0 -13
  524. tigrcorn-0.3.9/src/tigrcorn/streams/ids.py +0 -5
  525. tigrcorn-0.3.9/src/tigrcorn/streams/multiplex.py +0 -6
  526. tigrcorn-0.3.9/src/tigrcorn/streams/registry.py +0 -22
  527. tigrcorn-0.3.9/src/tigrcorn/streams/singleplex.py +0 -6
  528. tigrcorn-0.3.9/src/tigrcorn/transports/__init__.py +0 -1
  529. tigrcorn-0.3.9/src/tigrcorn/transports/base.py +0 -9
  530. tigrcorn-0.3.9/src/tigrcorn/transports/inproc/__init__.py +0 -3
  531. tigrcorn-0.3.9/src/tigrcorn/transports/inproc/channel.py +0 -19
  532. tigrcorn-0.3.9/src/tigrcorn/transports/pipe/__init__.py +0 -3
  533. tigrcorn-0.3.9/src/tigrcorn/transports/pipe/connection.py +0 -19
  534. tigrcorn-0.3.9/src/tigrcorn/transports/quic/__init__.py +0 -87
  535. tigrcorn-0.3.9/src/tigrcorn/transports/quic/connection.py +0 -2150
  536. tigrcorn-0.3.9/src/tigrcorn/transports/quic/crypto.py +0 -508
  537. tigrcorn-0.3.9/src/tigrcorn/transports/quic/datagrams.py +0 -72
  538. tigrcorn-0.3.9/src/tigrcorn/transports/quic/flow.py +0 -168
  539. tigrcorn-0.3.9/src/tigrcorn/transports/quic/handshake.py +0 -21
  540. tigrcorn-0.3.9/src/tigrcorn/transports/quic/packets.py +0 -398
  541. tigrcorn-0.3.9/src/tigrcorn/transports/quic/recovery.py +0 -435
  542. tigrcorn-0.3.9/src/tigrcorn/transports/quic/scheduler.py +0 -70
  543. tigrcorn-0.3.9/src/tigrcorn/transports/quic/streams.py +0 -932
  544. tigrcorn-0.3.9/src/tigrcorn/transports/quic/tls_adapter.py +0 -59
  545. tigrcorn-0.3.9/src/tigrcorn/transports/registry.py +0 -10
  546. tigrcorn-0.3.9/src/tigrcorn/transports/tcp/__init__.py +0 -1
  547. tigrcorn-0.3.9/src/tigrcorn/transports/tcp/accept.py +0 -7
  548. tigrcorn-0.3.9/src/tigrcorn/transports/tcp/connection.py +0 -14
  549. tigrcorn-0.3.9/src/tigrcorn/transports/tcp/reader.py +0 -59
  550. tigrcorn-0.3.9/src/tigrcorn/transports/tcp/socketopts.py +0 -13
  551. tigrcorn-0.3.9/src/tigrcorn/transports/tcp/tls.py +0 -5
  552. tigrcorn-0.3.9/src/tigrcorn/transports/tcp/writer.py +0 -8
  553. tigrcorn-0.3.9/src/tigrcorn/transports/udp/__init__.py +0 -3
  554. tigrcorn-0.3.9/src/tigrcorn/transports/udp/endpoint.py +0 -16
  555. tigrcorn-0.3.9/src/tigrcorn/transports/udp/packet.py +0 -14
  556. tigrcorn-0.3.9/src/tigrcorn/transports/udp/socketopts.py +0 -10
  557. tigrcorn-0.3.9/src/tigrcorn/transports/unix/__init__.py +0 -1
  558. tigrcorn-0.3.9/src/tigrcorn/transports/unix/connection.py +0 -10
  559. tigrcorn-0.3.9/src/tigrcorn/types.py +0 -20
  560. tigrcorn-0.3.9/src/tigrcorn/utils/__init__.py +0 -1
  561. tigrcorn-0.3.9/src/tigrcorn/utils/authority.py +0 -55
  562. tigrcorn-0.3.9/src/tigrcorn/utils/bytes.py +0 -79
  563. tigrcorn-0.3.9/src/tigrcorn/utils/headers.py +0 -151
  564. tigrcorn-0.3.9/src/tigrcorn/utils/ids.py +0 -19
  565. tigrcorn-0.3.9/src/tigrcorn/utils/imports.py +0 -14
  566. tigrcorn-0.3.9/src/tigrcorn/utils/net.py +0 -22
  567. tigrcorn-0.3.9/src/tigrcorn/utils/proxy.py +0 -170
  568. tigrcorn-0.3.9/src/tigrcorn/version.py +0 -1
  569. tigrcorn-0.3.9/src/tigrcorn/workers/__init__.py +0 -6
  570. tigrcorn-0.3.9/src/tigrcorn/workers/local.py +0 -36
  571. tigrcorn-0.3.9/src/tigrcorn/workers/model.py +0 -9
  572. tigrcorn-0.3.9/src/tigrcorn/workers/process.py +0 -120
  573. tigrcorn-0.3.9/src/tigrcorn/workers/supervisor.py +0 -58
  574. tigrcorn-0.3.9/src/tigrcorn.egg-info/PKG-INFO +0 -637
  575. tigrcorn-0.3.9/src/tigrcorn.egg-info/requires.txt +0 -40
  576. tigrcorn-0.3.9/tests/test_app_loader.py +0 -23
  577. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/LICENSE +0 -0
  578. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/setup.cfg +0 -0
  579. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/src/tigrcorn/__main__.py +0 -0
  580. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/src/tigrcorn/py.typed +0 -0
  581. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/src/tigrcorn.egg-info/dependency_links.txt +0 -0
  582. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/src/tigrcorn.egg-info/entry_points.txt +0 -0
  583. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/src/tigrcorn.egg-info/top_level.txt +0 -0
  584. /tigrcorn-0.3.9/tests/test_phase4_advanced_protocol_delivery_checkpoint.py → /tigrcorn-0.3.16.dev5/tests/test_advanced_protocol_delivery_checkpoint.py +0 -0
  585. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_aioquic_adapter_helpers.py +0 -0
  586. /tigrcorn-0.3.9/tests/test_phase9_implementation_plan.py → /tigrcorn-0.3.16.dev5/tests/test_certification_delivery_plan.py +0 -0
  587. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_certification_policy_alignment.py +0 -0
  588. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_cli_and_asgi3.py +0 -0
  589. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_compression_additional.py +0 -0
  590. /tigrcorn-0.3.9/tests/test_phase9f3_concurrency_keepalive_checkpoint.py → /tigrcorn-0.3.16.dev5/tests/test_concurrency_keepalive_checkpoint.py +0 -0
  591. /tigrcorn-0.3.9/tests/test_phase9f3_concurrency_keepalive_closure.py → /tigrcorn-0.3.16.dev5/tests/test_concurrency_keepalive_closure.py +0 -0
  592. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_config_matrix.py +0 -0
  593. /tigrcorn-0.3.9/tests/test_phase9d1_connect_relay_independent_closure.py → /tigrcorn-0.3.16.dev5/tests/test_connect_relay_independent_closure.py +0 -0
  594. /tigrcorn-0.3.9/tests/test_phase9d3_content_coding_independent_closure.py → /tigrcorn-0.3.16.dev5/tests/test_content_coding_independent_closure.py +0 -0
  595. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_content_coding_policy_local.py +0 -0
  596. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_dependency_declaration_reconciliation_checkpoint.py +0 -0
  597. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_documentation_reconciliation.py +0 -0
  598. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_external_current_release_matrix.py +0 -0
  599. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_external_independent_peer_release_matrix.py +0 -0
  600. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_external_interop_runner_matrix.py +0 -0
  601. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_external_rfc_hardening_candidate_matrix.py +0 -0
  602. /tigrcorn-0.3.9/tests/test_phase7_flag_surface_truth_reconciliation.py → /tigrcorn-0.3.16.dev5/tests/test_flag_surface_truth_reconciliation.py +0 -0
  603. /tigrcorn-0.3.9/tests/test_phase5_flow_control_bundle.py → /tigrcorn-0.3.16.dev5/tests/test_flow_control_bundle.py +0 -0
  604. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_flow_scheduler.py +0 -0
  605. /tigrcorn-0.3.9/tests/test_phase3_h1_websocket_operator_surface.py → /tigrcorn-0.3.16.dev5/tests/test_h1_websocket_operator_surface.py +0 -0
  606. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_hpack_completion_pass.py +0 -0
  607. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_http1_chunked.py +0 -0
  608. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_http1_hardening_pass.py +0 -0
  609. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_http1_parser.py +0 -0
  610. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_http1_rfc9112.py +0 -0
  611. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_http2_hpack.py +0 -0
  612. /tigrcorn-0.3.9/tests/test_phase4_http2_operator_surface.py → /tigrcorn-0.3.16.dev5/tests/test_http2_operator_surface.py +0 -0
  613. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_http2_rfc9113.py +0 -0
  614. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_http2_server_push_surface.py +0 -0
  615. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_http2_state_machine_completion.py +0 -0
  616. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_http2_websocket_rfc8441.py +0 -0
  617. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_http3_request_stream_state_machine.py +0 -0
  618. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_http3_rfc9114.py +0 -0
  619. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_http3_server.py +0 -0
  620. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_http3_websocket_rfc9220.py +0 -0
  621. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_http_content_coding_rfc9110.py +0 -0
  622. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_http_integrity_caching_signatures_status.py +0 -0
  623. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_import.py +0 -0
  624. /tigrcorn-0.3.9/tests/test_phase9b_independent_harness_foundation.py → /tigrcorn-0.3.16.dev5/tests/test_independent_harness_foundation.py +0 -0
  625. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_intermediary_proxy_corpus.py +0 -0
  626. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_lifespan.py +0 -0
  627. /tigrcorn-0.3.9/tests/test_phase5_intermediary_proxy_corpus.py → /tigrcorn-0.3.16.dev5/tests/test_minimum_certified_intermediary_proxy_corpus.py +0 -0
  628. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_observability_workers.py +0 -0
  629. /tigrcorn-0.3.9/tests/test_phase9e_ocsp_independent_closure.py → /tigrcorn-0.3.16.dev5/tests/test_ocsp_independent_closure.py +0 -0
  630. /tigrcorn-0.3.9/tests/test_phase9e_ocsp_local_validation.py → /tigrcorn-0.3.16.dev5/tests/test_ocsp_local_validation.py +0 -0
  631. /tigrcorn-0.3.9/tests/test_phase4_operator_surface.py → /tigrcorn-0.3.16.dev5/tests/test_operator_surface.py +0 -0
  632. /tigrcorn-0.3.9/tests/test_phase6_performance_harness.py → /tigrcorn-0.3.16.dev5/tests/test_performance_harness.py +0 -0
  633. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_pipe_and_inproc.py +0 -0
  634. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_prebuffered_reader_and_custom.py +0 -0
  635. /tigrcorn-0.3.9/tests/test_phase9a_promotion_contract_freeze.py → /tigrcorn-0.3.16.dev5/tests/test_promotion_contract_freeze.py +0 -0
  636. /tigrcorn-0.3.9/tests/test_phase9h_promotion_evaluator_hardening.py → /tigrcorn-0.3.16.dev5/tests/test_promotion_evaluator_hardening.py +0 -0
  637. /tigrcorn-0.3.9/tests/test_phase8_promotion_targets.py → /tigrcorn-0.3.16.dev5/tests/test_promotion_targets.py +0 -0
  638. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_provisional_all_surfaces_gap_bundle.py +0 -0
  639. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_provisional_flow_control_gap_bundle.py +0 -0
  640. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_provisional_http3_gap_bundle.py +0 -0
  641. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_public_api_cli_mtls_surface.py +0 -0
  642. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_public_api_tls_cipher_surface.py +0 -0
  643. /tigrcorn-0.3.9/tests/test_phase6_public_lifecycle_and_embedder_contract.py → /tigrcorn-0.3.16.dev5/tests/test_public_lifecycle_and_embedder_contract.py +0 -0
  644. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_public_quic_tls_packaging.py +0 -0
  645. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_qpack_completion.py +0 -0
  646. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_quic_custom_server.py +0 -0
  647. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_quic_http3.py +0 -0
  648. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_quic_http3_additional_rfc.py +0 -0
  649. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_quic_packets_rfc9000.py +0 -0
  650. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_quic_primitives.py +0 -0
  651. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_quic_recovery_live_runtime_integration.py +0 -0
  652. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_quic_recovery_rfc9002.py +0 -0
  653. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_quic_rfc_upgrade_paths.py +0 -0
  654. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_quic_runtime_additions.py +0 -0
  655. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_quic_stream_flow_state_machine.py +0 -0
  656. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_quic_tls_external_interop_regressions.py +0 -0
  657. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_quic_tls_handshake_driver.py +0 -0
  658. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_quic_tls_rfc9001.py +0 -0
  659. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_rawframed_handler.py +0 -0
  660. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_registries_models.py +0 -0
  661. /tigrcorn-0.3.9/tests/test_phase9i_release_assembly_checkpoint.py → /tigrcorn-0.3.16.dev5/tests/test_release_assembly_checkpoint.py +0 -0
  662. /tigrcorn-0.3.9/tests/test_phase7_release_candidate.py → /tigrcorn-0.3.16.dev5/tests/test_release_candidate.py +0 -0
  663. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_response_trailers_rfc9110.py +0 -0
  664. /tigrcorn-0.3.9/tests/test_phase2_rfc_boundary_formalization_checkpoint.py → /tigrcorn-0.3.16.dev5/tests/test_rfc7232_7233_boundary_formalization.py +0 -0
  665. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_rfc7232_conditional_requests.py +0 -0
  666. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_rfc7233_range_requests.py +0 -0
  667. /tigrcorn-0.3.9/tests/test_phase9c_rfc7692_independent_closure.py → /tigrcorn-0.3.16.dev5/tests/test_rfc7692_independent_closure.py +0 -0
  668. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_rfc7838_alt_svc.py +0 -0
  669. /tigrcorn-0.3.9/tests/test_phase4_rfc_boundary_formalization_checkpoint.py → /tigrcorn-0.3.16.dev5/tests/test_rfc8297_7838_boundary_formalization.py +0 -0
  670. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_rfc8297_early_hints.py +0 -0
  671. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_rfc_applicability_and_competitor_status.py +0 -0
  672. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_rfc_applicability_and_competitor_support.py +0 -0
  673. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_rfc_compliance_hardening.py +0 -0
  674. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_scheduler_runtime.py +0 -0
  675. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_security_compat_utils.py +0 -0
  676. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_server_http1.py +0 -0
  677. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_server_http2.py +0 -0
  678. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_server_websocket.py +0 -0
  679. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_sessions_streams.py +0 -0
  680. /tigrcorn-0.3.9/tests/test_phase1_surface_parity_checkpoint.py → /tigrcorn-0.3.16.dev5/tests/test_surface_parity_checkpoint.py +0 -0
  681. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_tcp_tls_package_owned.py +0 -0
  682. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_tls13_engine_upgrade.py +0 -0
  683. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_tls_alpn_rfc7301.py +0 -0
  684. /tigrcorn-0.3.9/tests/test_phase9f1_tls_cipher_policy_closure.py → /tigrcorn-0.3.16.dev5/tests/test_tls_cipher_policy_closure.py +0 -0
  685. /tigrcorn-0.3.9/tests/test_phase5_tls_operator_material_surface.py → /tigrcorn-0.3.16.dev5/tests/test_tls_operator_material_surface.py +0 -0
  686. /tigrcorn-0.3.9/tests/test_phase9d2_trailer_fields_independent_closure.py → /tigrcorn-0.3.16.dev5/tests/test_trailer_fields_independent_closure.py +0 -0
  687. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_trailer_policy_strict_local.py +0 -0
  688. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_trailers_rfc9110.py +0 -0
  689. /tigrcorn-0.3.9/tests/test_phase3_transport_core_strictness_checkpoint.py → /tigrcorn-0.3.16.dev5/tests/test_transport_core_strictness_checkpoint.py +0 -0
  690. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_trio_runtime_surface_reconciliation_checkpoint.py +0 -0
  691. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_websocket_additional_rfc6455.py +0 -0
  692. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_websocket_frames.py +0 -0
  693. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_websocket_rfc6455.py +0 -0
  694. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_websocket_rfc7692.py +0 -0
  695. {tigrcorn-0.3.9 → tigrcorn-0.3.16.dev5}/tests/test_x509_webpki_validation.py +0 -0
@@ -0,0 +1,933 @@
1
+ Metadata-Version: 2.4
2
+ Name: tigrcorn
3
+ Version: 0.3.16.dev5
4
+ Summary: ASGI3 Python web server with built-in HTTP/1.1, HTTP/2, HTTP/3, QUIC, WebSocket, WebTransport, TLS, and certification tooling.
5
+ Author-email: Jacob Stewart <jacob@swarmauri.com>
6
+ License: Apache License
7
+ Version 2.0, January 2004
8
+ http://www.apache.org/licenses/
9
+
10
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
11
+
12
+ 1. Definitions.
13
+
14
+ "License" shall mean the terms and conditions for use, reproduction, and
15
+ distribution as defined by Sections 1 through 9 of this document.
16
+
17
+ "Licensor" shall mean the copyright owner or entity authorized by the
18
+ copyright owner that is granting the License.
19
+
20
+ "Legal Entity" shall mean the union of the acting entity and all other
21
+ entities that control, are controlled by, or are under common control with
22
+ that entity. For the purposes of this definition, "control" means (i) the
23
+ power, direct or indirect, to cause the direction or management of such
24
+ entity, whether by contract or otherwise, or (ii) ownership of fifty percent
25
+ (50%) or more of the outstanding shares, or (iii) beneficial ownership of
26
+ such entity.
27
+
28
+ "You" (or "Your") shall mean an individual or Legal Entity exercising
29
+ permissions granted by this License.
30
+
31
+ "Source" form shall mean the preferred form for making modifications,
32
+ including but not limited to software source code, documentation source, and
33
+ configuration files.
34
+
35
+ "Object" form shall mean any form resulting from mechanical transformation
36
+ or translation of a Source form, including but not limited to compiled object
37
+ code, generated documentation, and conversions to other media types.
38
+
39
+ "Work" shall mean the work of authorship, whether in Source or Object form,
40
+ made available under the License, as indicated by a copyright notice that is
41
+ included in or attached to the work (an example is provided in the Appendix
42
+ below).
43
+
44
+ "Derivative Works" shall mean any work, whether in Source or Object form,
45
+ that is based on (or derived from) the Work and for which the editorial
46
+ revisions, annotations, elaborations, or other modifications represent, as a
47
+ whole, an original work of authorship. For the purposes of this License,
48
+ Derivative Works shall not include works that remain separable from, or
49
+ merely link (or bind by name) to the interfaces of, the Work and Derivative
50
+ Works thereof.
51
+
52
+ "Contribution" shall mean any work of authorship, including the original
53
+ version of the Work and any modifications or additions to that Work or
54
+ Derivative Works thereof, that is intentionally submitted to Licensor for
55
+ inclusion in the Work by the copyright owner or by an individual or Legal
56
+ Entity authorized to submit on behalf of the copyright owner. For the
57
+ purposes of this definition, "submitted" means any form of electronic,
58
+ verbal, or written communication sent to the Licensor or its representatives,
59
+ including but not limited to communication on electronic mailing lists,
60
+ source code control systems, and issue tracking systems that are managed by,
61
+ or on behalf of, the Licensor for the purpose of discussing and improving the
62
+ Work, but excluding communication that is conspicuously marked or otherwise
63
+ designated in writing by the copyright owner as "Not a Contribution."
64
+
65
+ "Contributor" shall mean Licensor and any individual or Legal Entity on
66
+ behalf of whom a Contribution has been received by Licensor and subsequently
67
+ incorporated within the Work.
68
+
69
+ 2. Grant of Copyright License. Subject to the terms and conditions of this
70
+ License, each Contributor hereby grants to You a perpetual, worldwide,
71
+ non-exclusive, no-charge, royalty-free, irrevocable copyright license to
72
+ reproduce, prepare Derivative Works of, publicly display, publicly perform,
73
+ sublicense, and distribute the Work and such Derivative Works in Source or
74
+ Object form.
75
+
76
+ 3. Grant of Patent License. Subject to the terms and conditions of this
77
+ License, each Contributor hereby grants to You a perpetual, worldwide,
78
+ non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this
79
+ section) patent license to make, have made, use, offer to sell, sell, import,
80
+ and otherwise transfer the Work, where such license applies only to those
81
+ patent claims licensable by such Contributor that are necessarily infringed by
82
+ their Contribution(s) alone or by combination of their Contribution(s) with
83
+ the Work to which such Contribution(s) was submitted. If You institute patent
84
+ litigation against any entity (including a cross-claim or counterclaim in a
85
+ lawsuit) alleging that the Work or a Contribution incorporated within the Work
86
+ constitutes direct or contributory patent infringement, then any patent
87
+ licenses granted to You under this License for that Work shall terminate as of
88
+ the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the Work or
91
+ Derivative Works thereof in any medium, with or without modifications, and in
92
+ Source or Object form, provided that You meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or Derivative Works a copy
95
+ of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices stating that
98
+ You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works that You
101
+ distribute, all copyright, patent, trademark, and attribution notices
102
+ from the Source form of the Work, excluding those notices that do not
103
+ pertain to any part of the Derivative Works; and
104
+
105
+ (d) If the Work includes a "NOTICE" text file as part of its distribution,
106
+ then any Derivative Works that You distribute must include a readable copy
107
+ of the attribution notices contained within such NOTICE file, excluding
108
+ those notices that do not pertain to any part of the Derivative Works, in
109
+ at least one of the following places: within a NOTICE text file distributed
110
+ as part of the Derivative Works; within the Source form or documentation,
111
+ if provided along with the Derivative Works; or, within a display generated
112
+ by the Derivative Works, if and wherever such third-party notices normally
113
+ appear. The contents of the NOTICE file are for informational purposes only
114
+ and do not modify the License. You may add Your own attribution notices
115
+ within Derivative Works that You distribute, alongside or as an addendum to
116
+ the NOTICE text from the Work, provided that such additional attribution
117
+ notices cannot be construed as modifying the License.
118
+
119
+ You may add Your own copyright statement to Your modifications and may provide
120
+ additional or different license terms and conditions for use, reproduction, or
121
+ distribution of Your modifications, or for any such Derivative Works as a
122
+ whole, provided Your use, reproduction, and distribution of the Work otherwise
123
+ complies with the conditions stated in this License.
124
+
125
+ 5. Submission of Contributions. Unless You explicitly state otherwise, any
126
+ Contribution intentionally submitted for inclusion in the Work by You to the
127
+ Licensor shall be under the terms and conditions of this License, without any
128
+ additional terms or conditions. Notwithstanding the above, nothing herein
129
+ shall supersede or modify the terms of any separate license agreement you may
130
+ have executed with Licensor regarding such Contributions.
131
+
132
+ 6. Trademarks. This License does not grant permission to use the trade names,
133
+ trademarks, service marks, or product names of the Licensor, except as
134
+ required for reasonable and customary use in describing the origin of the Work
135
+ and reproducing the content of the NOTICE file.
136
+
137
+ 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in
138
+ writing, Licensor provides the Work (and each Contributor provides its
139
+ Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
140
+ KIND, either express or implied, including, without limitation, any warranties
141
+ or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
142
+ PARTICULAR PURPOSE. You are solely responsible for determining the
143
+ appropriateness of using or redistributing the Work and assume any risks
144
+ associated with Your exercise of permissions under this License.
145
+
146
+ 8. Limitation of Liability. In no event and under no legal theory, whether in
147
+ tort (including negligence), contract, or otherwise, unless required by
148
+ applicable law (such as deliberate and grossly negligent acts) or agreed to in
149
+ writing, shall any Contributor be liable to You for damages, including any
150
+ direct, indirect, special, incidental, or consequential damages of any
151
+ character arising as a result of this License or out of the use or inability
152
+ to use the Work (including but not limited to damages for loss of goodwill,
153
+ work stoppage, computer failure or malfunction, or any and all other
154
+ commercial damages or losses), even if such Contributor has been advised of
155
+ the possibility of such damages.
156
+
157
+ 9. Accepting Warranty or Additional Liability. While redistributing the Work or
158
+ Derivative Works thereof, You may choose to offer, and charge a fee for,
159
+ acceptance of support, warranty, indemnity, or other liability obligations
160
+ and/or rights consistent with this License. However, in accepting such
161
+ obligations, You may act only on Your own behalf and on Your sole
162
+ responsibility, not on behalf of any other Contributor, and only if You agree
163
+ to indemnify, defend, and hold each Contributor harmless for any liability
164
+ incurred by, or claims asserted against, such Contributor by reason of your
165
+ accepting any such warranty or additional liability.
166
+
167
+ END OF TERMS AND CONDITIONS
168
+
169
+
170
+ Keywords: asgi,asgi3,server,http,http1,http2,http3,quic,websocket,webtransport,tls,python-web-server,uvicorn-alternative,hypercorn-alternative
171
+ Classifier: Development Status :: 3 - Alpha
172
+ Classifier: Framework :: AsyncIO
173
+ Classifier: Intended Audience :: Developers
174
+ Classifier: License :: OSI Approved :: Apache Software License
175
+ Classifier: Operating System :: OS Independent
176
+ Classifier: Programming Language :: Python :: 3
177
+ Classifier: Programming Language :: Python :: 3 :: Only
178
+ Classifier: Programming Language :: Python :: 3.11
179
+ Classifier: Programming Language :: Python :: 3.12
180
+ Classifier: Programming Language :: Python :: 3.13
181
+ Classifier: Topic :: Internet :: WWW/HTTP
182
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
183
+ Classifier: Topic :: System :: Networking
184
+ Classifier: Typing :: Typed
185
+ Requires-Python: >=3.11
186
+ Description-Content-Type: text/markdown
187
+ License-File: LICENSE
188
+ Requires-Dist: tigrcorn-core==0.3.16.dev5
189
+ Requires-Dist: tigrcorn-config==0.3.16.dev5
190
+ Requires-Dist: tigrcorn-asgi==0.3.16.dev5
191
+ Requires-Dist: tigrcorn-contract==0.3.16.dev5
192
+ Requires-Dist: tigrcorn-transports==0.3.16.dev5
193
+ Requires-Dist: tigrcorn-protocols==0.3.16.dev5
194
+ Requires-Dist: tigrcorn-http==0.3.16.dev5
195
+ Requires-Dist: tigrcorn-security==0.3.16.dev5
196
+ Requires-Dist: tigrcorn-runtime==0.3.16.dev5
197
+ Requires-Dist: tigrcorn-static==0.3.16.dev5
198
+ Requires-Dist: tigrcorn-observability==0.3.16.dev5
199
+ Requires-Dist: tigrcorn-compat==0.3.16.dev5
200
+ Requires-Dist: tigrcorn-certification==0.3.16.dev5
201
+ Requires-Dist: tigr-asgi-contract>=0.3.2
202
+ Provides-Extra: tls-x509
203
+ Requires-Dist: cryptography>=46.0.0; extra == "tls-x509"
204
+ Provides-Extra: certification
205
+ Requires-Dist: cryptography>=46.0.0; extra == "certification"
206
+ Requires-Dist: aioquic>=1.3.0; extra == "certification"
207
+ Requires-Dist: h11>=0.14.0; extra == "certification"
208
+ Requires-Dist: h2>=4.1.0; extra == "certification"
209
+ Requires-Dist: websockets>=12.0; extra == "certification"
210
+ Requires-Dist: wsproto>=1.3.0; extra == "certification"
211
+ Provides-Extra: config-yaml
212
+ Requires-Dist: PyYAML>=6.0; extra == "config-yaml"
213
+ Provides-Extra: compression
214
+ Requires-Dist: brotli>=1.1.0; extra == "compression"
215
+ Provides-Extra: runtime-uvloop
216
+ Requires-Dist: uvloop>=0.19.0; platform_system != "Windows" and extra == "runtime-uvloop"
217
+ Provides-Extra: runtime-trio
218
+ Requires-Dist: trio>=0.25.0; extra == "runtime-trio"
219
+ Provides-Extra: full-featured
220
+ Requires-Dist: cryptography>=46.0.0; extra == "full-featured"
221
+ Requires-Dist: PyYAML>=6.0; extra == "full-featured"
222
+ Requires-Dist: brotli>=1.1.0; extra == "full-featured"
223
+ Requires-Dist: uvloop>=0.19.0; platform_system != "Windows" and extra == "full-featured"
224
+ Provides-Extra: dev
225
+ Requires-Dist: cryptography>=46.0.0; extra == "dev"
226
+ Requires-Dist: pytest>=8.0; extra == "dev"
227
+ Requires-Dist: ssot-registry>=0.1.0; extra == "dev"
228
+ Requires-Dist: aioquic>=1.3.0; extra == "dev"
229
+ Requires-Dist: h11>=0.14.0; extra == "dev"
230
+ Requires-Dist: h2>=4.1.0; extra == "dev"
231
+ Requires-Dist: websockets>=12.0; extra == "dev"
232
+ Requires-Dist: wsproto>=1.3.0; extra == "dev"
233
+ Requires-Dist: PyYAML>=6.0; extra == "dev"
234
+ Requires-Dist: brotli>=1.1.0; extra == "dev"
235
+ Requires-Dist: uvloop>=0.19.0; platform_system != "Windows" and extra == "dev"
236
+ Dynamic: license-file
237
+
238
+ <div align="center">
239
+
240
+ <h1>Tigrcorn</h1>
241
+
242
+ <img
243
+ src="https://github.com/Tigrbl/tigrcorn/blob/68c5baadd745555de1c6bee70d9b9f3763a7ed3c/assets/tigrcorn_brand_frag_light.png?raw=1"
244
+ alt="Tigrcorn light branding fragment"
245
+ />
246
+
247
+ > ASGI3 server with built-in HTTP/1.1, HTTP/2, HTTP/3, QUIC, WebSocket, TLS, static delivery, and release validation.
248
+
249
+ ---
250
+ </div>
251
+
252
+ <p align="center"><strong>Release status</strong><br>
253
+ <a href="docs/review/conformance/releases/0.3.9/release-0.3.9/"><img alt="repo line 0.3.9" src="https://img.shields.io/badge/repo_line-0.3.9-2f7ed8"></a>
254
+ <a href="docs/review/conformance/state/CURRENT_REPOSITORY_STATE.md"><img alt="current state canonical" src="https://img.shields.io/badge/current_state-canonical-0969da"></a>
255
+ <a href="docs/review/conformance/CERTIFICATION_BOUNDARY.md"><img alt="authoritative boundary green" src="https://img.shields.io/badge/authoritative_boundary-green-1f883d"></a>
256
+ <a href="docs/review/conformance/STRICT_PROFILE_TARGET.md"><img alt="strict profile green" src="https://img.shields.io/badge/strict_profile-green-1f883d"></a>
257
+ <a href="docs/review/conformance/releases/0.3.9/release-0.3.9/"><img alt="promotion green" src="https://img.shields.io/badge/promotion-green-1f883d"></a>
258
+ <a href=".codex/AGENTS.md"><img alt="agents documented" src="https://img.shields.io/badge/agents-documented-6f42c1"></a>
259
+ </p>
260
+
261
+ <p align="center"><strong>Package</strong><br>
262
+ <a href="https://pypi.org/project/tigrcorn/"><img alt="PyPI version" src="https://img.shields.io/pypi/v/tigrcorn?label=PyPI"></a>
263
+ <a href="https://pypistats.org/packages/tigrcorn"><img alt="PyPI downloads per month" src="https://img.shields.io/pypi/dm/tigrcorn?label=downloads%2Fmonth"></a>
264
+ <a href="https://pypistats.org/packages/tigrcorn"><img alt="PyPI downloads per week" src="https://img.shields.io/pypi/dw/tigrcorn?label=downloads%2Fweek"></a>
265
+ <a href="https://pypistats.org/packages/tigrcorn"><img alt="PyPI downloads per day" src="https://img.shields.io/pypi/dd/tigrcorn?label=downloads%2Fday"></a>
266
+ <a href="LICENSE"><img alt="license Apache 2.0" src="https://img.shields.io/badge/license-Apache%202.0-525252"></a>
267
+ <a href="pyproject.toml"><img alt="Python 3.11 supported" src="https://img.shields.io/badge/python-3.11-3776ab"></a>
268
+ <a href="pyproject.toml"><img alt="Python 3.12 supported" src="https://img.shields.io/badge/python-3.12-3776ab"></a>
269
+ <a href="docs/review/conformance/OPTIONAL_DEPENDENCY_SURFACE.md"><img alt="runtime auto supported" src="https://img.shields.io/badge/runtime-auto-0a7f5a"></a>
270
+ <a href="docs/review/conformance/OPTIONAL_DEPENDENCY_SURFACE.md"><img alt="runtime asyncio supported" src="https://img.shields.io/badge/runtime-asyncio-0a7f5a"></a>
271
+ <a href="docs/review/conformance/OPTIONAL_DEPENDENCY_SURFACE.md"><img alt="runtime uvloop supported" src="https://img.shields.io/badge/runtime-uvloop-0a7f5a"></a>
272
+ </p>
273
+
274
+ <p align="center"><strong>Protocol status</strong><br>
275
+ <a href="docs/protocols/http1.md"><img alt="HTTP/1.1 C-RFC" src="https://img.shields.io/badge/HTTP%2F1.1-C--RFC-1f883d"></a>
276
+ <a href="docs/protocols/http2.md"><img alt="HTTP/2 C-RFC" src="https://img.shields.io/badge/HTTP%2F2-C--RFC-1f883d"></a>
277
+ <a href="docs/protocols/http3.md"><img alt="HTTP/3 C-RFC" src="https://img.shields.io/badge/HTTP%2F3-C--RFC-1f883d"></a>
278
+ <a href="docs/protocols/quic.md"><img alt="QUIC C-RFC" src="https://img.shields.io/badge/QUIC-C--RFC-1f883d"></a>
279
+ <a href="docs/protocols/websocket.md"><img alt="WebSocket C-RFC" src="https://img.shields.io/badge/WebSocket-C--RFC-1f883d"></a>
280
+ <a href="docs/protocols/websocket.md"><img alt="RFC 8441 C-RFC" src="https://img.shields.io/badge/RFC8441-C--RFC-1f883d"></a>
281
+ <a href="docs/protocols/websocket.md"><img alt="RFC 9220 C-RFC" src="https://img.shields.io/badge/RFC9220-C--RFC-1f883d"></a>
282
+ <a href="docs/review/conformance/CERTIFICATION_BOUNDARY.md"><img alt="TLS 1.3 X.509 OCSP C-RFC" src="https://img.shields.io/badge/TLS1.3_X.509_OCSP-C--RFC-1f883d"></a>
283
+ </p>
284
+
285
+ <p align="center"><strong>Operator and API surface status</strong><br>
286
+ <a href="docs/ops/cli.md"><img alt="CLI C-OP" src="https://img.shields.io/badge/CLI-C--OP-0a7f5a"></a>
287
+ <a href="docs/LIFECYCLE_AND_EMBEDDED_SERVER.md"><img alt="EmbeddedServer C-OP" src="https://img.shields.io/badge/EmbeddedServer-C--OP-0a7f5a"></a>
288
+ <a href="docs/LIFECYCLE_AND_EMBEDDED_SERVER.md"><img alt="Lifecycle hooks C-OP" src="https://img.shields.io/badge/Lifecycle_hooks-C--OP-0a7f5a"></a>
289
+ <a href="docs/ops/public.md"><img alt="StaticFilesApp C-OP" src="https://img.shields.io/badge/StaticFilesApp-C--OP-0a7f5a"></a>
290
+ <a href="docs/ops/cli.md"><img alt="Workers and reload C-OP" src="https://img.shields.io/badge/Workers_reload-C--OP-0a7f5a"></a>
291
+ <a href="docs/ops/cli.md"><img alt="Metrics and logging C-OP" src="https://img.shields.io/badge/Metrics_logging-C--OP-0a7f5a"></a>
292
+ <a href="docs/ops/public.md"><img alt="Release gates C-OP" src="https://img.shields.io/badge/Release_gates-C--OP-0a7f5a"></a>
293
+ </p>
294
+
295
+
296
+ ---
297
+
298
+ Tigrcorn is an ASGI3 server for teams that want modern transport and protocol support, explicit operator controls, and a public Python API that matches the shipped runtime. It implements HTTP/1.1, HTTP/2, HTTP/3, QUIC, WebSockets, TLS handling, static delivery, and release checks inside the project, with operator docs and current-state material kept alongside the code.
299
+
300
+ Most users should start with **Quick start**, **Protocol and feature map**, and **CLI usage**. Maintainers should use the SSOT, governance, and conformance links when changing claimed support, release boundaries, or certification evidence.
301
+
302
+
303
+ ## Table of contents
304
+
305
+ - [Legend](#legend)
306
+ - [Choose your path](#choose-your-path)
307
+ - [Quick start](#quick-start)
308
+ - [Why teams pick Tigrcorn](#why-teams-pick-tigrcorn)
309
+ - [What Tigrcorn provides](#what-tigrcorn-provides)
310
+ - [Installation and extras](#installation-and-extras)
311
+ - [Protocol and feature map](#protocol-and-feature-map)
312
+ - [CLI usage](#cli-usage)
313
+ - [Public API and embedding usage](#public-api-and-embedding-usage)
314
+ - [Current scope](#current-scope)
315
+ - [Status at a glance](#status-at-a-glance)
316
+ - [Validation and promotion](#validation-and-promotion)
317
+ - [Where to look](#where-to-look)
318
+ - [Governance and maintainer workflow](#governance-and-maintainer-workflow)
319
+ - [Current-state and historical planning](#current-state-and-historical-planning)
320
+ - [Certification environment freeze](#certification-environment-freeze)
321
+ - [Contributing, conduct, and community norms](#contributing-conduct-and-community-norms)
322
+ - [Footnotes](#footnotes)
323
+
324
+ ## Legend
325
+
326
+ Use this legend for the badges, status tables, and scope markers in this README.
327
+
328
+ | Marker | Meaning |
329
+ |---|---|
330
+ | `C-RFC` | included in Tigrcorn's current certified RFC boundary |
331
+ | `C-OP` | included in Tigrcorn's current public operator/API surface |
332
+ | `O` | outside Tigrcorn's current documented scope |
333
+ | `green` | the referenced repo contract or evaluation target is currently passing |
334
+ | `canonical` | the referenced document is the current mutable source of truth |
335
+ | `repo_line` | the active repository release line represented by this checkout |
336
+ | `runtime-auto`, `runtime-asyncio`, `runtime-uvloop` | documented runtime modes in the current public surface |
337
+
338
+ The top badge groups use plain language labels where possible. The protocol and feature tables use `C-RFC`, `C-OP`, and `O` as compact scope markers.
339
+
340
+ ## Choose your path
341
+
342
+ | Goal | Start with | Then use |
343
+ |---|---|---|
344
+ | Run Tigrcorn as an ASGI server | [Quick start](#quick-start) | `docs/ops/cli.md`, `docs/ops/profiles.md` |
345
+ | Configure production behavior | `docs/ops/cli.md` | `docs/ops/defaults.md`, `docs/ops/observability.md`, `docs/ops/policies.md` |
346
+ | Build on Tigrcorn from Python | [Public API and embedding usage](#public-api-and-embedding-usage) | `docs/ops/public.md`, `docs/LIFECYCLE_AND_EMBEDDED_SERVER.md` |
347
+ | Understand protocol and feature support | [Protocol and feature map](#protocol-and-feature-map) | `docs/protocols/`, `docs/review/conformance/CERTIFICATION_BOUNDARY.md`, `.ssot/registry.json` |
348
+ | Change runtime behavior | `.codex/AGENTS.md` | `docs/gov/authoring.md`, `tests/`, `tools/ssot_sync.py` |
349
+ | Change claimed support or release truth | `.ssot/registry.json` | `.ssot/adr/`, `.ssot/specs/`, `docs/review/conformance/` |
350
+
351
+ ## Quick start
352
+
353
+ ### Install
354
+
355
+ ```bash
356
+ python -m pip install tigrcorn
357
+ ```
358
+
359
+ ### Run an HTTP server
360
+
361
+ ```bash
362
+ tigrcorn examples.echo_http.app:app --host 127.0.0.1 --port 8000
363
+ ```
364
+
365
+ ### Run HTTP/3 + QUIC
366
+
367
+ ```bash
368
+ tigrcorn examples.echo_http.app:app \
369
+ --quic-bind 127.0.0.1:8443 \
370
+ --http 3 \
371
+ --protocol http3 \
372
+ --protocol quic \
373
+ --ssl-certfile ./certs/server.pem \
374
+ --ssl-keyfile ./certs/server.key
375
+ ```
376
+
377
+ ### Run from Python
378
+
379
+ ```python
380
+ from tigrcorn import run
381
+
382
+ run("examples.echo_http.app:app", host="127.0.0.1", port=8000)
383
+ ```
384
+
385
+ For complete operator recipes, use `docs/ops/cli.md`. For public imports and lifecycle details, use `docs/ops/public.md` and `docs/LIFECYCLE_AND_EMBEDDED_SERVER.md`.
386
+ For the blessed safe deployment profiles, use `docs/ops/profiles.md` and the packaged `src/tigrcorn/profiles/*.profile.json` artifacts.
387
+
388
+ ## Why teams pick Tigrcorn
389
+
390
+ - **Modern protocol stack in the server itself.** HTTP/1.1, HTTP/2, HTTP/3, QUIC, WebSockets, TLS 1.3, ALPN, X.509 validation, OCSP, and CRL handling are first-class documented surfaces.
391
+ - **Operator features that matter in deployment.** Listener binding, TLS and QUIC controls, workers, reload, structured logging, metrics, proxy normalization, content-coding policy, CONNECT policy, Early Hints, Alt-Svc, and static delivery are part of the public surface.
392
+ - **A public Python API for applications and hosts.** `run`, `serve`, `serve_import_string`, `EmbeddedServer`, `StaticFilesApp`, and the config helpers are documented as importable entrypoints.
393
+ - **Static delivery and entity semantics built into the package.** Static mounting, precompressed sidecars, conditional requests, range requests, and response-path helpers are available without a separate static server wrapper.
394
+ - **Release and promotion checks in the repo.** `evaluate_release_gates` and `evaluate_promotion_target` are shipped APIs, and the repo preserves current-state and promoted-release material under `docs/review/conformance/`.
395
+
396
+ ## What Tigrcorn provides
397
+
398
+ | Area | What you get | Primary docs |
399
+ |---|---|---|
400
+ | Server runtime | ASGI3 execution over HTTP/1.1, HTTP/2, HTTP/3, QUIC, and WebSockets | `docs/protocols/`, `examples/` |
401
+ | Security | TLS 1.3 controls, ALPN, certificate validation, OCSP, CRL handling | `docs/review/conformance/CERTIFICATION_BOUNDARY.md` |
402
+ | Delivery | static files, ETag/conditional handling, range support, content coding, Early Hints, Alt-Svc | `docs/ops/public.md`, `docs/review/conformance/DEPLOYMENT_PROFILES.md` |
403
+ | Operations | listeners, workers, reload, metrics, logging, proxy normalization, timeouts and resource controls | `docs/ops/cli.md` |
404
+ | Embedding | `run`, `serve`, `serve_import_string`, `EmbeddedServer`, lifecycle hooks | `docs/ops/public.md`, `docs/LIFECYCLE_AND_EMBEDDED_SERVER.md` |
405
+ | Config | typed config model, config-file loading, env loading, merge from CLI/env/file/defaults | `docs/ops/public.md`, `docs/ops/cli.md` |
406
+ | Blessed profiles | generated safe deployment profiles plus profile conformance bundles | `docs/ops/profiles.md`, `docs/conformance/profile_bundles.json` |
407
+ | Release checks | release-gate and promotion-target evaluators | `docs/gov/release.md`, `docs/ops/public.md` |
408
+ | Current-state and release records | canonical current-state docs plus frozen promoted roots | `docs/review/conformance/state/`, `docs/review/conformance/releases/` |
409
+
410
+ ## Installation and extras
411
+
412
+ ### Base install
413
+
414
+ ```bash
415
+ python -m pip install tigrcorn
416
+ ```
417
+
418
+ ### Certification / development install
419
+
420
+ ```bash
421
+ python -m pip install -e ".[certification,dev]"
422
+ ```
423
+
424
+ ### Optional extras
425
+
426
+ | Extra | Status | Use it for |
427
+ |---|---|---|
428
+ | `tls-x509` | supported | package-owned TLS/X.509 validation, certificate handling, and revocation helpers |
429
+ | `config-yaml` | supported | `.yaml` / `.yml` config loading |
430
+ | `compression` | supported | Brotli content coding and `.br` sidecars |
431
+ | `runtime-uvloop` | supported | `--runtime uvloop` on supported platforms |
432
+ | `runtime-trio` | declared, not supported | reserved dependency path only |
433
+ | `full-featured` | supported | current aggregate optional operator feature surface |
434
+ | `certification` | supported | interop and certification tooling |
435
+ | `dev` | supported | local development and validation |
436
+
437
+ ### Practical install examples
438
+
439
+ ```bash
440
+ # TLS/X.509 validation and certificate-material helpers
441
+ python -m pip install -e ".[tls-x509]"
442
+
443
+ # YAML config support
444
+ python -m pip install -e ".[config-yaml]"
445
+
446
+ # Brotli + precompressed static sidecars
447
+ python -m pip install -e ".[compression]"
448
+
449
+ # uvloop runtime option (non-Windows)
450
+ python -m pip install -e ".[runtime-uvloop]"
451
+
452
+ # current aggregate optional feature surface
453
+ python -m pip install -e ".[full-featured]"
454
+ ```
455
+
456
+ The authoritative optional dependency reference is `docs/review/conformance/OPTIONAL_DEPENDENCY_SURFACE.md`. TLS/X.509 operations rely on the optional `tigrcorn[tls-x509]` extra.
457
+
458
+ ## Protocol and feature map
459
+
460
+ This section is a public support snapshot. It keeps protocol and feature details visible in the README, but it does not replace the deeper truth surfaces. Use `C-RFC` for current certified protocol claims, `C-OP` for current operator/API surfaces, and `O` for intentionally out-of-scope behavior. When changing claimed support, update `.ssot/registry.json`, the related ADR/SPEC/feature/claim/test/evidence rows, and the conformance boundary together.
461
+
462
+ > **Legend:** `C-RFC` = inside the current certified RFC boundary · `C-OP` = inside the public/operator surface · `O` = outside the current scope
463
+
464
+ ### Core protocol, transport, and delivery
465
+
466
+ | Category | Surface | Status | Primary docs |
467
+ |---|---|---|---|
468
+ | HTTP | HTTP/1.1 (`RFC 9112`) | `C-RFC` | `docs/protocols/http1.md` |
469
+ | HTTP | HTTP/2 (`RFC 9113`) | `C-RFC` | `docs/protocols/http2.md` |
470
+ | HTTP | HTTP/3 (`RFC 9114`) | `C-RFC` | `docs/protocols/http3.md` |
471
+ | QUIC | QUIC transport (`RFC 9000`, `RFC 9001`, `RFC 9002`) | `C-RFC` | `docs/protocols/quic.md` |
472
+ | WebSocket | RFC 6455 / RFC 8441 / RFC 9220 carriers | `C-RFC` | `docs/protocols/websocket.md` |
473
+ | Delivery | CONNECT relay, trailer fields, content coding | `C-RFC` | `docs/review/conformance/DEPLOYMENT_PROFILES.md` |
474
+ | Delivery | Conditional requests, range requests, Early Hints, bounded Alt-Svc | `C-RFC` | `docs/review/conformance/RFC_APPLICABILITY_AND_COMPETITOR_STATUS.md` |
475
+ | Security | TLS 1.3, ALPN, X.509, OCSP, CRL | `C-RFC` | `docs/review/conformance/CERTIFICATION_BOUNDARY.md` |
476
+
477
+ ### Operator and public API surface
478
+
479
+ | Category | Surface | Status | Primary docs |
480
+ |---|---|---|---|
481
+ | CLI | `tigrcorn`, `python -m tigrcorn`, `tigrcorn-interop` | `C-OP` | `docs/ops/cli.md` |
482
+ | Config | `build_config`, `build_config_from_namespace`, `build_config_from_sources` | `C-OP` | `docs/ops/public.md` |
483
+ | Embedding | `EmbeddedServer`, lifecycle hooks, public lifecycle contract | `C-OP` | `docs/LIFECYCLE_AND_EMBEDDED_SERVER.md` |
484
+ | Static | `StaticFilesApp`, `mount_static_app`, static route flags | `C-OP` | `docs/ops/public.md` |
485
+ | Operations | reload, workers, runtime selection, metrics, logging, proxy normalization | `C-OP` | `docs/ops/cli.md` |
486
+ | Release | `evaluate_release_gates`, `evaluate_promotion_target` | `C-OP` | `docs/ops/public.md`, `docs/gov/release.md` |
487
+ | Custom transports | pipe / inproc / rawframed / custom | `C-OP` with boundary notes | `docs/protocols/custom-transports.md`, `docs/review/conformance/BOUNDARY_NON_GOALS.md` |
488
+
489
+ ## CLI usage
490
+
491
+ The main command is `tigrcorn`. The public module entrypoint is `python -m tigrcorn`. The interoperability runner is `tigrcorn-interop`.
492
+
493
+ For complete operator coverage, use:
494
+
495
+ - `docs/ops/cli.md`
496
+ - `docs/review/conformance/CLI_FLAG_SURFACE.md`
497
+ - `docs/review/conformance/cli_flag_surface.json`
498
+ - `docs/review/conformance/DEPLOYMENT_PROFILES.md`
499
+ - `docs/review/conformance/cli_help.current.txt`
500
+ - `docs/review/conformance/tigrcorn_interop_help.current.txt`
501
+
502
+ ### Config precedence
503
+
504
+ ```text
505
+ CLI > env > config file > defaults
506
+ ```
507
+
508
+ That precedence is implemented by `build_config_from_sources` and documented in `docs/gov/code.md`.
509
+
510
+ ### Common launch patterns
511
+
512
+ #### Minimal HTTP/1.1 + HTTP/2
513
+
514
+ ```bash
515
+ tigrcorn examples.echo_http.app:app --host 127.0.0.1 --port 8000
516
+ ```
517
+
518
+ #### App factory loading
519
+
520
+ ```bash
521
+ tigrcorn examples.echo_http.app:create_app --factory --host 127.0.0.1 --port 8000
522
+ ```
523
+
524
+ #### Config file + environment merge
525
+
526
+ ```bash
527
+ tigrcorn examples.echo_http.app:app \
528
+ --config ./tigrcorn.toml \
529
+ --env-file ./.env \
530
+ --env-prefix TIGRCORN
531
+ ```
532
+
533
+ #### HTTP/2 over TLS
534
+
535
+ ```bash
536
+ tigrcorn examples.echo_http.app:app \
537
+ --bind 127.0.0.1:8443 \
538
+ --http 2 \
539
+ --ssl-certfile ./certs/server.pem \
540
+ --ssl-keyfile ./certs/server.key
541
+ ```
542
+
543
+ #### HTTP/3 / QUIC
544
+
545
+ ```bash
546
+ tigrcorn examples.echo_http.app:app \
547
+ --quic-bind 127.0.0.1:8443 \
548
+ --http 3 \
549
+ --protocol http3 \
550
+ --protocol quic \
551
+ --ssl-certfile ./certs/server.pem \
552
+ --ssl-keyfile ./certs/server.key
553
+ ```
554
+
555
+ #### WebSocket compression
556
+
557
+ ```bash
558
+ tigrcorn examples.websocket_echo.app:app \
559
+ --host 127.0.0.1 \
560
+ --port 9000 \
561
+ --websocket-compression permessage-deflate
562
+ ```
563
+
564
+ #### Static route mounting
565
+
566
+ ```bash
567
+ tigrcorn examples.http_entity_static.app:app \
568
+ --static-path-route /assets \
569
+ --static-path-mount ./public \
570
+ --static-path-dir-to-file \
571
+ --static-path-index-file index.html \
572
+ --static-path-expires 3600
573
+ ```
574
+
575
+ #### CONNECT, trailer, and content-coding policy
576
+
577
+ ```bash
578
+ tigrcorn examples.echo_http.app:app \
579
+ --connect-policy allowlist \
580
+ --connect-allow 127.0.0.1:5432 \
581
+ --trailer-policy strict \
582
+ --content-coding-policy allowlist \
583
+ --content-codings br,gzip,deflate
584
+ ```
585
+
586
+ #### Automatic Alt-Svc advertisement
587
+
588
+ ```bash
589
+ tigrcorn examples.advanced_protocol_delivery.alt_svc_app:app \
590
+ --bind 127.0.0.1:8080 \
591
+ --quic-bind 127.0.0.1:8443 \
592
+ --http 1.1 --http 2 --http 3 \
593
+ --alt-svc-auto \
594
+ --alt-svc-ma 86400 \
595
+ --alt-svc-persist
596
+ ```
597
+
598
+ #### Metrics, logging, reload, and workers
599
+
600
+ ```bash
601
+ tigrcorn examples.echo_http.app:app \
602
+ --log-level info \
603
+ --structured-log \
604
+ --metrics \
605
+ --metrics-bind 127.0.0.1:9100 \
606
+ --workers 4 \
607
+ --runtime auto \
608
+ --reload \
609
+ --reload-dir ./src
610
+ ```
611
+
612
+ #### Unix sockets and custom transports
613
+
614
+ ```bash
615
+ tigrcorn examples.echo_http.app:app \
616
+ --transport unix \
617
+ --uds /tmp/tigrcorn.sock
618
+ ```
619
+
620
+ ```bash
621
+ tigrcorn examples.echo_http.app:app \
622
+ --transport pipe \
623
+ --pipe-mode rawframed \
624
+ --protocol rawframed
625
+ ```
626
+
627
+ #### Interoperability matrices
628
+
629
+ ```bash
630
+ tigrcorn-interop \
631
+ --matrix docs/review/conformance/external_matrix.release.json \
632
+ --output ./artifacts/interop
633
+ ```
634
+
635
+ Use `docs/review/conformance/external_matrix.current_release.json` for the current-release bundle contract and `docs/review/conformance/external_matrix.same_stack_replay.json` for same-stack replay coverage.
636
+
637
+ ## Public API and embedding usage
638
+
639
+ The public import surface is documented in full in `docs/ops/public.md`. Lifecycle guarantees for embedded use live in `docs/LIFECYCLE_AND_EMBEDDED_SERVER.md`.
640
+
641
+ ### Public import map
642
+
643
+ | Import surface | What it is for |
644
+ |---|---|
645
+ | `tigrcorn.run` | sync convenience entrypoint |
646
+ | `tigrcorn.serve` | async entrypoint for an in-memory ASGI app |
647
+ | `tigrcorn.serve_import_string` | async entrypoint for an import string |
648
+ | `tigrcorn.EmbeddedServer` | explicit embedding and lifecycle control |
649
+ | `tigrcorn.StaticFilesApp` | standalone static ASGI app |
650
+ | `tigrcorn.static.mount_static_app` | mount static delivery into another ASGI app |
651
+ | `tigrcorn.static.normalize_static_route` | normalize public static route input |
652
+ | `tigrcorn.config.build_config` | build `ServerConfig` from explicit keyword args |
653
+ | `tigrcorn.config.build_config_from_namespace` | convert argparse namespace into config |
654
+ | `tigrcorn.config.build_config_from_sources` | merge CLI overrides, config file, and environment |
655
+ | `tigrcorn.config.config_to_dict` | inspect or serialize config |
656
+ | `tigrcorn.config.load_env_config` | load prefixed environment config |
657
+ | `tigrcorn.config.load_config_file` | load TOML / JSON / optional YAML config |
658
+ | `tigrcorn.compat.release_gates.evaluate_release_gates` | evaluate release-gate readiness |
659
+ | `tigrcorn.compat.release_gates.evaluate_promotion_target` | evaluate promotion-target readiness |
660
+ | `tigrcorn.compat.release_gates.assert_release_ready` | fail fast if release gates are not satisfied |
661
+ | `tigrcorn.compat.release_gates.assert_promotion_target_ready` | fail fast if promotion target is not satisfied |
662
+
663
+ ### Usage snippets
664
+
665
+ #### Run from sync code
666
+
667
+ ```python
668
+ from tigrcorn import run
669
+
670
+ run(
671
+ "examples.echo_http.app:app",
672
+ host="127.0.0.1",
673
+ port=8000,
674
+ http_versions=["1.1", "2"],
675
+ )
676
+ ```
677
+
678
+ #### Run inside an existing event loop
679
+
680
+ ```python
681
+ from tigrcorn import serve
682
+
683
+ async def app(scope, receive, send):
684
+ ...
685
+
686
+ await serve(app, host="127.0.0.1", port=8000)
687
+ ```
688
+
689
+ #### Load an import string inside async code
690
+
691
+ ```python
692
+ from tigrcorn import serve_import_string
693
+
694
+ await serve_import_string(
695
+ "examples.websocket_echo.app:app",
696
+ host="127.0.0.1",
697
+ port=9000,
698
+ )
699
+ ```
700
+
701
+ #### Embed the server and control lifecycle directly
702
+
703
+ ```python
704
+ from tigrcorn import EmbeddedServer
705
+ from tigrcorn.config import build_config
706
+
707
+ config = build_config(host="127.0.0.1", port=0, lifespan="on")
708
+
709
+ async with EmbeddedServer(app, config) as embedded:
710
+ print(embedded.listeners)
711
+ print(embedded.bound_endpoints())
712
+ ```
713
+
714
+ #### Mount static delivery
715
+
716
+ ```python
717
+ from tigrcorn.static import mount_static_app
718
+
719
+ app = mount_static_app(
720
+ app,
721
+ route="/assets",
722
+ directory="./public",
723
+ apply_content_coding=True,
724
+ content_coding_policy="allowlist",
725
+ )
726
+ ```
727
+
728
+ #### Build config from sources
729
+
730
+ ```python
731
+ from tigrcorn.config import build_config_from_sources
732
+
733
+ config = build_config_from_sources(
734
+ config_path="./tigrcorn.toml",
735
+ env_prefix="TIGRCORN",
736
+ env_file=".env",
737
+ cli_overrides={
738
+ "app": {"target": "examples.echo_http.app:app"},
739
+ "logging": {"level": "debug"},
740
+ },
741
+ )
742
+ ```
743
+
744
+ #### Evaluate release and promotion state
745
+
746
+ ```python
747
+ from tigrcorn.compat.release_gates import evaluate_promotion_target, evaluate_release_gates
748
+
749
+ release_report = evaluate_release_gates(".")
750
+ promotion_report = evaluate_promotion_target(".")
751
+
752
+ print(release_report.passed)
753
+ print(promotion_report.passed)
754
+ ```
755
+
756
+ ## Current scope
757
+
758
+ ### Current supported runtime surface
759
+
760
+ | Runtime | Status | Source |
761
+ |---|---|---|
762
+ | `auto` | supported | `docs/review/conformance/CERTIFICATION_BOUNDARY.md` |
763
+ | `asyncio` | supported | `docs/review/conformance/CERTIFICATION_BOUNDARY.md` |
764
+ | `uvloop` | supported | `docs/review/conformance/CERTIFICATION_BOUNDARY.md`, `docs/review/conformance/OPTIONAL_DEPENDENCY_SURFACE.md` |
765
+ | `trio` | reserved dependency path, not supported | `docs/review/conformance/BOUNDARY_NON_GOALS.md` |
766
+
767
+ ### Out-of-boundary families
768
+
769
+ | Family | Current location |
770
+ |---|---|
771
+ | Trio as a supported runtime family | `docs/review/conformance/BOUNDARY_NON_GOALS.md` |
772
+ | WSGI / ASGI2 / RSGI compatibility layers | `docs/review/conformance/BOUNDARY_NON_GOALS.md` |
773
+ | Parser pluggability | `docs/review/conformance/BOUNDARY_NON_GOALS.md` |
774
+ | WebSocket engine pluggability | `docs/review/conformance/BOUNDARY_NON_GOALS.md` |
775
+ | RFC 9111 caching | `docs/review/conformance/RFC_APPLICABILITY_AND_COMPETITOR_STATUS.md` |
776
+ | RFC 9530 digest fields | `docs/review/conformance/RFC_APPLICABILITY_AND_COMPETITOR_STATUS.md` |
777
+ | RFC 9421 message signatures | `docs/review/conformance/RFC_APPLICABILITY_AND_COMPETITOR_STATUS.md` |
778
+ | JOSE / COSE layers | `docs/review/conformance/RFC_APPLICABILITY_AND_COMPETITOR_STATUS.md` |
779
+
780
+ ## Status at a glance
781
+
782
+ | Topic | Current source of truth |
783
+ |---|---|
784
+ | Repo line | `0.3.9` in `pyproject.toml` and `src/tigrcorn/version.py` |
785
+ | Current state | `docs/review/conformance/state/CURRENT_REPOSITORY_STATE.md` |
786
+ | Canonical machine-readable registry | `.ssot/registry.json` |
787
+ | Current-state chain | `docs/review/conformance/CURRENT_STATE_CHAIN.md`, `docs/review/conformance/current_state_chain.current.json` |
788
+ | Authoritative boundary | `docs/review/conformance/CERTIFICATION_BOUNDARY.md` |
789
+ | Strict profile | `docs/review/conformance/STRICT_PROFILE_TARGET.md` |
790
+ | Canonical promoted root | `docs/review/conformance/releases/0.3.9/release-0.3.9/` |
791
+ | Operator docs | `docs/ops/README.md`, `docs/ops/cli.md`, `docs/ops/public.md` |
792
+ | Lifecycle and embedding contract | `docs/LIFECYCLE_AND_EMBEDDED_SERVER.md` |
793
+ | Optional dependency truth | `docs/review/conformance/OPTIONAL_DEPENDENCY_SURFACE.md`, `docs/review/conformance/optional_dependency_surface.current.json` |
794
+ | External evidence inputs | `external_matrix.same_stack_replay.json`, `external_matrix.release.json`, `external_matrix.current_release.json` |
795
+ | Planning and promotion checkpoints | `docs/review/conformance/PHASE9_IMPLEMENTATION_PLAN.md`, `docs/review/conformance/PHASE9A_PROMOTION_CONTRACT_FREEZE.md` |
796
+
797
+ ### Current repository claim
798
+
799
+ Under `docs/review/conformance/CERTIFICATION_BOUNDARY.md`, the package is **certifiably fully RFC compliant under the authoritative certification boundary**. The canonical promoted root at `docs/review/conformance/releases/0.3.9/release-0.3.9/` is **strict-target certifiably fully RFC compliant** and **certifiably fully featured**.[^boundary]
800
+
801
+ ## Validation and promotion
802
+
803
+ A practical maintainer validation pass looks like this:
804
+
805
+ ```bash
806
+ python tools/govchk.py scan
807
+ PYTHONPATH=src python -m compileall -q src benchmarks tools
808
+ PYTHONPATH=src pytest -q
809
+ ```
810
+
811
+ Promotion-facing evaluators:
812
+
813
+ ```bash
814
+ PYTHONPATH=src python - <<'PY'
815
+ from tigrcorn.compat.release_gates import evaluate_release_gates, evaluate_promotion_target
816
+
817
+ print(evaluate_release_gates('.').passed)
818
+ print(
819
+ evaluate_release_gates(
820
+ '.',
821
+ boundary_path='docs/review/conformance/certification_boundary.strict_target.json',
822
+ ).passed
823
+ )
824
+ print(evaluate_promotion_target('.').passed)
825
+ PY
826
+ ```
827
+
828
+ Read next:
829
+
830
+ - `docs/gov/release.md`
831
+ - `docs/review/conformance/RELEASE_GATE_STATUS.md`
832
+ - `docs/review/conformance/STRICT_PROFILE_TARGET.md`
833
+ - `docs/review/conformance/FLAG_CERTIFICATION_TARGET.md`
834
+ - `docs/review/conformance/PHASE9A_PROMOTION_CONTRACT_FREEZE.md`
835
+
836
+ ## Where to look
837
+
838
+ | If you are... | Start here | Then go to |
839
+ |---|---|---|
840
+ | Launching Tigrcorn as an operator | `docs/ops/cli.md` | `docs/review/conformance/DEPLOYMENT_PROFILES.md` |
841
+ | Embedding Tigrcorn in another process | `docs/ops/public.md` | `docs/LIFECYCLE_AND_EMBEDDED_SERVER.md` |
842
+ | Working on static or delivery behavior | `docs/ops/public.md` | `examples/http_entity_static/app.py` |
843
+ | Reviewing current repository truth | `docs/review/conformance/state/CURRENT_REPOSITORY_STATE.md` | `docs/review/conformance/current_state_chain.current.json` |
844
+ | Reviewing the promoted release root | `docs/review/conformance/releases/0.3.9/release-0.3.9/` | `docs/release-notes/RELEASE_NOTES_0.3.9.md` |
845
+ | Reviewing the boundary or current scope | `docs/review/conformance/CERTIFICATION_BOUNDARY.md` | `docs/review/conformance/BOUNDARY_NON_GOALS.md` |
846
+ | Comparing Tigrcorn with peer servers | `docs/comp/rfc.md` | `docs/comp/cli.md`, `docs/comp/ops.md`, `docs/comp/oob.md` |
847
+ | Writing or maintaining docs | `docs/gov/authoring.md` | `CONTRIBUTING.md`, `docs/gov/tree.md`, `docs/gov/mut.md` |
848
+ | Working on release or promotion | `docs/gov/release.md` | `docs/review/conformance/PHASE9A_PROMOTION_CONTRACT_FREEZE.md` |
849
+ | Acting as an agent or automation | `.codex/AGENTS.md` | `tools/govchk.py` |
850
+
851
+ ## Governance and maintainer workflow
852
+
853
+ Maintainer and authoring guidance lives in:
854
+
855
+ - `docs/gov/authoring.md`
856
+ - `CONTRIBUTING.md`
857
+ - `.codex/AGENTS.md`
858
+ - `docs/gov/release.md`
859
+
860
+ The short version:
861
+
862
+ 1. update code and tests together
863
+ 2. update machine-readable truth together with human docs
864
+ 3. keep current-state pointers current
865
+ 4. create new preserved artifacts for promotion-relevant changes instead of editing a frozen release root
866
+
867
+ Useful governance checks:
868
+
869
+ ```bash
870
+ python tools/govchk.py state README.md
871
+ python tools/govchk.py state docs/review/conformance/releases/0.3.9
872
+ python tools/govchk.py scan
873
+ ```
874
+
875
+ Repository cleanliness is governed by `MUT.json`, `docs/gov/tree.md`, `docs/gov/mut.md`, `docs/gov/code.md`, and ADR `.ssot/adr/ADR-1005-doc-gov.md`.
876
+
877
+ ## Current-state and historical planning
878
+
879
+ For current repository truth, start with:
880
+
881
+ - `docs/review/conformance/state/CURRENT_REPOSITORY_STATE.md`
882
+ - `docs/review/conformance/state/README.md`
883
+ - `docs/review/conformance/CURRENT_STATE_CHAIN.md`
884
+ - `docs/review/conformance/current_state_chain.current.json`
885
+
886
+ For planning and promotion history, use:
887
+
888
+ - `docs/review/conformance/PHASE9_IMPLEMENTATION_PLAN.md`
889
+ - `docs/review/conformance/phase9_implementation_plan.current.json`
890
+ - `docs/review/conformance/PHASE9A_PROMOTION_CONTRACT_FREEZE.md`
891
+ - `docs/review/conformance/phase9a_promotion_contract.current.json`
892
+ - `docs/review/conformance/PHASE9A_EXECUTION_BACKLOG.md`
893
+ - `docs/review/conformance/phase9a_execution_backlog.current.json`
894
+ - `docs/review/conformance/PHASE9I_RELEASE_ASSEMBLY_AND_CERTIFIABLE_CHECKPOINT.md`
895
+ - `docs/review/conformance/phase9i_release_assembly.current.json`
896
+ - `docs/review/conformance/RFC_APPLICABILITY_AND_COMPETITOR_STATUS.md`
897
+ - `docs/review/conformance/state/checkpoints/`
898
+
899
+ These files explain how the repository got to the current promoted state without replacing the canonical current-state pointer.
900
+
901
+ ## Certification environment freeze
902
+
903
+ The certification environment freeze documents the install contract and runtime prerequisites for the strict release workflow.
904
+
905
+ Start with:
906
+
907
+ - `docs/review/conformance/CERTIFICATION_ENVIRONMENT_FREEZE.md`
908
+ - `docs/review/conformance/certification_environment_freeze.current.json`
909
+ - `docs/review/conformance/delivery/DELIVERY_NOTES_CERTIFICATION_ENVIRONMENT_FREEZE.md`
910
+ - `docs/review/conformance/releases/0.3.9/release-0.3.9/tigrcorn-certification-environment-bundle/`
911
+ - `.github/workflows/phase9-certification-release.yml`
912
+ - `tools/run_phase9_release_workflow.py`
913
+
914
+ Frozen install command:
915
+
916
+ ```bash
917
+ python -m pip install -e ".[certification,dev]"
918
+ ```
919
+
920
+ The freeze distinguishes the authoritative release-workflow contract from the observed local editing environment.[^freeze]
921
+
922
+ ## Contributing, conduct, and community norms
923
+
924
+ - `CONTRIBUTING.md` explains how to make changes without drifting from the boundary, tests, current-state chain, or release evidence.
925
+ - `CODE_OF_CONDUCT.md` defines participation expectations and reporting guidance.
926
+ - `docs/gov/authoring.md` explains how maintainers and authors should update the repository without creating truth conflicts.
927
+ - `docs/gov/tree.md` and `docs/gov/mut.md` explain where new files belong and which trees are frozen.
928
+
929
+ ## Footnotes
930
+
931
+ [^boundary]: Certification language in this repository is scoped by `docs/review/conformance/CERTIFICATION_BOUNDARY.md` and `docs/review/conformance/state/CURRENT_REPOSITORY_STATE.md`. The current package claim and the promoted-root claim are related, but they are not the same statement.
932
+
933
+ [^freeze]: The freeze preserves the release-workflow contract even when the local working environment is missing a certification dependency such as `aioquic`.