ngh2 0.1.0__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 (672) hide show
  1. ngh2-0.1.0/.agents/skills/ngh2-audit/SKILL.md +56 -0
  2. ngh2-0.1.0/.agents/skills/ngh2-audit/agents/openai.yaml +4 -0
  3. ngh2-0.1.0/.agents/skills/ngh2-implementation/SKILL.md +51 -0
  4. ngh2-0.1.0/.agents/skills/ngh2-implementation/agents/openai.yaml +4 -0
  5. ngh2-0.1.0/.agents/skills/ngh2-knowledge/SKILL.md +59 -0
  6. ngh2-0.1.0/.agents/skills/ngh2-knowledge/agents/openai.yaml +4 -0
  7. ngh2-0.1.0/.github/dependabot.yml +12 -0
  8. ngh2-0.1.0/.github/workflows/ci.yml +148 -0
  9. ngh2-0.1.0/.github/workflows/release.yml +121 -0
  10. ngh2-0.1.0/.gitignore +47 -0
  11. ngh2-0.1.0/.gitmodules +3 -0
  12. ngh2-0.1.0/.pre-commit-config.yaml +32 -0
  13. ngh2-0.1.0/.python-version +1 -0
  14. ngh2-0.1.0/AGENTS.md +79 -0
  15. ngh2-0.1.0/CHANGELOG.md +15 -0
  16. ngh2-0.1.0/CMakeLists.txt +49 -0
  17. ngh2-0.1.0/CONTRIBUTING.md +77 -0
  18. ngh2-0.1.0/LICENSE +18 -0
  19. ngh2-0.1.0/PKG-INFO +175 -0
  20. ngh2-0.1.0/README.md +148 -0
  21. ngh2-0.1.0/SECURITY.md +17 -0
  22. ngh2-0.1.0/benchmarks/compare_h2.py +315 -0
  23. ngh2-0.1.0/benchmarks/render_results.py +183 -0
  24. ngh2-0.1.0/docs/assets/ngh2.svg +31 -0
  25. ngh2-0.1.0/docs/assets/python-benchmark.json +1 -0
  26. ngh2-0.1.0/docs/assets/python-benchmark.svg +60 -0
  27. ngh2-0.1.0/docs/knowledge/README.md +37 -0
  28. ngh2-0.1.0/docs/knowledge/engineering/dependency-licenses.md +152 -0
  29. ngh2-0.1.0/docs/knowledge/engineering/language-api.md +190 -0
  30. ngh2-0.1.0/docs/knowledge/protocol/libnghttp2.md +277 -0
  31. ngh2-0.1.0/docs/knowledge/python-native/binding-tooling.md +434 -0
  32. ngh2-0.1.0/docs/knowledge/python-native/reference-bindings.md +351 -0
  33. ngh2-0.1.0/pyproject.toml +136 -0
  34. ngh2-0.1.0/src/ngh2/__init__.py +85 -0
  35. ngh2-0.1.0/src/ngh2/_core.pyi +122 -0
  36. ngh2-0.1.0/src/ngh2/_core.pyx +2091 -0
  37. ngh2-0.1.0/src/ngh2/_nghttp2.pxd +382 -0
  38. ngh2-0.1.0/src/ngh2/_version.py +1 -0
  39. ngh2-0.1.0/src/ngh2/config.py +66 -0
  40. ngh2-0.1.0/src/ngh2/enums.py +99 -0
  41. ngh2-0.1.0/src/ngh2/events.pyi +202 -0
  42. ngh2-0.1.0/src/ngh2/events.pyx +346 -0
  43. ngh2-0.1.0/src/ngh2/exceptions.py +42 -0
  44. ngh2-0.1.0/src/ngh2/py.typed +0 -0
  45. ngh2-0.1.0/src/ngh2/types.py +34 -0
  46. ngh2-0.1.0/tests/interop/README.md +34 -0
  47. ngh2-0.1.0/tests/interop/h2spec_server.py +116 -0
  48. ngh2-0.1.0/tests/test_boundaries.py +126 -0
  49. ngh2-0.1.0/tests/test_connection.py +265 -0
  50. ngh2-0.1.0/tests/test_controls.py +253 -0
  51. ngh2-0.1.0/tests/test_core.py +185 -0
  52. ngh2-0.1.0/tests/test_interop_h2spec.py +40 -0
  53. ngh2-0.1.0/tests/test_interop_hyper_h2.py +99 -0
  54. ngh2-0.1.0/tests/test_lifecycle.py +175 -0
  55. ngh2-0.1.0/tests/test_limits.py +130 -0
  56. ngh2-0.1.0/uv.lock +654 -0
  57. ngh2-0.1.0/vendor/nghttp2/.clang-format +277 -0
  58. ngh2-0.1.0/vendor/nghttp2/.github/dependabot.yml +10 -0
  59. ngh2-0.1.0/vendor/nghttp2/.github/workflows/android.yml +24 -0
  60. ngh2-0.1.0/vendor/nghttp2/.github/workflows/build.yml +701 -0
  61. ngh2-0.1.0/vendor/nghttp2/.github/workflows/docker.yaml +24 -0
  62. ngh2-0.1.0/vendor/nghttp2/.github/workflows/fuzz.yml +31 -0
  63. ngh2-0.1.0/vendor/nghttp2/.github/workflows/stale.yaml +22 -0
  64. ngh2-0.1.0/vendor/nghttp2/.gitignore +64 -0
  65. ngh2-0.1.0/vendor/nghttp2/.gitmodules +13 -0
  66. ngh2-0.1.0/vendor/nghttp2/AUTHORS +178 -0
  67. ngh2-0.1.0/vendor/nghttp2/CMakeLists.txt +560 -0
  68. ngh2-0.1.0/vendor/nghttp2/CMakeOptions.txt +30 -0
  69. ngh2-0.1.0/vendor/nghttp2/CONTRIBUTION +18 -0
  70. ngh2-0.1.0/vendor/nghttp2/COPYING +23 -0
  71. ngh2-0.1.0/vendor/nghttp2/ChangeLog +0 -0
  72. ngh2-0.1.0/vendor/nghttp2/Dockerfile.android +124 -0
  73. ngh2-0.1.0/vendor/nghttp2/LICENSE +1 -0
  74. ngh2-0.1.0/vendor/nghttp2/Makefile.am +65 -0
  75. ngh2-0.1.0/vendor/nghttp2/NEWS +0 -0
  76. ngh2-0.1.0/vendor/nghttp2/README +1 -0
  77. ngh2-0.1.0/vendor/nghttp2/README.rst +1465 -0
  78. ngh2-0.1.0/vendor/nghttp2/SECURITY.md +31 -0
  79. ngh2-0.1.0/vendor/nghttp2/android-config +37 -0
  80. ngh2-0.1.0/vendor/nghttp2/android-env +40 -0
  81. ngh2-0.1.0/vendor/nghttp2/author.py +52 -0
  82. ngh2-0.1.0/vendor/nghttp2/bpf/CMakeLists.txt +13 -0
  83. ngh2-0.1.0/vendor/nghttp2/bpf/Makefile.am +40 -0
  84. ngh2-0.1.0/vendor/nghttp2/bpf/reuseport_kern.c +579 -0
  85. ngh2-0.1.0/vendor/nghttp2/cmake/ExtractValidFlags.cmake +31 -0
  86. ngh2-0.1.0/vendor/nghttp2/cmake/FindJansson.cmake +40 -0
  87. ngh2-0.1.0/vendor/nghttp2/cmake/FindJemalloc.cmake +40 -0
  88. ngh2-0.1.0/vendor/nghttp2/cmake/FindLibbpf.cmake +32 -0
  89. ngh2-0.1.0/vendor/nghttp2/cmake/FindLibbrotlidec.cmake +36 -0
  90. ngh2-0.1.0/vendor/nghttp2/cmake/FindLibbrotlienc.cmake +36 -0
  91. ngh2-0.1.0/vendor/nghttp2/cmake/FindLibcares.cmake +46 -0
  92. ngh2-0.1.0/vendor/nghttp2/cmake/FindLibev.cmake +38 -0
  93. ngh2-0.1.0/vendor/nghttp2/cmake/FindLibevent.cmake +97 -0
  94. ngh2-0.1.0/vendor/nghttp2/cmake/FindLibnghttp3.cmake +41 -0
  95. ngh2-0.1.0/vendor/nghttp2/cmake/FindLibngtcp2.cmake +41 -0
  96. ngh2-0.1.0/vendor/nghttp2/cmake/FindLibngtcp2_crypto_libressl.cmake +43 -0
  97. ngh2-0.1.0/vendor/nghttp2/cmake/FindLibngtcp2_crypto_ossl.cmake +43 -0
  98. ngh2-0.1.0/vendor/nghttp2/cmake/FindLibngtcp2_crypto_quictls.cmake +43 -0
  99. ngh2-0.1.0/vendor/nghttp2/cmake/FindLibngtcp2_crypto_wolfssl.cmake +43 -0
  100. ngh2-0.1.0/vendor/nghttp2/cmake/FindSystemd.cmake +19 -0
  101. ngh2-0.1.0/vendor/nghttp2/cmake/FindWolfSSL.cmake +41 -0
  102. ngh2-0.1.0/vendor/nghttp2/cmake/PickyWarningsC.cmake +162 -0
  103. ngh2-0.1.0/vendor/nghttp2/cmake/PickyWarningsCXX.cmake +121 -0
  104. ngh2-0.1.0/vendor/nghttp2/cmake/Version.cmake +11 -0
  105. ngh2-0.1.0/vendor/nghttp2/cmakeconfig.h.in +116 -0
  106. ngh2-0.1.0/vendor/nghttp2/configure.ac +1332 -0
  107. ngh2-0.1.0/vendor/nghttp2/contrib/.gitignore +3 -0
  108. ngh2-0.1.0/vendor/nghttp2/contrib/CMakeLists.txt +12 -0
  109. ngh2-0.1.0/vendor/nghttp2/contrib/Makefile.am +51 -0
  110. ngh2-0.1.0/vendor/nghttp2/contrib/nghttpx-init.in +164 -0
  111. ngh2-0.1.0/vendor/nghttp2/contrib/nghttpx-logrotate +11 -0
  112. ngh2-0.1.0/vendor/nghttp2/contrib/nghttpx-upstart.conf.in +8 -0
  113. ngh2-0.1.0/vendor/nghttp2/contrib/nghttpx.service.in +17 -0
  114. ngh2-0.1.0/vendor/nghttp2/contrib/tlsticketupdate.go +112 -0
  115. ngh2-0.1.0/vendor/nghttp2/contrib/usr.sbin.nghttpx +16 -0
  116. ngh2-0.1.0/vendor/nghttp2/doc/.gitignore +19 -0
  117. ngh2-0.1.0/vendor/nghttp2/doc/CMakeLists.txt +352 -0
  118. ngh2-0.1.0/vendor/nghttp2/doc/Makefile.am +382 -0
  119. ngh2-0.1.0/vendor/nghttp2/doc/README.rst +160 -0
  120. ngh2-0.1.0/vendor/nghttp2/doc/_exts/rubydomain/LICENSE.rubydomain +28 -0
  121. ngh2-0.1.0/vendor/nghttp2/doc/_exts/rubydomain/__init__.py +0 -0
  122. ngh2-0.1.0/vendor/nghttp2/doc/_exts/rubydomain/rubydomain.py +703 -0
  123. ngh2-0.1.0/vendor/nghttp2/doc/bash_completion/h2load +19 -0
  124. ngh2-0.1.0/vendor/nghttp2/doc/bash_completion/make_bash_completion.py +75 -0
  125. ngh2-0.1.0/vendor/nghttp2/doc/bash_completion/nghttp +19 -0
  126. ngh2-0.1.0/vendor/nghttp2/doc/bash_completion/nghttpd +19 -0
  127. ngh2-0.1.0/vendor/nghttp2/doc/bash_completion/nghttpx +19 -0
  128. ngh2-0.1.0/vendor/nghttp2/doc/building-android-binary.rst.in +1 -0
  129. ngh2-0.1.0/vendor/nghttp2/doc/conf.py.in +252 -0
  130. ngh2-0.1.0/vendor/nghttp2/doc/contribute.rst.in +1 -0
  131. ngh2-0.1.0/vendor/nghttp2/doc/docutils.conf +2 -0
  132. ngh2-0.1.0/vendor/nghttp2/doc/h2load-howto.rst.in +1 -0
  133. ngh2-0.1.0/vendor/nghttp2/doc/h2load.1 +544 -0
  134. ngh2-0.1.0/vendor/nghttp2/doc/h2load.1.rst +451 -0
  135. ngh2-0.1.0/vendor/nghttp2/doc/h2load.h2r +109 -0
  136. ngh2-0.1.0/vendor/nghttp2/doc/index.rst.in +1 -0
  137. ngh2-0.1.0/vendor/nghttp2/doc/make.bat +170 -0
  138. ngh2-0.1.0/vendor/nghttp2/doc/mkapiref.py +343 -0
  139. ngh2-0.1.0/vendor/nghttp2/doc/nghttp.1 +270 -0
  140. ngh2-0.1.0/vendor/nghttp2/doc/nghttp.1.rst +216 -0
  141. ngh2-0.1.0/vendor/nghttp2/doc/nghttp.h2r +4 -0
  142. ngh2-0.1.0/vendor/nghttp2/doc/nghttp2.h.rst.in +4 -0
  143. ngh2-0.1.0/vendor/nghttp2/doc/nghttp2ver.h.rst.in +4 -0
  144. ngh2-0.1.0/vendor/nghttp2/doc/nghttpd.1 +238 -0
  145. ngh2-0.1.0/vendor/nghttp2/doc/nghttpd.1.rst +188 -0
  146. ngh2-0.1.0/vendor/nghttp2/doc/nghttpd.h2r +4 -0
  147. ngh2-0.1.0/vendor/nghttp2/doc/nghttpx-howto.rst.in +1 -0
  148. ngh2-0.1.0/vendor/nghttp2/doc/nghttpx.1 +2673 -0
  149. ngh2-0.1.0/vendor/nghttp2/doc/nghttpx.1.rst +2445 -0
  150. ngh2-0.1.0/vendor/nghttp2/doc/nghttpx.h2r +678 -0
  151. ngh2-0.1.0/vendor/nghttp2/doc/package_README.rst.in +1 -0
  152. ngh2-0.1.0/vendor/nghttp2/doc/programmers-guide.rst +507 -0
  153. ngh2-0.1.0/vendor/nghttp2/doc/sources/building-android-binary.rst +127 -0
  154. ngh2-0.1.0/vendor/nghttp2/doc/sources/contribute.rst +56 -0
  155. ngh2-0.1.0/vendor/nghttp2/doc/sources/h2load-howto.rst +142 -0
  156. ngh2-0.1.0/vendor/nghttp2/doc/sources/index.rst +49 -0
  157. ngh2-0.1.0/vendor/nghttp2/doc/sources/nghttpx-howto.rst +662 -0
  158. ngh2-0.1.0/vendor/nghttp2/doc/sources/tutorial-client.rst +465 -0
  159. ngh2-0.1.0/vendor/nghttp2/doc/sources/tutorial-hpack.rst +126 -0
  160. ngh2-0.1.0/vendor/nghttp2/doc/sources/tutorial-server.rst +578 -0
  161. ngh2-0.1.0/vendor/nghttp2/doc/tutorial-client.rst.in +6 -0
  162. ngh2-0.1.0/vendor/nghttp2/doc/tutorial-hpack.rst.in +6 -0
  163. ngh2-0.1.0/vendor/nghttp2/doc/tutorial-server.rst.in +6 -0
  164. ngh2-0.1.0/vendor/nghttp2/docker/Dockerfile +92 -0
  165. ngh2-0.1.0/vendor/nghttp2/docker/README.rst +25 -0
  166. ngh2-0.1.0/vendor/nghttp2/examples/.gitignore +5 -0
  167. ngh2-0.1.0/vendor/nghttp2/examples/CMakeLists.txt +37 -0
  168. ngh2-0.1.0/vendor/nghttp2/examples/Makefile.am +54 -0
  169. ngh2-0.1.0/vendor/nghttp2/examples/client.c +702 -0
  170. ngh2-0.1.0/vendor/nghttp2/examples/deflate.c +208 -0
  171. ngh2-0.1.0/vendor/nghttp2/examples/libevent-client.c +599 -0
  172. ngh2-0.1.0/vendor/nghttp2/examples/libevent-server.c +788 -0
  173. ngh2-0.1.0/vendor/nghttp2/fedora/spdylay.spec +75 -0
  174. ngh2-0.1.0/vendor/nghttp2/fuzz/README.rst +33 -0
  175. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/025ca25c8427361ea5498e4c3ba49d20eac5b4332f7b75b8f74bfba5e43f59f8 +0 -0
  176. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/0276779c73bddcebc63b863c23a338b4c827bf6164640ff20a2d64d45a6b3f5a +0 -0
  177. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/0428d1e3b2364efcc93ffd8fcfff43b378a92c7da44268b9dda2bf32a1178c66 +0 -0
  178. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/06bc5f79b7e68e005bd4382bd3a6c6b1b6005c5f7d5783e99baf2f8f7432d71a +0 -0
  179. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/09f76550ec065944a5d1d52f5d07b1dd87de1f651f80ef82c2815b0248b7dccd +0 -0
  180. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/0b39d9df6e1721030667980a41547272ad42377149edcf130b2bf0b76804c61f +2 -0
  181. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/0bb4365b02c05540936f9606ca725770a731e73c2144c7b81953dcc4b4f73c32 +0 -0
  182. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/0d577f6eb853e987b8fdab6ca4615a351ab74bfc75eb0d227acbef6a35bcae39 +0 -0
  183. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/0df702020c019dd33d0643c5a2b9a9637d325c8f38b4cc6d3f808b5b2a4169a9 +0 -0
  184. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/0f8054152149c73e64c9f3e83f97e6585c8a51ec2413e7a2e8dfcc444082a5c5 +0 -0
  185. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/105f72bc9184bf47a857ed84e8c2f917946ec7ef3f4720535478b41e097a798a +0 -0
  186. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/1368ed7160cc4115e31a8a158af429421570e7363a3b75441edc5d740513b0dc +0 -0
  187. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/1402c49b963994284b0d429edfac603133e0144dba08836f90b1ae164b328800 +0 -0
  188. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/1468c2cddae629788f6957847b76c09921e984796f6dc482859b119cf4879300 +0 -0
  189. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/14f66ce296f03e52f039f4fad189d3d70aebe70ecb14ffb1ffe2cd5fc5d1e5f0 +0 -0
  190. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/17caaf734401d2d25d09a65432789b45aff588c606536e93824b89739a6d07ab +0 -0
  191. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/195b4a74a62fabc877052454d935ebc543f4d1305e318ccd2ff407517636bed8 +0 -0
  192. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/1960fc215485486f3e8ab97f853954e6f11c1f4754ccd83b1603b808878cfa76 +0 -0
  193. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/1a56272611761f0687dfb0ea37c900f13f429b750c87e6175b234b881bda6248 +0 -0
  194. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/1d31cd88fae35f2329e201983d11256d2432fcdeb55bfba9634aa88e3794adc6 +0 -0
  195. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/1e27187b10c02fe7e151818ddd0722f69830ac04975ddb5a9d83cdc406cbb678 +0 -0
  196. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/1ecace234d8542fbaab35c7c55330e80d8121a0cff19633a56eba8f2182a59df +0 -0
  197. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/1f4f3a16f5ad0425e0b38601339096b80a382afa1083a19c4deab11be847502f +0 -0
  198. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/203a798d4b658be744fe34042038692eaede4d2c1f9e05a27f2410a6e0230132 +0 -0
  199. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/21904e842e90becb56ff9748ae962bb543dd5ca188dabc30897726f87403fbce +0 -0
  200. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/23df7e0419240a9709b55af68a89c9750332ae5063e36401eae150ce63188fe0 +0 -0
  201. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/245ba702520fa32cf41d994f5d37e4111fe6203bac35b220d50362d5e986aa91 +0 -0
  202. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/274faf343feb9cb44079316401fee50c647552c99c0550ebfd7a3b736e8db9e5 +0 -0
  203. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/2b042a1dfa3aeed6af58c58a4336f1386633bac75dea2c4b64c02541e7320933 +0 -0
  204. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/2d8ec606661a9f12960893aab9a74dd392cbdae104307e8512e5e4113739e93a +0 -0
  205. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/2e0c8a3ce53e8e3711f781b480efaf9e2526f4ae87c5f5a585d68d6f7f7da13c +0 -0
  206. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/315e6acba7d715333d0865a8dfc0cd0e7aef8a1f5f420eae3d39067ad78df17d +0 -0
  207. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/3376a2cdde0b98759f14490881328f80b5d3c942de3b1304a0382923ce896f8f +0 -0
  208. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/35c2719913a19f197fb6484a34c3574da63554ff06f52377b73a9cfc24eb02ca +0 -0
  209. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/35ddf0611cd98d025f6a625e7e4a102ba74721a04dfa1811e0968e9a4966d92c +0 -0
  210. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/37e9eab291d6bca69510354e1d029cbbbb6113071b2bb13fc9646b5a0447d2cf +0 -0
  211. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/381c81f5e4d1b02de39c4f99f21e9793f6ffc82ae0ef6917a8611e8879e05941 +0 -0
  212. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/38ac32c81952cc832ade7aea13b0740f76898ccbb1da25f2281da76e50c1d04a +0 -0
  213. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/3e297dd8fcdb50a751c397a505d84e76374b064aa5c71aab33bd9650c9a9d801 +0 -0
  214. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/3e5a57c30a97d3f06a3181f4baf3996053b8572da5f2deee3a636c3bc8dfcc60 +0 -0
  215. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/420b9790375f59a6e8c326391023a0981789c2351817996e0c253bfed708ad82 +0 -0
  216. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/43df3c3af62ddd1393269ffcf964f1897063e81da79c971e8af8c1fefa3e3cab +0 -0
  217. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/443f39c99e1c9ca1908b54153c480754054a57777f22a00d377d745d78e9d193 +0 -0
  218. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/44f3fc1504a14e693fde420da94f77bf4a44e4e741420291491343f7ae4ecc16 +0 -0
  219. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/4528e6beb34f695f4df8ddbb7ac85f76a91229d9ba675fc9e09fe12f4a497937 +0 -0
  220. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/4534032d57020d2910641561a9f9da021f0fe52ebdbb148ee776ced87bac9b13 +0 -0
  221. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/47c5e9b339f9e7f1dccad5c9f51f211183795660ec81a6bdb5614031d39ebe3a +0 -0
  222. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/48ca2b3f63206aa8f774c3cb33958a806a1debf3d9ccf7b09c2d31256498cda6 +0 -0
  223. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/4ddbb54259df7ee7ecbdf9f8b4a0e8f7756b9846f2e2add8dd0df825296d993e +0 -0
  224. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/4e612f3c1dfa468d94bbc3bde202c732b06a9b5f6bc5471c879fa56ec2daa4aa +0 -0
  225. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/55860c89ef796d41b06b3c0fe60a3e6f90709c6a0e7063a8b4057dafa57c878a +0 -0
  226. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/5748e7a24e8d9ecb43de7d1e14519f10d8c669a5a2602fc948bc9a80e6114b63 +0 -0
  227. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/5a13c8e09802e07fd3ceee625307fe48ef29bc66641c4f80ed4593bf8b773f88 +0 -0
  228. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/5aa30337198b482522a55c90554c93278034ebacc24792509a32aeba466df4e8 +0 -0
  229. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/5f3ff3c345ade163ba1ba889d60c1995b7fab68ded6ab052814008d990862c23 +0 -0
  230. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/5f88a17509a8843ab761bc8cbcfe1a511670ae1a4a434f3d483f942738933a3e +0 -0
  231. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/60a288333ea7f01d380f2661d387692063ce2ae73b3e5401b716326967b4ce0c +0 -0
  232. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/63ae750f5fe9469664b6f79cb48c502c3bfc4cb0a950aeba998a72ea6a3d5b2d +0 -0
  233. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/67abeaacb21769a9fb521efa7ebdc8d9ff3443ad5892d75dd6d4f7d541713d33 +0 -0
  234. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/6e3b8913d874a18ec3ab9f74d4fab435b7738e1a14d0754fb79229c4bda9f604 +0 -0
  235. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/6fe31187ce1a64bffb0b31ee59618a2ebd483812410e9f8ae5a92fb72ef70885 +0 -0
  236. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/71d3c74882a100eaa5aaf9f62659d3b26bcbb8f2055f1add504f599f9051f61e +0 -0
  237. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/7232f506e00bee175a3df8d33933fae10c67e501d6cea8e73ce76f4363d0bbea +0 -0
  238. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/7425039321dcbecb1a1ef28849f277f914a889a54d44c1f2566b6ddd5bc83b4f +0 -0
  239. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/7487341c630472c46a534223da1173666aaeae9788b144fa2c723204d55cc0a2 +0 -0
  240. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/79207f7d09b6145f3dbfcb9e19835f34e56c7927fda22859e960f5f13bc847a0 +0 -0
  241. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/7a1e1268d329e5f71ebdf74677a6c1a118994d7534d1fb08d631898d67372f5a +0 -0
  242. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/7c954b010232be9461483803e3e553623d4fc382324d8b8ba53ebf83f0457707 +0 -0
  243. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/7ce8914993956b04baafaad0668e5c26a87a1c4cf70a6566aa0f199fe3c1dc18 +0 -0
  244. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/7d230ff71bac867a9820e75328f893972df210ab75cdb67f620b370ee5cddf45 +0 -0
  245. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/85a985b9011e356e11a24c2d0a01173ea80ccc584b659947b64ffefddab7fada +0 -0
  246. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/8b165b8b94a9d120edf139fbd63cb6b161131d5722f201f2f4ba0984b46a3ca5 +0 -0
  247. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/8f5fd3dd5c0eb40ceb409c0f7d85086319d4177524fad58dc01743434765902a +0 -0
  248. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/9223480b7c4b0d1cb95eb33a7a52dc7494b53a0f8a93fbc1816c6c4f347780b0 +0 -0
  249. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/9248ee16c602d45651b0045e9cc4e407fc62ce5688e1c6636f482ea02314c357 +0 -0
  250. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/979b96b7806f61081a48ff556bfbdb3e1c74e04f7d2cf88eab49b0fd89845453 +0 -0
  251. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/97f2f674b859ff1adb2e9548550f07fa8818d1ee8edae39ca50f516a57a12edb +0 -0
  252. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/9984490c02b1604423a8679caf527d5f10667e0a38790f28f32af61efa930eef +0 -0
  253. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/9a648e49f93b60cf578c87d187c8acb61d3a638bc30568bdcc6be30fd9defd43 +0 -0
  254. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/9af5c7a8538fb02b0a836b88a40d0b144f11ee98624e3686c0f43684e34e6838 +0 -0
  255. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/9b24f66bc7c47e677e40f8b07b2fd54985ef27c99670bed582ce904569b95702 +0 -0
  256. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/9fc2eee916b1cfb002a487c37e73af29a0fbb29e47bf36839a762bb26fea3ec7 +0 -0
  257. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/9ff0fc476b3d27f5dc9803d38ef10be0d08b5e096630308f0d6f57a6f8ee5d88 +0 -0
  258. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/a46866d1875d0c06ec3ead73ecca531ef0dc92a67a233ebc8d1e2fff79f50a07 +0 -0
  259. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/a71bcbf6a6668aa019d38cc3527d5ecf2f4e538dfedddf34ff484e29d6fd26d1 +0 -0
  260. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/ad0d3509e08424d21d87c64a0969b588dc9281ea98fd744acd9b8bd1daf72225 +0 -0
  261. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/adaa168d63fe063455c1e0c304c9c9ba6b43e13849235339710d6b5f941e80a1 +0 -0
  262. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/aee251ccb027a2676ad1261b48d08b52752a41633279ff2e9e474eebf508250f +0 -0
  263. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/b5b546cf87a6d23c6f6ee0e44db5b90a4bb23e0558873f159bf09140782989d8 +0 -0
  264. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/b8fffa51391680139ea773ff40a58a1f24e9b1a8c530823d7d12053ec4aabd76 +0 -0
  265. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/b904fd3aa656603b26572deb105290328add76123b4a99ad4e78189e1337ae1b +0 -0
  266. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/bbda8e26f356aa635f7774ec483a4b493668ca1448948c62f641d176838306d5 +0 -0
  267. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/bc35711cdc43b868c59515211893e7681fef6da4b623392d402fb40736dc1beb +0 -0
  268. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/bd25bb84dd44c7e09d9e723016c49cc2a868a1bfc007528138a28ea1c0abfda7 +0 -0
  269. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/c23df1d03e3c1039692ea3d9897e41ceb2add1ebdec0937a64321c536eef71f7 +0 -0
  270. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/c2e6cf1692ef3a4bc88af94bb9e6c9011855bbf954c273f45eb3ea97bb491c9a +0 -0
  271. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/c3b0ea2a8874777b9805018c177382ab3278a019935fa50b3e0d7971c28c40d9 +0 -0
  272. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/c9dfe97833473610816085c5a009696cd5f659f85fc10ef76dc140851ffcc423 +0 -0
  273. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/ca19cba772c047e5e1f229e5de18d06d885b50be9136778b4937437f0d70738d +0 -0
  274. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/ca6e1239c11d08940c991f77470859ccb4ec9fa5e8c30de7b40521d620b87a1e +0 -0
  275. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/cb09d2148ae1c8b054cdbafcf3f3e41e75bae978dcfc8886981479d723fc44e9 +0 -0
  276. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/cd35ff680e23f67fe52b722a88c9537bee642b8a7a8a388cb4952f3bf60e64cc +0 -0
  277. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/cd6d3880ee87c6b716749cb9a30f8faa658ee49f6ce90f3e34df70560a0477ad +0 -0
  278. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/cd7b24cfe10fc4346a91f04b1a0d0e22054f76bf704db8e19d73cb9bf792a89b +0 -0
  279. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/cea2c4c70f94e90c4c4a6b63f7c212d2465936090c06ba4db92071a3c247ca11 +0 -0
  280. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/d26a0d653a01c6bf9403e0bc0fa5ea05ea4dd7b163e8d85287b19ff257a88ea7 +0 -0
  281. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/d3dec3f7485c6c3f8b8949db68bd212ef16a7f1f41047e290d14f9cd6dae91a0 +0 -0
  282. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/d43f2a0606841580986981ec0bec10473e79c9097bfd8fd81d1a239f146f31d3 +0 -0
  283. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/d4d5fe38e4bafa733182eb5aaad19a6ff59c8316908b20d3c94cdc29a92964e6 +0 -0
  284. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/d69256403d5d27244080b8b53931aa6bfd4ce95771c748372626414d5c37e105 +0 -0
  285. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/d9b617f62de41c1cb02ff91cef9c3f753d440c75efa489a952fdcd314d27ee1d +0 -0
  286. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/dc57f64202486572ef99d4ff4970fb339f440867ebedf02eaab75fb555e293cf +0 -0
  287. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/e11a6036e2c0bde71f3eabac3f98734af2cdcfe3ebb6e02dcce9b7f4c4bcc99a +0 -0
  288. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/e26ce028366bb4ff566972a945b7fd0035f6dba48d886160fdf1974aae8dee65 +0 -0
  289. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/e35a4d079adfe4d399f026c711940e4917d5dae3dc2723a034f44d2b53a34a11 +0 -0
  290. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/e3666122dbe804ac609c0ae717a9e6aa8bb2842953e4528230a5bcfc3a59c120 +0 -0
  291. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/e59961f75a4cfe33bc4ce9290f938c5bc247c440a2e572ab18021c8223c55bc7 +0 -0
  292. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/e7b11cf0762255ad6741aa3d6e269f8b4bc785089040be666f480464cb13b4df +0 -0
  293. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/e89af554621f1ce6262d47a68efea1d8d304ae595a094ebc955bceb6d06ed629 +0 -0
  294. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/e9d399b6dc6b7d18bac97e5556875ab6df561f1ca718f1fc716a929d3c706f14 +0 -0
  295. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/eb733425f0fc1f0cf7f74e1c1ef87680a96a1aca613180110df26259eb36c433 +0 -0
  296. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/ec399d3511fa4a30df9b3c51637a357cc1c84d30e3d48bccc9b97564c8a60b73 +0 -0
  297. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/ef73cbf3d98059b13b30db1089ad6af12beea18f895be6f18d42962721d6e3ee +0 -0
  298. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/efc0f664cf2ebac4e05e6acac77778fe630b278f167321a46d861ac8ad56fd76 +0 -0
  299. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/f139f9c20bcdc6bbe0301c98bdd719b37b4a98fe3b1414b583ddb5dc17f62e3a +0 -0
  300. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/f5318eb5ea6dcdf630a2ab157dbfa122f6de9b6f4e5a3a036c17f32da3030877 +0 -0
  301. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/f5f4973e9e8fb6fb8834a612a9b8b0419fbae7c0934dda22e61f11556918f1cc +0 -0
  302. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/f932da1aefb3b8d9918f46bd936130b0d06332ab062a48f41b206ce696428e03 +0 -0
  303. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/fbfa931f27b0173613b0e04af58d8bba7df12c1cd15c404d95680df6fc1cb89e +0 -0
  304. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/fc30ab2ea532f953350f0de7ff3c0422328c131f4642d30a4c88bdf43bcd8d98 +0 -0
  305. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/fc7e85c3af87f3c0b482cb57fde916a7d8db293427159f3b31bbc23b6b285116 +0 -0
  306. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/fcfcfe84724a9b7c7c8277057b557ab044d24130bd360fe087e9f55bef2cadc6 +0 -0
  307. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/h2spec/ff00f50eada19c5354a579ef7f1af5952ecb2df2423022dd5483d8fede26d6e5 +0 -0
  308. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/nghttp/9c8ed8981065d28ce8a5a04ac6fc7a87ffaf9f9c6ce4323e6e0fefaabb2393cb +0 -0
  309. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/nghttp/d53b58a8685030918fda36a704db43cdfec99fc1b9de83c195227161f4bdb911 +0 -0
  310. ngh2-0.1.0/vendor/nghttp2/fuzz/corpus/nghttp/f0a8cacb9f31b53d237628084e3946d556086c9991cce7962e9e69a3eed406aa +0 -0
  311. ngh2-0.1.0/vendor/nghttp2/fuzz/fuzz_frames.cc +160 -0
  312. ngh2-0.1.0/vendor/nghttp2/fuzz/fuzz_target.cc +79 -0
  313. ngh2-0.1.0/vendor/nghttp2/fuzz/fuzz_target_fdp.cc +99 -0
  314. ngh2-0.1.0/vendor/nghttp2/genauthoritychartbl.py +32 -0
  315. ngh2-0.1.0/vendor/nghttp2/gendowncasetbl.py +30 -0
  316. ngh2-0.1.0/vendor/nghttp2/genheaderfunc.py +48 -0
  317. ngh2-0.1.0/vendor/nghttp2/genlibtokenlookup.py +143 -0
  318. ngh2-0.1.0/vendor/nghttp2/genmethodchartbl.py +29 -0
  319. ngh2-0.1.0/vendor/nghttp2/genmethodfunc.py +52 -0
  320. ngh2-0.1.0/vendor/nghttp2/gennghttpxfun.py +249 -0
  321. ngh2-0.1.0/vendor/nghttp2/gennmchartbl.py +28 -0
  322. ngh2-0.1.0/vendor/nghttp2/genpathchartbl.py +23 -0
  323. ngh2-0.1.0/vendor/nghttp2/gentokenlookup.py +69 -0
  324. ngh2-0.1.0/vendor/nghttp2/genvchartbl.py +26 -0
  325. ngh2-0.1.0/vendor/nghttp2/git-clang-format +484 -0
  326. ngh2-0.1.0/vendor/nghttp2/go.mod +17 -0
  327. ngh2-0.1.0/vendor/nghttp2/go.sum +26 -0
  328. ngh2-0.1.0/vendor/nghttp2/help2rst.py +192 -0
  329. ngh2-0.1.0/vendor/nghttp2/integration-tests/.gitignore +3 -0
  330. ngh2-0.1.0/vendor/nghttp2/integration-tests/CMakeLists.txt +45 -0
  331. ngh2-0.1.0/vendor/nghttp2/integration-tests/Makefile.am +52 -0
  332. ngh2-0.1.0/vendor/nghttp2/integration-tests/alt-server.crt +21 -0
  333. ngh2-0.1.0/vendor/nghttp2/integration-tests/alt-server.key +28 -0
  334. ngh2-0.1.0/vendor/nghttp2/integration-tests/config.go.in +6 -0
  335. ngh2-0.1.0/vendor/nghttp2/integration-tests/nghttpx_http1_test.go +2002 -0
  336. ngh2-0.1.0/vendor/nghttp2/integration-tests/nghttpx_http2_test.go +3922 -0
  337. ngh2-0.1.0/vendor/nghttp2/integration-tests/nghttpx_http3_test.go +412 -0
  338. ngh2-0.1.0/vendor/nghttp2/integration-tests/req-return.rb +12 -0
  339. ngh2-0.1.0/vendor/nghttp2/integration-tests/req-set-header.rb +7 -0
  340. ngh2-0.1.0/vendor/nghttp2/integration-tests/resp-return.rb +12 -0
  341. ngh2-0.1.0/vendor/nghttp2/integration-tests/resp-set-header.rb +7 -0
  342. ngh2-0.1.0/vendor/nghttp2/integration-tests/server.crt +21 -0
  343. ngh2-0.1.0/vendor/nghttp2/integration-tests/server.key +28 -0
  344. ngh2-0.1.0/vendor/nghttp2/integration-tests/server_tester.go +926 -0
  345. ngh2-0.1.0/vendor/nghttp2/integration-tests/server_tester_http3.go +91 -0
  346. ngh2-0.1.0/vendor/nghttp2/integration-tests/setenv.in +14 -0
  347. ngh2-0.1.0/vendor/nghttp2/lib/.gitignore +3 -0
  348. ngh2-0.1.0/vendor/nghttp2/lib/CMakeLists.txt +131 -0
  349. ngh2-0.1.0/vendor/nghttp2/lib/Makefile.am +81 -0
  350. ngh2-0.1.0/vendor/nghttp2/lib/Makefile.msvc +254 -0
  351. ngh2-0.1.0/vendor/nghttp2/lib/config.cmake.in +3 -0
  352. ngh2-0.1.0/vendor/nghttp2/lib/includes/CMakeLists.txt +4 -0
  353. ngh2-0.1.0/vendor/nghttp2/lib/includes/Makefile.am +26 -0
  354. ngh2-0.1.0/vendor/nghttp2/lib/includes/nghttp2/nghttp2.h +6878 -0
  355. ngh2-0.1.0/vendor/nghttp2/lib/includes/nghttp2/nghttp2ver.h.in +42 -0
  356. ngh2-0.1.0/vendor/nghttp2/lib/libnghttp2.pc.in +33 -0
  357. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_alpn.c +72 -0
  358. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_alpn.h +34 -0
  359. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_buf.c +527 -0
  360. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_buf.h +412 -0
  361. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_callbacks.c +208 -0
  362. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_callbacks.h +157 -0
  363. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_debug.c +60 -0
  364. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_debug.h +43 -0
  365. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_extpri.c +41 -0
  366. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_extpri.h +65 -0
  367. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_frame.c +1224 -0
  368. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_frame.h +634 -0
  369. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_hd.c +2391 -0
  370. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_hd.h +442 -0
  371. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_hd_huffman.c +147 -0
  372. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_hd_huffman.h +82 -0
  373. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_hd_huffman_data.c +4980 -0
  374. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_helper.c +805 -0
  375. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_helper.h +153 -0
  376. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_http.c +709 -0
  377. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_http.h +100 -0
  378. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_int.h +61 -0
  379. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_map.c +363 -0
  380. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_map.h +128 -0
  381. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_mem.c +74 -0
  382. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_mem.h +45 -0
  383. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_net.h +91 -0
  384. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_option.c +164 -0
  385. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_option.h +163 -0
  386. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_outbound_item.c +168 -0
  387. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_outbound_item.h +197 -0
  388. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_pq.c +183 -0
  389. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_pq.h +124 -0
  390. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_priority_spec.c +52 -0
  391. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_priority_spec.h +42 -0
  392. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_queue.c +85 -0
  393. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_queue.h +51 -0
  394. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_ratelim.c +75 -0
  395. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_ratelim.h +57 -0
  396. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_rcbuf.c +102 -0
  397. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_rcbuf.h +80 -0
  398. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_session.c +8156 -0
  399. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_session.h +895 -0
  400. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_stream.c +225 -0
  401. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_stream.h +297 -0
  402. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_submit.c +864 -0
  403. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_submit.h +40 -0
  404. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_time.c +62 -0
  405. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_time.h +38 -0
  406. ngh2-0.1.0/vendor/nghttp2/lib/nghttp2_version.c +38 -0
  407. ngh2-0.1.0/vendor/nghttp2/lib/sfparse.c +1787 -0
  408. ngh2-0.1.0/vendor/nghttp2/lib/sfparse.h +442 -0
  409. ngh2-0.1.0/vendor/nghttp2/lib/version.rc.in +40 -0
  410. ngh2-0.1.0/vendor/nghttp2/m4/ax_check_compile_flag.m4 +74 -0
  411. ngh2-0.1.0/vendor/nghttp2/m4/ax_cxx_compile_stdcxx.m4 +1018 -0
  412. ngh2-0.1.0/vendor/nghttp2/m4/libxml2.m4 +188 -0
  413. ngh2-0.1.0/vendor/nghttp2/makebashcompletion +7 -0
  414. ngh2-0.1.0/vendor/nghttp2/makemanpages +12 -0
  415. ngh2-0.1.0/vendor/nghttp2/makerelease.sh +22 -0
  416. ngh2-0.1.0/vendor/nghttp2/mkcipherlist.py +325 -0
  417. ngh2-0.1.0/vendor/nghttp2/mkhufftbl.py +457 -0
  418. ngh2-0.1.0/vendor/nghttp2/mkstatichdtbl.py +36 -0
  419. ngh2-0.1.0/vendor/nghttp2/nghttpx.conf.sample +29 -0
  420. ngh2-0.1.0/vendor/nghttp2/pre-commit +27 -0
  421. ngh2-0.1.0/vendor/nghttp2/proxy.pac.sample +6 -0
  422. ngh2-0.1.0/vendor/nghttp2/releasechk +6 -0
  423. ngh2-0.1.0/vendor/nghttp2/src/.gitignore +13 -0
  424. ngh2-0.1.0/vendor/nghttp2/src/CMakeLists.txt +263 -0
  425. ngh2-0.1.0/vendor/nghttp2/src/HtmlParser.cc +216 -0
  426. ngh2-0.1.0/vendor/nghttp2/src/HtmlParser.h +94 -0
  427. ngh2-0.1.0/vendor/nghttp2/src/HttpServer.cc +2275 -0
  428. ngh2-0.1.0/vendor/nghttp2/src/HttpServer.h +263 -0
  429. ngh2-0.1.0/vendor/nghttp2/src/Makefile.am +277 -0
  430. ngh2-0.1.0/vendor/nghttp2/src/allocator.h +304 -0
  431. ngh2-0.1.0/vendor/nghttp2/src/allocator_test.cc +190 -0
  432. ngh2-0.1.0/vendor/nghttp2/src/allocator_test.h +48 -0
  433. ngh2-0.1.0/vendor/nghttp2/src/app_helper.cc +477 -0
  434. ngh2-0.1.0/vendor/nghttp2/src/app_helper.h +94 -0
  435. ngh2-0.1.0/vendor/nghttp2/src/base64.h +200 -0
  436. ngh2-0.1.0/vendor/nghttp2/src/base64_test.cc +119 -0
  437. ngh2-0.1.0/vendor/nghttp2/src/base64_test.h +45 -0
  438. ngh2-0.1.0/vendor/nghttp2/src/buffer.h +79 -0
  439. ngh2-0.1.0/vendor/nghttp2/src/buffer_test.cc +91 -0
  440. ngh2-0.1.0/vendor/nghttp2/src/buffer_test.h +44 -0
  441. ngh2-0.1.0/vendor/nghttp2/src/ca-config.json +17 -0
  442. ngh2-0.1.0/vendor/nghttp2/src/ca.nghttp2.org-key.pem +27 -0
  443. ngh2-0.1.0/vendor/nghttp2/src/ca.nghttp2.org.csr +17 -0
  444. ngh2-0.1.0/vendor/nghttp2/src/ca.nghttp2.org.csr.json +17 -0
  445. ngh2-0.1.0/vendor/nghttp2/src/ca.nghttp2.org.pem +22 -0
  446. ngh2-0.1.0/vendor/nghttp2/src/comp_helper.c +133 -0
  447. ngh2-0.1.0/vendor/nghttp2/src/comp_helper.h +57 -0
  448. ngh2-0.1.0/vendor/nghttp2/src/deflatehd.cc +457 -0
  449. ngh2-0.1.0/vendor/nghttp2/src/h2load.cc +4061 -0
  450. ngh2-0.1.0/vendor/nghttp2/src/h2load.h +575 -0
  451. ngh2-0.1.0/vendor/nghttp2/src/h2load_http1_session.cc +287 -0
  452. ngh2-0.1.0/vendor/nghttp2/src/h2load_http1_session.h +60 -0
  453. ngh2-0.1.0/vendor/nghttp2/src/h2load_http2_session.cc +322 -0
  454. ngh2-0.1.0/vendor/nghttp2/src/h2load_http2_session.h +54 -0
  455. ngh2-0.1.0/vendor/nghttp2/src/h2load_http3_session.cc +499 -0
  456. ngh2-0.1.0/vendor/nghttp2/src/h2load_http3_session.h +84 -0
  457. ngh2-0.1.0/vendor/nghttp2/src/h2load_quic.cc +830 -0
  458. ngh2-0.1.0/vendor/nghttp2/src/h2load_quic.h +40 -0
  459. ngh2-0.1.0/vendor/nghttp2/src/h2load_session.h +59 -0
  460. ngh2-0.1.0/vendor/nghttp2/src/http-parser.patch +28 -0
  461. ngh2-0.1.0/vendor/nghttp2/src/http2.cc +2015 -0
  462. ngh2-0.1.0/vendor/nghttp2/src/http2.h +426 -0
  463. ngh2-0.1.0/vendor/nghttp2/src/http2_test.cc +1232 -0
  464. ngh2-0.1.0/vendor/nghttp2/src/http2_test.h +60 -0
  465. ngh2-0.1.0/vendor/nghttp2/src/http3.cc +141 -0
  466. ngh2-0.1.0/vendor/nghttp2/src/http3.h +79 -0
  467. ngh2-0.1.0/vendor/nghttp2/src/inflatehd.cc +291 -0
  468. ngh2-0.1.0/vendor/nghttp2/src/memchunk.h +591 -0
  469. ngh2-0.1.0/vendor/nghttp2/src/memchunk_test.cc +353 -0
  470. ngh2-0.1.0/vendor/nghttp2/src/memchunk_test.h +54 -0
  471. ngh2-0.1.0/vendor/nghttp2/src/network.cc +164 -0
  472. ngh2-0.1.0/vendor/nghttp2/src/network.h +136 -0
  473. ngh2-0.1.0/vendor/nghttp2/src/network_test.cc +164 -0
  474. ngh2-0.1.0/vendor/nghttp2/src/network_test.h +44 -0
  475. ngh2-0.1.0/vendor/nghttp2/src/nghttp.cc +3072 -0
  476. ngh2-0.1.0/vendor/nghttp2/src/nghttp.h +316 -0
  477. ngh2-0.1.0/vendor/nghttp2/src/nghttp2_config.h +32 -0
  478. ngh2-0.1.0/vendor/nghttp2/src/nghttp2_gzip.c +87 -0
  479. ngh2-0.1.0/vendor/nghttp2/src/nghttp2_gzip.h +123 -0
  480. ngh2-0.1.0/vendor/nghttp2/src/nghttp2_gzip_test.c +120 -0
  481. ngh2-0.1.0/vendor/nghttp2/src/nghttp2_gzip_test.h +48 -0
  482. ngh2-0.1.0/vendor/nghttp2/src/nghttpd.cc +500 -0
  483. ngh2-0.1.0/vendor/nghttp2/src/shrpx-unittest.cc +75 -0
  484. ngh2-0.1.0/vendor/nghttp2/src/shrpx.cc +4974 -0
  485. ngh2-0.1.0/vendor/nghttp2/src/shrpx.h +64 -0
  486. ngh2-0.1.0/vendor/nghttp2/src/shrpx_accept_handler.cc +168 -0
  487. ngh2-0.1.0/vendor/nghttp2/src/shrpx_accept_handler.h +55 -0
  488. ngh2-0.1.0/vendor/nghttp2/src/shrpx_api_downstream_connection.cc +476 -0
  489. ngh2-0.1.0/vendor/nghttp2/src/shrpx_api_downstream_connection.h +115 -0
  490. ngh2-0.1.0/vendor/nghttp2/src/shrpx_client_handler.cc +1716 -0
  491. ngh2-0.1.0/vendor/nghttp2/src/shrpx_client_handler.h +250 -0
  492. ngh2-0.1.0/vendor/nghttp2/src/shrpx_config.cc +4968 -0
  493. ngh2-0.1.0/vendor/nghttp2/src/shrpx_config.h +1444 -0
  494. ngh2-0.1.0/vendor/nghttp2/src/shrpx_config_test.cc +258 -0
  495. ngh2-0.1.0/vendor/nghttp2/src/shrpx_config_test.h +47 -0
  496. ngh2-0.1.0/vendor/nghttp2/src/shrpx_connect_blocker.cc +141 -0
  497. ngh2-0.1.0/vendor/nghttp2/src/shrpx_connect_blocker.h +86 -0
  498. ngh2-0.1.0/vendor/nghttp2/src/shrpx_connection.cc +925 -0
  499. ngh2-0.1.0/vendor/nghttp2/src/shrpx_connection.h +193 -0
  500. ngh2-0.1.0/vendor/nghttp2/src/shrpx_connection_handler.cc +892 -0
  501. ngh2-0.1.0/vendor/nghttp2/src/shrpx_connection_handler.h +275 -0
  502. ngh2-0.1.0/vendor/nghttp2/src/shrpx_dns_resolver.cc +373 -0
  503. ngh2-0.1.0/vendor/nghttp2/src/shrpx_dns_resolver.h +118 -0
  504. ngh2-0.1.0/vendor/nghttp2/src/shrpx_dns_tracker.cc +329 -0
  505. ngh2-0.1.0/vendor/nghttp2/src/shrpx_dns_tracker.h +121 -0
  506. ngh2-0.1.0/vendor/nghttp2/src/shrpx_downstream.cc +1221 -0
  507. ngh2-0.1.0/vendor/nghttp2/src/shrpx_downstream.h +634 -0
  508. ngh2-0.1.0/vendor/nghttp2/src/shrpx_downstream_connection.cc +48 -0
  509. ngh2-0.1.0/vendor/nghttp2/src/shrpx_downstream_connection.h +82 -0
  510. ngh2-0.1.0/vendor/nghttp2/src/shrpx_downstream_connection_pool.cc +66 -0
  511. ngh2-0.1.0/vendor/nghttp2/src/shrpx_downstream_connection_pool.h +53 -0
  512. ngh2-0.1.0/vendor/nghttp2/src/shrpx_downstream_queue.cc +169 -0
  513. ngh2-0.1.0/vendor/nghttp2/src/shrpx_downstream_queue.h +115 -0
  514. ngh2-0.1.0/vendor/nghttp2/src/shrpx_downstream_test.cc +220 -0
  515. ngh2-0.1.0/vendor/nghttp2/src/shrpx_downstream_test.h +50 -0
  516. ngh2-0.1.0/vendor/nghttp2/src/shrpx_dual_dns_resolver.cc +93 -0
  517. ngh2-0.1.0/vendor/nghttp2/src/shrpx_dual_dns_resolver.h +69 -0
  518. ngh2-0.1.0/vendor/nghttp2/src/shrpx_error.h +47 -0
  519. ngh2-0.1.0/vendor/nghttp2/src/shrpx_health_monitor_downstream_connection.cc +115 -0
  520. ngh2-0.1.0/vendor/nghttp2/src/shrpx_health_monitor_downstream_connection.h +64 -0
  521. ngh2-0.1.0/vendor/nghttp2/src/shrpx_http.cc +284 -0
  522. ngh2-0.1.0/vendor/nghttp2/src/shrpx_http.h +114 -0
  523. ngh2-0.1.0/vendor/nghttp2/src/shrpx_http2_downstream_connection.cc +625 -0
  524. ngh2-0.1.0/vendor/nghttp2/src/shrpx_http2_downstream_connection.h +95 -0
  525. ngh2-0.1.0/vendor/nghttp2/src/shrpx_http2_session.cc +2394 -0
  526. ngh2-0.1.0/vendor/nghttp2/src/shrpx_http2_session.h +303 -0
  527. ngh2-0.1.0/vendor/nghttp2/src/shrpx_http2_upstream.cc +2395 -0
  528. ngh2-0.1.0/vendor/nghttp2/src/shrpx_http2_upstream.h +151 -0
  529. ngh2-0.1.0/vendor/nghttp2/src/shrpx_http3_upstream.cc +2891 -0
  530. ngh2-0.1.0/vendor/nghttp2/src/shrpx_http3_upstream.h +202 -0
  531. ngh2-0.1.0/vendor/nghttp2/src/shrpx_http_downstream_connection.cc +1609 -0
  532. ngh2-0.1.0/vendor/nghttp2/src/shrpx_http_downstream_connection.h +124 -0
  533. ngh2-0.1.0/vendor/nghttp2/src/shrpx_http_test.cc +177 -0
  534. ngh2-0.1.0/vendor/nghttp2/src/shrpx_http_test.h +48 -0
  535. ngh2-0.1.0/vendor/nghttp2/src/shrpx_https_upstream.cc +1580 -0
  536. ngh2-0.1.0/vendor/nghttp2/src/shrpx_https_upstream.h +113 -0
  537. ngh2-0.1.0/vendor/nghttp2/src/shrpx_io_control.cc +66 -0
  538. ngh2-0.1.0/vendor/nghttp2/src/shrpx_io_control.h +58 -0
  539. ngh2-0.1.0/vendor/nghttp2/src/shrpx_live_check.cc +774 -0
  540. ngh2-0.1.0/vendor/nghttp2/src/shrpx_live_check.h +132 -0
  541. ngh2-0.1.0/vendor/nghttp2/src/shrpx_log.cc +913 -0
  542. ngh2-0.1.0/vendor/nghttp2/src/shrpx_log.h +339 -0
  543. ngh2-0.1.0/vendor/nghttp2/src/shrpx_log_config.cc +91 -0
  544. ngh2-0.1.0/vendor/nghttp2/src/shrpx_log_config.h +76 -0
  545. ngh2-0.1.0/vendor/nghttp2/src/shrpx_memcached_connection.cc +783 -0
  546. ngh2-0.1.0/vendor/nghttp2/src/shrpx_memcached_connection.h +155 -0
  547. ngh2-0.1.0/vendor/nghttp2/src/shrpx_memcached_dispatcher.cc +53 -0
  548. ngh2-0.1.0/vendor/nghttp2/src/shrpx_memcached_dispatcher.h +70 -0
  549. ngh2-0.1.0/vendor/nghttp2/src/shrpx_memcached_request.h +59 -0
  550. ngh2-0.1.0/vendor/nghttp2/src/shrpx_memcached_result.h +50 -0
  551. ngh2-0.1.0/vendor/nghttp2/src/shrpx_mruby.cc +238 -0
  552. ngh2-0.1.0/vendor/nghttp2/src/shrpx_mruby.h +89 -0
  553. ngh2-0.1.0/vendor/nghttp2/src/shrpx_mruby_module.cc +116 -0
  554. ngh2-0.1.0/vendor/nghttp2/src/shrpx_mruby_module.h +52 -0
  555. ngh2-0.1.0/vendor/nghttp2/src/shrpx_mruby_module_env.cc +501 -0
  556. ngh2-0.1.0/vendor/nghttp2/src/shrpx_mruby_module_env.h +42 -0
  557. ngh2-0.1.0/vendor/nghttp2/src/shrpx_mruby_module_request.cc +371 -0
  558. ngh2-0.1.0/vendor/nghttp2/src/shrpx_mruby_module_request.h +42 -0
  559. ngh2-0.1.0/vendor/nghttp2/src/shrpx_mruby_module_response.cc +396 -0
  560. ngh2-0.1.0/vendor/nghttp2/src/shrpx_mruby_module_response.h +42 -0
  561. ngh2-0.1.0/vendor/nghttp2/src/shrpx_null_downstream_connection.cc +88 -0
  562. ngh2-0.1.0/vendor/nghttp2/src/shrpx_null_downstream_connection.h +68 -0
  563. ngh2-0.1.0/vendor/nghttp2/src/shrpx_process.h +37 -0
  564. ngh2-0.1.0/vendor/nghttp2/src/shrpx_quic.cc +432 -0
  565. ngh2-0.1.0/vendor/nghttp2/src/shrpx_quic.h +170 -0
  566. ngh2-0.1.0/vendor/nghttp2/src/shrpx_quic_connection_handler.cc +800 -0
  567. ngh2-0.1.0/vendor/nghttp2/src/shrpx_quic_connection_handler.h +142 -0
  568. ngh2-0.1.0/vendor/nghttp2/src/shrpx_quic_listener.cc +148 -0
  569. ngh2-0.1.0/vendor/nghttp2/src/shrpx_quic_listener.h +51 -0
  570. ngh2-0.1.0/vendor/nghttp2/src/shrpx_rate_limit.cc +123 -0
  571. ngh2-0.1.0/vendor/nghttp2/src/shrpx_rate_limit.h +75 -0
  572. ngh2-0.1.0/vendor/nghttp2/src/shrpx_router.cc +421 -0
  573. ngh2-0.1.0/vendor/nghttp2/src/shrpx_router.h +108 -0
  574. ngh2-0.1.0/vendor/nghttp2/src/shrpx_router_test.cc +181 -0
  575. ngh2-0.1.0/vendor/nghttp2/src/shrpx_router_test.h +46 -0
  576. ngh2-0.1.0/vendor/nghttp2/src/shrpx_signal.cc +134 -0
  577. ngh2-0.1.0/vendor/nghttp2/src/shrpx_signal.h +60 -0
  578. ngh2-0.1.0/vendor/nghttp2/src/shrpx_tls.cc +2680 -0
  579. ngh2-0.1.0/vendor/nghttp2/src/shrpx_tls.h +334 -0
  580. ngh2-0.1.0/vendor/nghttp2/src/shrpx_tls_test.cc +360 -0
  581. ngh2-0.1.0/vendor/nghttp2/src/shrpx_tls_test.h +48 -0
  582. ngh2-0.1.0/vendor/nghttp2/src/shrpx_upstream.h +114 -0
  583. ngh2-0.1.0/vendor/nghttp2/src/shrpx_worker.cc +1714 -0
  584. ngh2-0.1.0/vendor/nghttp2/src/shrpx_worker.h +481 -0
  585. ngh2-0.1.0/vendor/nghttp2/src/shrpx_worker_process.cc +733 -0
  586. ngh2-0.1.0/vendor/nghttp2/src/shrpx_worker_process.h +67 -0
  587. ngh2-0.1.0/vendor/nghttp2/src/shrpx_worker_test.cc +264 -0
  588. ngh2-0.1.0/vendor/nghttp2/src/shrpx_worker_test.h +44 -0
  589. ngh2-0.1.0/vendor/nghttp2/src/siphash.cc +114 -0
  590. ngh2-0.1.0/vendor/nghttp2/src/siphash.h +61 -0
  591. ngh2-0.1.0/vendor/nghttp2/src/siphash_test.cc +68 -0
  592. ngh2-0.1.0/vendor/nghttp2/src/siphash_test.h +44 -0
  593. ngh2-0.1.0/vendor/nghttp2/src/ssl_compat.h +110 -0
  594. ngh2-0.1.0/vendor/nghttp2/src/template.h +409 -0
  595. ngh2-0.1.0/vendor/nghttp2/src/template_test.cc +297 -0
  596. ngh2-0.1.0/vendor/nghttp2/src/template_test.h +47 -0
  597. ngh2-0.1.0/vendor/nghttp2/src/test.example.com-key.pem +27 -0
  598. ngh2-0.1.0/vendor/nghttp2/src/test.example.com.csr +17 -0
  599. ngh2-0.1.0/vendor/nghttp2/src/test.example.com.csr.json +14 -0
  600. ngh2-0.1.0/vendor/nghttp2/src/test.example.com.pem +23 -0
  601. ngh2-0.1.0/vendor/nghttp2/src/test.nghttp2.org-key.pem +27 -0
  602. ngh2-0.1.0/vendor/nghttp2/src/test.nghttp2.org.csr +19 -0
  603. ngh2-0.1.0/vendor/nghttp2/src/test.nghttp2.org.csr.json +19 -0
  604. ngh2-0.1.0/vendor/nghttp2/src/test.nghttp2.org.pem +24 -0
  605. ngh2-0.1.0/vendor/nghttp2/src/testdata/Makefile.am +27 -0
  606. ngh2-0.1.0/vendor/nghttp2/src/testdata/ipaddr.crt +10 -0
  607. ngh2-0.1.0/vendor/nghttp2/src/testdata/nosan.crt +9 -0
  608. ngh2-0.1.0/vendor/nghttp2/src/testdata/nosan_ip.crt +9 -0
  609. ngh2-0.1.0/vendor/nghttp2/src/testdata/verify_hostname.crt +10 -0
  610. ngh2-0.1.0/vendor/nghttp2/src/timegm.c +88 -0
  611. ngh2-0.1.0/vendor/nghttp2/src/timegm.h +49 -0
  612. ngh2-0.1.0/vendor/nghttp2/src/tls.cc +270 -0
  613. ngh2-0.1.0/vendor/nghttp2/src/tls.h +140 -0
  614. ngh2-0.1.0/vendor/nghttp2/src/util.cc +1937 -0
  615. ngh2-0.1.0/vendor/nghttp2/src/util.h +1379 -0
  616. ngh2-0.1.0/vendor/nghttp2/src/util_test.cc +1224 -0
  617. ngh2-0.1.0/vendor/nghttp2/src/util_test.h +94 -0
  618. ngh2-0.1.0/vendor/nghttp2/src/xsi_strerror.c +50 -0
  619. ngh2-0.1.0/vendor/nghttp2/src/xsi_strerror.h +55 -0
  620. ngh2-0.1.0/vendor/nghttp2/tests/.gitignore +3 -0
  621. ngh2-0.1.0/vendor/nghttp2/tests/CMakeLists.txt +52 -0
  622. ngh2-0.1.0/vendor/nghttp2/tests/Makefile.am +94 -0
  623. ngh2-0.1.0/vendor/nghttp2/tests/failmalloc.c +45 -0
  624. ngh2-0.1.0/vendor/nghttp2/tests/failmalloc_test.c +591 -0
  625. ngh2-0.1.0/vendor/nghttp2/tests/failmalloc_test.h +44 -0
  626. ngh2-0.1.0/vendor/nghttp2/tests/main.c +71 -0
  627. ngh2-0.1.0/vendor/nghttp2/tests/malloc_wrapper.c +85 -0
  628. ngh2-0.1.0/vendor/nghttp2/tests/malloc_wrapper.h +65 -0
  629. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_alpn_test.c +108 -0
  630. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_alpn_test.h +40 -0
  631. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_assertion.h +56 -0
  632. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_buf_test.c +361 -0
  633. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_buf_test.h +48 -0
  634. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_extpri_test.c +61 -0
  635. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_extpri_test.h +41 -0
  636. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_frame_test.c +779 -0
  637. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_frame_test.h +53 -0
  638. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_hd_test.c +1622 -0
  639. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_hd_test.h +61 -0
  640. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_helper_test.c +205 -0
  641. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_helper_test.h +43 -0
  642. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_http_test.c +215 -0
  643. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_http_test.h +41 -0
  644. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_map_test.c +222 -0
  645. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_map_test.h +44 -0
  646. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_pq_test.c +237 -0
  647. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_pq_test.h +42 -0
  648. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_queue_test.c +59 -0
  649. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_queue_test.h +40 -0
  650. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_ratelim_test.c +111 -0
  651. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_ratelim_test.h +41 -0
  652. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_session_test.c +12089 -0
  653. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_session_test.h +170 -0
  654. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_stream_test.c +29 -0
  655. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_stream_test.h +32 -0
  656. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_test_helper.c +331 -0
  657. ngh2-0.1.0/vendor/nghttp2/tests/nghttp2_test_helper.h +110 -0
  658. ngh2-0.1.0/vendor/nghttp2/tests/testdata/Makefile.am +23 -0
  659. ngh2-0.1.0/vendor/nghttp2/tests/testdata/cacert.pem +14 -0
  660. ngh2-0.1.0/vendor/nghttp2/tests/testdata/index.html +1 -0
  661. ngh2-0.1.0/vendor/nghttp2/tests/testdata/privkey.pem +9 -0
  662. ngh2-0.1.0/vendor/nghttp2/third-party/CMakeLists.txt +82 -0
  663. ngh2-0.1.0/vendor/nghttp2/third-party/Makefile.am +685 -0
  664. ngh2-0.1.0/vendor/nghttp2/third-party/build_config.rb +56 -0
  665. ngh2-0.1.0/vendor/nghttp2/third-party/llhttp/LICENSE +22 -0
  666. ngh2-0.1.0/vendor/nghttp2/third-party/llhttp/README.md +508 -0
  667. ngh2-0.1.0/vendor/nghttp2/third-party/llhttp/common.gypi +46 -0
  668. ngh2-0.1.0/vendor/nghttp2/third-party/llhttp/include/llhttp.h +907 -0
  669. ngh2-0.1.0/vendor/nghttp2/third-party/llhttp/llhttp.gyp +22 -0
  670. ngh2-0.1.0/vendor/nghttp2/third-party/llhttp/src/api.c +509 -0
  671. ngh2-0.1.0/vendor/nghttp2/third-party/llhttp/src/http.c +170 -0
  672. ngh2-0.1.0/vendor/nghttp2/third-party/llhttp/src/llhttp.c +10103 -0
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: ngh2-audit
3
+ description: Review ngh2 code, diffs, APIs, architecture, tests, Cython/libnghttp2 boundaries, packaging, documentation, or release surfaces for evidence-backed defects and unnecessary complexity. Use for read-only audits and after implementation; never modify files.
4
+ ---
5
+
6
+ # ngh2 Audit
7
+
8
+ Review the current artifact independently and remain read-only.
9
+
10
+ ## Workflow
11
+
12
+ 1. Read `AGENTS.md`, the requested scope, affected files, applicable tests, and
13
+ the public contract under review.
14
+ 2. Inspect current checkout facts instead of trusting historical reports or the
15
+ implementation author's conclusion.
16
+ 3. Select only relevant lenses: protocol behavior, state/data ownership,
17
+ Python/native boundaries, public API usability, resource and callback
18
+ safety, tests, packaging, naming, or maintenance cost.
19
+ 4. Use `ngh2-knowledge` when a finding depends on an external fact. Treat
20
+ protocol sources, official guidance, pinned implementation observations, and
21
+ engineering judgment as different evidence classes.
22
+ 5. Challenge new surface and machinery:
23
+ - identify the current caller, contract, failure, or source that requires it;
24
+ - identify which layer owns its state, validation, errors, and lifecycle;
25
+ - check whether an existing direct path provides the same behavior;
26
+ - require evidence that matches correctness, interoperability, safety, or
27
+ performance claims.
28
+ 6. For a public API difference from a mature reference, state the observable
29
+ reference boundary and the caller action enabled by the difference. Report a
30
+ defect when consumers must reconstruct hidden protocol state or no consumer
31
+ action depends on the added surface.
32
+ 7. Report findings first, ordered by demonstrated consequence. Then list only
33
+ genuine open questions or evidence gaps.
34
+
35
+ ## Finding Standard
36
+
37
+ Report a finding only when all four are present:
38
+
39
+ 1. a precise current artifact fact;
40
+ 2. a governing source, explicit contract, reproduction, or clearly labelled
41
+ engineering judgment;
42
+ 3. a concrete correctness, interoperability, usability, safety, performance, or
43
+ maintenance consequence;
44
+ 4. the smallest credible resolution direction.
45
+
46
+ Set severity from consequence and likelihood. Reserve high severity for
47
+ plausible contract failures, interoperability breaks, state/data loss,
48
+ exploitable boundaries, or release blockers.
49
+
50
+ Do not report style preferences without a consequence, hypothetical risks
51
+ without a present boundary, unmeasured performance concerns, missing
52
+ abstractions where direct code is clear, or compatibility concerns for an
53
+ unreleased surface unless compatibility is required.
54
+
55
+ If no finding meets the standard, say so clearly and identify only residual
56
+ verification gaps.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "ngh2 Audit"
3
+ short_description: "Review ngh2 for evidence-backed defects"
4
+ default_prompt: "Use $ngh2-audit to review the current ngh2 changes for defects and unnecessary complexity."
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: ngh2-implementation
3
+ description: Implement requested changes in the ngh2 Python package, Cython/libnghttp2 binding, tests, packaging, CI, or project documentation. Use when creating, modifying, fixing, refactoring, replacing, or migrating ngh2 behavior or repository files. Do not use for read-only audits or factual research.
4
+ ---
5
+
6
+ # ngh2 Implementation
7
+
8
+ Deliver the smallest complete change that satisfies the request and preserves
9
+ the repository boundaries in `AGENTS.md`.
10
+
11
+ ## Workflow
12
+
13
+ 1. Read `AGENTS.md` and every affected file before editing. Inspect callers,
14
+ tests, public exports, type information, and configuration that share the
15
+ changed contract.
16
+ 2. Establish the requested outcome and explicit non-goals. Do not add adjacent
17
+ features, compatibility layers, reports, or tooling without a current need.
18
+ 3. Trace the owning layer before choosing the fix. Keep HTTP/2 protocol state
19
+ in libnghttp2, transport/runtime ownership outside the package, and
20
+ Python-facing vocabulary natural for Python.
21
+ 4. Use `ngh2-knowledge` when a decision depends on protocol requirements,
22
+ libnghttp2 behavior, established tooling behavior, packaging rules, native
23
+ extension practice, or licenses. Separate source facts from project choices.
24
+ 5. Implement the smallest coherent design. Update all affected layers required
25
+ for correctness, including Python exports, type information, and tests when
26
+ their contract changes.
27
+ 6. Add the smallest check that would fail for a changed behavior. Match evidence
28
+ to the claim: focused tests for behavior, interoperability for real peers,
29
+ fuzzing for hostile input/state exploration, and benchmarks for performance.
30
+ 7. Run focused checks first, then the broader gate required by `AGENTS.md`.
31
+ Read fresh output before claiming success.
32
+ 8. Review the final changes with `ngh2-audit`. Address blocking findings through
33
+ this workflow and rerun the affected checks.
34
+
35
+ ## Implementation Boundaries
36
+
37
+ - Keep socket, TLS, async runtime, client, server, and connection-pool ownership
38
+ outside the Sans-I/O binding.
39
+ - Do not reimplement behavior already owned by libnghttp2 without demonstrated
40
+ need.
41
+ - Prefer existing language features and mature dependencies over local
42
+ machinery.
43
+ - Replace incorrect pre-release APIs directly. Do not retain aliases, shims, or
44
+ duplicate implementations unless compatibility is explicitly required.
45
+ - Do not invent protocol behavior, resource limits, safety claims, or
46
+ performance claims without evidence.
47
+ - Do not add tests that only restate constants, types, or implementation
48
+ spelling without protecting observable behavior.
49
+
50
+ Stop and report the conflict instead of patching around missing authority,
51
+ unclear ownership, or an environment that cannot verify the requested result.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "ngh2 Implementation"
3
+ short_description: "Implement focused ngh2 changes safely"
4
+ default_prompt: "Use $ngh2-implementation to implement this ngh2 change and verify it."
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: ngh2-knowledge
3
+ description: Research, verify, and, when explicitly requested, maintain source-based knowledge in docs/knowledge. Use for factual questions about HTTP/2, libnghttp2, Sans-I/O architecture, Python/native boundaries, C extension tooling, packaging, dependencies, licenses, performance, or established practice, including stale or conflicting claims. Keep project decisions and code-specific audit conclusions out of the collection.
4
+ ---
5
+
6
+ # ngh2 Knowledge
7
+
8
+ Use `docs/knowledge/` as a factual reference layer. It supplies evidence and
9
+ source maps; it does not decide what ngh2 should implement.
10
+
11
+ ## Retrieve And Verify
12
+
13
+ 1. Resolve the repository root and read `docs/knowledge/README.md` for evidence
14
+ labels and freshness semantics.
15
+ 2. Search document metadata before loading topic files:
16
+
17
+ ```console
18
+ rg -n '^(title|description|topics|checked_at):' docs/knowledge --glob '*.md'
19
+ ```
20
+
21
+ 3. Read only documents matching the protocol term, tool, claim, or evidence
22
+ class. Follow direct citations when exact current wording or provenance
23
+ matters.
24
+ 4. Keep these evidence classes distinct:
25
+ - normative source: an applicable RFC or BCP;
26
+ - authoritative registry: current IANA data;
27
+ - official guidance: documentation from the tool or language owner;
28
+ - observed practice: behavior or structure in a named, pinned implementation;
29
+ - methodological synthesis: a conclusion across sources.
30
+ 5. Verify live primary sources when the answer depends on mutable protocol
31
+ status, library behavior, tool behavior, package metadata, or current
32
+ practice.
33
+ 6. Report unavailable, superseded, materially changed, or conflicting sources.
34
+ Do not silently resolve uncertainty or rewrite the collection during a
35
+ read-only task.
36
+
37
+ ## Maintain The Collection
38
+
39
+ Modify `docs/knowledge/` only when knowledge maintenance is explicitly
40
+ requested.
41
+
42
+ 1. Update the existing owner document; add a topic only for a distinct reusable
43
+ domain.
44
+ 2. Keep documents factual and independent of ngh2 code, audits, plans,
45
+ benchmark results, release decisions, and temporary recommendations.
46
+ 3. Use `title`, `description`, `topics`, and `checked_at` frontmatter on topic
47
+ documents. Change `checked_at` only after reviewing every external claim in
48
+ that document.
49
+ 4. Cite primary sources beside the supported claims. Pin implementation
50
+ observations to a version or commit.
51
+ 5. Replace stale claims instead of appending a contradictory account. Do not
52
+ copy remote source archives without an offline or reproducibility need.
53
+ 6. Update `docs/knowledge/README.md` only when the document set or domain layout
54
+ changes.
55
+ 7. Verify frontmatter, relative links, absence of personal paths, and the
56
+ separation between source facts, synthesis, and project choices.
57
+
58
+ Do not create reports, decision logs, generated indexes, or monitoring
59
+ machinery for ordinary knowledge work.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "ngh2 Knowledge"
3
+ short_description: "Verify HTTP/2 and native-binding facts"
4
+ default_prompt: "Use $ngh2-knowledge to verify this HTTP/2 or native-binding claim from primary sources."
@@ -0,0 +1,12 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: uv
4
+ directory: "/"
5
+ versioning-strategy: lockfile-only
6
+ schedule:
7
+ interval: weekly
8
+
9
+ - package-ecosystem: github-actions
10
+ directory: "/"
11
+ schedule:
12
+ interval: weekly
@@ -0,0 +1,148 @@
1
+ name: CI
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches: [main]
7
+ workflow_dispatch:
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ concurrency:
13
+ group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
14
+ cancel-in-progress: true
15
+
16
+ env:
17
+ RUFF_OUTPUT_FORMAT: github
18
+ TY_OUTPUT_FORMAT: github
19
+
20
+ jobs:
21
+ lint:
22
+ name: Lint and static analysis
23
+ runs-on: ubuntu-latest
24
+ steps:
25
+ - uses: actions/checkout@v7
26
+ with:
27
+ persist-credentials: false
28
+ submodules: true
29
+ - uses: astral-sh/setup-uv@v8.3.2
30
+ - run: uv sync --locked
31
+ - run: uv run --locked pre-commit run --all-files
32
+
33
+ python:
34
+ name: Python ${{ matrix.python-version }}${{ matrix.preview && ' preview' || '' }} on ${{ matrix.os }}
35
+ runs-on: ${{ matrix.os }}
36
+ strategy:
37
+ fail-fast: false
38
+ matrix:
39
+ os: [ubuntu-latest]
40
+ python-version: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.14t"]
41
+ include:
42
+ # Pre-release interpreters exercise forward compatibility but are
43
+ # not wheel targets until CPython reaches the release candidate phase.
44
+ - os: ubuntu-latest
45
+ python-version: "3.15"
46
+ preview: true
47
+ - os: ubuntu-latest
48
+ python-version: "3.15t"
49
+ preview: true
50
+ - os: ubuntu-24.04-arm
51
+ python-version: "3.12"
52
+ - os: macos-15-intel
53
+ python-version: "3.12"
54
+ - os: macos-14
55
+ python-version: "3.12"
56
+ - os: windows-latest
57
+ python-version: "3.12"
58
+ - os: windows-11-arm
59
+ python-version: "3.12"
60
+ steps:
61
+ - uses: actions/checkout@v7
62
+ with:
63
+ persist-credentials: false
64
+ submodules: true
65
+ - uses: astral-sh/setup-uv@v8.3.2
66
+ with:
67
+ python-version: ${{ matrix.python-version }}
68
+ - run: uv sync --locked --no-dev --group test
69
+ - run: uv run --locked --no-dev --group test pytest -m "not h2spec"
70
+
71
+ h2spec:
72
+ name: h2spec generic conformance
73
+ runs-on: ubuntu-latest
74
+ steps:
75
+ - uses: actions/checkout@v7
76
+ with:
77
+ persist-credentials: false
78
+ submodules: true
79
+ - uses: astral-sh/setup-uv@v8.3.2
80
+ - run: uv sync --locked --no-dev --group test
81
+ - name: Install h2spec 2.6.0
82
+ run: |
83
+ curl --fail --location --silent --show-error \
84
+ --output "$RUNNER_TEMP/h2spec.tar.gz" \
85
+ https://github.com/summerwind/h2spec/releases/download/v2.6.0/h2spec_linux_amd64.tar.gz
86
+ echo "157ee0de702e01ad40e752dbf074b366027e550c8e7504f9450da2809e279318 $RUNNER_TEMP/h2spec.tar.gz" \
87
+ | sha256sum --check
88
+ mkdir "$RUNNER_TEMP/h2spec"
89
+ tar -xzf "$RUNNER_TEMP/h2spec.tar.gz" -C "$RUNNER_TEMP/h2spec"
90
+ echo "$RUNNER_TEMP/h2spec" >> "$GITHUB_PATH"
91
+ - run: uv run --locked --no-dev --group test pytest -m h2spec
92
+
93
+ package:
94
+ name: Source distribution
95
+ runs-on: ubuntu-latest
96
+ steps:
97
+ - uses: actions/checkout@v7
98
+ with:
99
+ persist-credentials: false
100
+ submodules: true
101
+ - uses: astral-sh/setup-uv@v8.3.2
102
+ - name: Build sdist and rebuild its wheel
103
+ run: |
104
+ uv build --sdist
105
+ uv build --wheel dist/*.tar.gz
106
+ - name: Test the installed wheel outside the source tree
107
+ run: |
108
+ uv venv "$RUNNER_TEMP/ngh2-wheel-test"
109
+ uv pip install --python "$RUNNER_TEMP/ngh2-wheel-test/bin/python" \
110
+ dist/*.whl pytest h2
111
+ cd "$RUNNER_TEMP"
112
+ "$RUNNER_TEMP/ngh2-wheel-test/bin/python" -m pytest \
113
+ "$GITHUB_WORKSPACE/tests" -m "not h2spec"
114
+
115
+ coverage:
116
+ name: Coverage
117
+ runs-on: ubuntu-latest
118
+ # Codecov uses OIDC, so no long-lived upload token is stored.
119
+ permissions:
120
+ contents: read
121
+ id-token: write
122
+ env:
123
+ CMAKE_ARGS: -DNGH2_COVERAGE=ON
124
+ steps:
125
+ - uses: actions/checkout@v7
126
+ with:
127
+ persist-credentials: false
128
+ submodules: true
129
+ - uses: astral-sh/setup-uv@v8.3.2
130
+ - name: Build the traced extension
131
+ run: >-
132
+ uv --no-cache sync --locked --no-dev --group test --group coverage
133
+ --reinstall-package ngh2
134
+ - name: Expose generated C sources to the Cython coverage plugin
135
+ run: |
136
+ ln -s "$(find "$GITHUB_WORKSPACE/build" -name _core.c -print -quit)" src/ngh2/_core.c
137
+ ln -s "$(find "$GITHUB_WORKSPACE/build" -name events.c -print -quit)" src/ngh2/events.c
138
+ - run: uv run --no-sync coverage run -m pytest -m "not h2spec"
139
+ - run: uv run --no-sync coverage xml
140
+ - run: uv run --no-sync coverage report
141
+ - uses: codecov/codecov-action@v7
142
+ with:
143
+ disable_search: true
144
+ # Test and report generation already gate this job; an external
145
+ # upload outage should not block the project CI.
146
+ fail_ci_if_error: false
147
+ files: coverage.xml
148
+ use_oidc: true
@@ -0,0 +1,121 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags: ["v*"]
6
+
7
+ permissions:
8
+ contents: read
9
+
10
+ concurrency:
11
+ group: release-${{ github.ref_name }}
12
+ cancel-in-progress: false
13
+
14
+ jobs:
15
+ validate:
16
+ name: Validate release
17
+ runs-on: ubuntu-latest
18
+ steps:
19
+ - uses: actions/checkout@v7
20
+ with:
21
+ persist-credentials: false
22
+ - name: Verify tag and package version
23
+ env:
24
+ RELEASE_TAG: ${{ github.ref_name }}
25
+ run: |
26
+ version="$(python3 -c 'import runpy; print(runpy.run_path("src/ngh2/_version.py")["__version__"])')"
27
+ test "$RELEASE_TAG" = "v$version"
28
+ grep -Fq "## [$version] - " CHANGELOG.md
29
+
30
+ wheels:
31
+ name: Wheels on ${{ matrix.platform }}
32
+ needs: validate
33
+ runs-on: ${{ matrix.os }}
34
+ strategy:
35
+ fail-fast: false
36
+ matrix:
37
+ include:
38
+ - platform: manylinux-x86_64
39
+ os: ubuntu-latest
40
+ - platform: manylinux-aarch64
41
+ os: ubuntu-24.04-arm
42
+ - platform: macos-x86_64
43
+ os: macos-15-intel
44
+ - platform: macos-aarch64
45
+ os: macos-14
46
+ - platform: windows-x86_64
47
+ os: windows-latest
48
+ - platform: windows-aarch64
49
+ os: windows-11-arm
50
+ steps:
51
+ - uses: actions/checkout@v7
52
+ with:
53
+ persist-credentials: false
54
+ submodules: true
55
+ - uses: pypa/cibuildwheel@v4.1.0
56
+ - uses: actions/upload-artifact@v7
57
+ with:
58
+ name: wheels-${{ matrix.platform }}
59
+ path: wheelhouse/*.whl
60
+ if-no-files-found: error
61
+
62
+ sdist:
63
+ name: Source distribution
64
+ needs: validate
65
+ runs-on: ubuntu-latest
66
+ steps:
67
+ - uses: actions/checkout@v7
68
+ with:
69
+ persist-credentials: false
70
+ submodules: true
71
+ - uses: astral-sh/setup-uv@v8.3.2
72
+ with:
73
+ enable-cache: false
74
+ - run: uv build --sdist
75
+ - name: Smoke-test source distribution
76
+ run: |
77
+ uv venv "$RUNNER_TEMP/ngh2-sdist-test"
78
+ uv pip install --python "$RUNNER_TEMP/ngh2-sdist-test/bin/python" dist/*.tar.gz
79
+ "$RUNNER_TEMP/ngh2-sdist-test/bin/python" -c "import ngh2"
80
+ - uses: actions/upload-artifact@v7
81
+ with:
82
+ name: sdist
83
+ path: dist/*.tar.gz
84
+ if-no-files-found: error
85
+
86
+ publish-pypi:
87
+ name: Publish to PyPI
88
+ needs: [wheels, sdist]
89
+ runs-on: ubuntu-latest
90
+ environment: release
91
+ permissions:
92
+ contents: read
93
+ id-token: write
94
+ steps:
95
+ - uses: actions/download-artifact@v8
96
+ with:
97
+ pattern: "*"
98
+ path: dist
99
+ merge-multiple: true
100
+ - uses: pypa/gh-action-pypi-publish@release/v1
101
+ with:
102
+ packages-dir: dist/
103
+
104
+ github-release:
105
+ name: Publish GitHub release
106
+ needs: publish-pypi
107
+ runs-on: ubuntu-latest
108
+ permissions:
109
+ contents: write
110
+ steps:
111
+ - uses: actions/download-artifact@v8
112
+ with:
113
+ pattern: "*"
114
+ path: dist
115
+ merge-multiple: true
116
+ - name: Create release
117
+ env:
118
+ GH_TOKEN: ${{ github.token }}
119
+ GH_REPO: ${{ github.repository }}
120
+ RELEASE_TAG: ${{ github.ref_name }}
121
+ run: gh release create "$RELEASE_TAG" dist/* --verify-tag --generate-notes
ngh2-0.1.0/.gitignore ADDED
@@ -0,0 +1,47 @@
1
+ # Python bytecode and native extensions
2
+ __pycache__/
3
+ *.py[codz]
4
+ *$py.class
5
+ *.so
6
+ *.pyd
7
+
8
+ # Python environments and local configuration
9
+ .venv/
10
+ .env
11
+ .env.*
12
+ !.env.example
13
+ .pypirc
14
+
15
+ # Python and CMake build outputs
16
+ build/
17
+ dist/
18
+ *.egg-info/
19
+ *.whl
20
+ CMakeUserPresets.json
21
+
22
+ # Tests, coverage, and static analysis
23
+ .pytest_cache/
24
+ .coverage
25
+ .coverage.*
26
+ coverage.xml
27
+ htmlcov/
28
+ *.lcov
29
+ .ruff_cache/
30
+
31
+ # IDE files
32
+ .idea/
33
+ *.iml
34
+ .vscode/
35
+ *.swp
36
+ *.swo
37
+ *~
38
+
39
+ # Logs
40
+ *.log
41
+
42
+ # Operating system metadata
43
+ .DS_Store
44
+ ._*
45
+ Thumbs.db
46
+ [Dd]esktop.ini
47
+ .directory
ngh2-0.1.0/.gitmodules ADDED
@@ -0,0 +1,3 @@
1
+ [submodule "vendor/nghttp2"]
2
+ path = vendor/nghttp2
3
+ url = https://github.com/nghttp2/nghttp2.git
@@ -0,0 +1,32 @@
1
+ repos:
2
+ - repo: local
3
+ hooks:
4
+ - id: uv-lock
5
+ name: Check uv lockfile
6
+ entry: uv lock --check
7
+ language: system
8
+ pass_filenames: false
9
+
10
+ - id: ruff-format
11
+ name: Check Python formatting
12
+ entry: uv run --locked ruff format --check .
13
+ language: system
14
+ pass_filenames: false
15
+
16
+ - id: ruff-check
17
+ name: Lint Python
18
+ entry: uv run --locked ruff check .
19
+ language: system
20
+ pass_filenames: false
21
+
22
+ - id: cython-lint
23
+ name: Lint Cython
24
+ entry: uv run --locked cython-lint src/ngh2
25
+ language: system
26
+ pass_filenames: false
27
+
28
+ - id: ty
29
+ name: Check Python types
30
+ entry: uv run --locked ty check
31
+ language: system
32
+ pass_filenames: false
@@ -0,0 +1 @@
1
+ 3.12
ngh2-0.1.0/AGENTS.md ADDED
@@ -0,0 +1,79 @@
1
+ # ngh2 Repository Guidance
2
+
3
+ ## Product Boundary
4
+
5
+ - `ngh2` is a Sans-I/O HTTP/2 protocol library for Python, implemented as a
6
+ Cython binding over the vendored libnghttp2 source.
7
+ - libnghttp2 owns HTTP/2 connection and stream state, framing, HPACK, flow
8
+ control, scheduling, and protocol validation. Do not reimplement native
9
+ behavior in the binding without a demonstrated need.
10
+ - Keep sockets, TLS, async runtimes, HTTP clients and servers, connection pools,
11
+ routing, retries, and application timeouts outside this package.
12
+ - The binding owns Python-facing objects, event and error translation, buffer
13
+ lifetimes, configuration mapping, type information, and distribution
14
+ packaging.
15
+
16
+ ## Repository Map
17
+
18
+ - `src/ngh2`: Python API, Cython implementation, C declarations, and type stubs.
19
+ - `vendor/nghttp2`: pinned upstream Git submodule; update it as a dependency,
20
+ not by editing vendored source in place.
21
+ - `tests`: behavior, lifecycle, limits, hyper-h2 interoperability, and h2spec
22
+ adapter coverage.
23
+ - `benchmarks`: reproducible public-API comparison workloads and rendering.
24
+ - `docs/knowledge`: source-based facts, not project decisions or audit reports.
25
+ - `.agents/skills`: project workflows for implementation, audit, and knowledge
26
+ work.
27
+
28
+ ## Development
29
+
30
+ Install locked development dependencies with:
31
+
32
+ ```console
33
+ uv sync --locked
34
+ ```
35
+
36
+ Use focused tests while iterating, then run the local gate:
37
+
38
+ ```console
39
+ uv run --locked pytest tests/test_connection.py
40
+ uv run --locked pre-commit run --all-files
41
+ uv run --locked pytest -m "not h2spec"
42
+ uv build
43
+ ```
44
+
45
+ Run `uv run --locked pytest -m h2spec` when the external `h2spec` executable is
46
+ installed and the changed behavior affects protocol interoperability.
47
+
48
+ ## Change Rules
49
+
50
+ - Read affected callers, tests, exports, stubs, and configuration before
51
+ editing. Update runtime behavior, public exports, `.pyi` files, and tests
52
+ together when a Python contract changes.
53
+ - Keep public names and docstrings natural for Python and describe HTTP/2
54
+ behavior rather than C binding mechanics. Comment internal ownership and
55
+ callback lifetimes where they are not obvious.
56
+ - Validate protocol ranges, ownership, and C conversion boundaries. Do not add
57
+ defensive checks that only restate type hints unless they stabilize a public
58
+ error contract.
59
+ - Treat callback pointers and borrowed native buffers as callback-scoped unless
60
+ the upstream API explicitly guarantees a longer lifetime.
61
+ - Ruff and ty do not validate Cython source. Binding changes must also pass
62
+ `cython-lint`, compile, and execute relevant tests; the pre-commit gate runs
63
+ the configured static checks.
64
+ - Back protocol and libnghttp2 claims with RFCs, official documentation, or
65
+ pinned source observations. Treat mature implementations as observed
66
+ practice, not authority.
67
+ - Keep generated C files, build output, local environments, editor state,
68
+ temporary reports, and personal instructions out of version control.
69
+
70
+ ## Project Skills
71
+
72
+ - Use `ngh2-implementation` for changes to code, tests, packaging, CI, or
73
+ project documentation.
74
+ - Use `ngh2-audit` for read-only review after implementation or on request.
75
+ - Use `ngh2-knowledge` for source-based factual research and explicitly
76
+ requested maintenance of `docs/knowledge`.
77
+
78
+ Work is complete only after the relevant focused checks and local gate finish
79
+ successfully, followed by a read-only audit of the final changes.
@@ -0,0 +1,15 @@
1
+ # Changelog
2
+
3
+ User-visible changes to ngh2 are recorded here.
4
+
5
+ ## [Unreleased]
6
+
7
+ ## [0.1.0] - 2026-07-20
8
+
9
+ ### Added
10
+
11
+ - Initial Python package for Sans-I/O HTTP/2 powered by libnghttp2.
12
+ - Client and server connections, h2c upgrade, flow control, server push,
13
+ priority, extension frames, and typed protocol events.
14
+ - Support for GIL-enabled CPython 3.10 through 3.14 and free-threaded CPython
15
+ 3.14t.