eggfetch 0.2.0__tar.gz → 0.2.1__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 (297) hide show
  1. {eggfetch-0.2.0 → eggfetch-0.2.1}/Cargo.lock +11 -6
  2. {eggfetch-0.2.0 → eggfetch-0.2.1}/PKG-INFO +3 -3
  3. {eggfetch-0.2.0/crates/eggfetch-http-connect → eggfetch-0.2.1}/README.md +2 -2
  4. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/Cargo.toml +2 -2
  5. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/README.md +2 -2
  6. eggfetch-0.2.1/crates/eggfetch-core/tests/tls_response_completeness.rs +943 -0
  7. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-http-connect/Cargo.toml +1 -1
  8. {eggfetch-0.2.0/crates/eggfetch-python → eggfetch-0.2.1/crates/eggfetch-http-connect}/README.md +2 -2
  9. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/Cargo.toml +2 -2
  10. {eggfetch-0.2.0 → eggfetch-0.2.1/crates/eggfetch-python}/README.md +2 -2
  11. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/test_sync.py +1 -1
  12. {eggfetch-0.2.0 → eggfetch-0.2.1}/pyproject.toml +1 -1
  13. {eggfetch-0.2.0 → eggfetch-0.2.1}/Cargo.toml +0 -0
  14. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/examples/quickstart.rs +0 -0
  15. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/auth.rs +0 -0
  16. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/body.rs +0 -0
  17. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/client/config.rs +0 -0
  18. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/client/connectors.rs +0 -0
  19. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/client/routes.rs +0 -0
  20. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/client.rs +0 -0
  21. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/compression.rs +0 -0
  22. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/cookie.rs +0 -0
  23. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/error.rs +0 -0
  24. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/h2_headers.rs +0 -0
  25. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/headers.rs +0 -0
  26. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/http_origin.rs +0 -0
  27. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/http_version.rs +0 -0
  28. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/lib.rs +0 -0
  29. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/limits.rs +0 -0
  30. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/multipart.rs +0 -0
  31. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/network_stream.rs +0 -0
  32. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/pipeline/finalize.rs +0 -0
  33. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/pipeline/h3_dispatch.rs +0 -0
  34. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/pipeline/hyper_dispatch.rs +0 -0
  35. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/pipeline/lean.rs +0 -0
  36. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/pipeline/mod.rs +0 -0
  37. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/pipeline/prepare.rs +0 -0
  38. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/pipeline/proxy_dispatch.rs +0 -0
  39. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/pipeline/redirect.rs +0 -0
  40. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/pipeline/retry.rs +0 -0
  41. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/pipeline/route.rs +0 -0
  42. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/pool.rs +0 -0
  43. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/proxy/environment.rs +0 -0
  44. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/proxy/identity.rs +0 -0
  45. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/proxy/no_proxy.rs +0 -0
  46. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/proxy.rs +0 -0
  47. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/redact.rs +0 -0
  48. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/redirect.rs +0 -0
  49. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/request.rs +0 -0
  50. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/response.rs +0 -0
  51. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/response_decode.rs +0 -0
  52. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/retry.rs +0 -0
  53. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/service.rs +0 -0
  54. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/stream/body_timeout.rs +0 -0
  55. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/stream/mod.rs +0 -0
  56. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/stream/write_timeout.rs +0 -0
  57. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/timeout.rs +0 -0
  58. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/tls.rs +0 -0
  59. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/trace.rs +0 -0
  60. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/transport/alt_svc.rs +0 -0
  61. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/transport/connect.rs +0 -0
  62. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/transport/connect_timeout.rs +0 -0
  63. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/transport/dialer.rs +0 -0
  64. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/transport/direct.rs +0 -0
  65. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/transport/direct_connector.rs +0 -0
  66. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/transport/http3.rs +0 -0
  67. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/transport/hyper_client.rs +0 -0
  68. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/transport/lifecycle.rs +0 -0
  69. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/transport/metrics.rs +0 -0
  70. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/transport/mod.rs +0 -0
  71. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/transport/proxy.rs +0 -0
  72. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/transport/socks.rs +0 -0
  73. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/transport/standard_resolver.rs +0 -0
  74. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/transport/uds.rs +0 -0
  75. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/src/transport_hints.rs +0 -0
  76. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/adverse_tests.rs +0 -0
  77. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/cross_feature_tests.rs +0 -0
  78. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/custom_dialer_tests.rs +0 -0
  79. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/direct_transport_tests.rs +0 -0
  80. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/h3_alt_svc_discovery.rs +0 -0
  81. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/h3_hardening.rs +0 -0
  82. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/h3_integration.rs +0 -0
  83. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/h3_interop_qualification.rs +0 -0
  84. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/http2_tests.rs +0 -0
  85. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/http3_tests.rs +0 -0
  86. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/integration.rs +0 -0
  87. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/lean_policy_tests.rs +0 -0
  88. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/lean_route_tests.rs +0 -0
  89. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/native_http_body_tests.rs +0 -0
  90. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/native_json.rs +0 -0
  91. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/native_tower_service_tests.rs +0 -0
  92. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/network_stream_tests.rs +0 -0
  93. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/pool_tests.rs +0 -0
  94. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/proxy_env_tests.rs +0 -0
  95. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/proxy_tests.rs +0 -0
  96. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/public_api_contracts.rs +0 -0
  97. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/redirect_strict_tests.rs +0 -0
  98. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/request_failure_tests.rs +0 -0
  99. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/resolved_route_cache_tests.rs +0 -0
  100. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/resource_stabilization.rs +0 -0
  101. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/response_body_public_shape.rs +0 -0
  102. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/retry_integration.rs +0 -0
  103. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/streaming_decompression_tests.rs +0 -0
  104. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/test_server.rs +0 -0
  105. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/timeout_tests.rs +0 -0
  106. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/tls_fixtures.rs +0 -0
  107. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/tls_integration.rs +0 -0
  108. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/total_body_deadline_tests.rs +0 -0
  109. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/trailer_tests.rs +0 -0
  110. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-core/tests/transport_metrics_tests.rs +0 -0
  111. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-http-connect/src/error.rs +0 -0
  112. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-http-connect/src/lib.rs +0 -0
  113. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-http-connect/src/request.rs +0 -0
  114. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-http-connect/src/response.rs +0 -0
  115. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-http-connect/src/target.rs +0 -0
  116. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-http-connect/tests/wire.rs +0 -0
  117. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/async_client.rs +0 -0
  118. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/auth.rs +0 -0
  119. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/client.rs +0 -0
  120. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/conversion.rs +0 -0
  121. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/cookies.rs +0 -0
  122. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/errors.rs +0 -0
  123. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/extensions.rs +0 -0
  124. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/headers.rs +0 -0
  125. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/lib.rs +0 -0
  126. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/limits.rs +0 -0
  127. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/multipart.rs +0 -0
  128. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/network_stream.rs +0 -0
  129. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/proxy.rs +0 -0
  130. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/request_preparation.rs +0 -0
  131. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/response.rs +0 -0
  132. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/retry.rs +0 -0
  133. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/streaming/async_iterators.rs +0 -0
  134. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/streaming/decoding.rs +0 -0
  135. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/streaming/state.rs +0 -0
  136. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/streaming/sync_bridge.rs +0 -0
  137. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/streaming/sync_iterators.rs +0 -0
  138. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/streaming.rs +0 -0
  139. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/timeout.rs +0 -0
  140. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/tls.rs +0 -0
  141. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/src/trace_bridge.rs +0 -0
  142. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/__init__.py +0 -0
  143. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/conftest.py +0 -0
  144. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/fixtures.py +0 -0
  145. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/native_fixtures.py +0 -0
  146. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_asgi.py +0 -0
  147. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_auth.py +0 -0
  148. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_auth_input_normalization.py +0 -0
  149. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_auth_replay.py +0 -0
  150. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_backends.py +0 -0
  151. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_behavior_cases.py +0 -0
  152. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_client.py +0 -0
  153. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_client_mutability_and_state.py +0 -0
  154. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_client_stream_overrides.py +0 -0
  155. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_config_objects.py +0 -0
  156. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_cookie_scope_parity.py +0 -0
  157. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_cookies.py +0 -0
  158. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_corrective_01_tls_and_proxy_trust_safety.py +0 -0
  159. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_corrective_01_tls_network_proof.py +0 -0
  160. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_corrective_02_extensions_and_wire_metadata.py +0 -0
  161. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_corrective_03_network_stream_upgrade.py +0 -0
  162. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_corrective_kernel.py +0 -0
  163. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_downstream_portfolio.py +0 -0
  164. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_downstream_runner_negative.py +0 -0
  165. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_environment.py +0 -0
  166. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_exceptions.py +0 -0
  167. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_extensions.py +0 -0
  168. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_h2_differential.py +0 -0
  169. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_headers.py +0 -0
  170. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_hook_auth_ordering.py +0 -0
  171. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_hook_cookie_auth_ordering.py +0 -0
  172. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_hooks.py +0 -0
  173. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_httpx2_api_parity.py +0 -0
  174. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_httpx2_behavior.py +0 -0
  175. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_httpx2_sse.py +0 -0
  176. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_httpx2_websocket.py +0 -0
  177. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_httpx_extras.py +0 -0
  178. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_httpx_reference_pinning.py +0 -0
  179. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_httpx_required.py +0 -0
  180. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_imports.py +0 -0
  181. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_lifecycle.py +0 -0
  182. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_lossy_conversions.py +0 -0
  183. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_merge_lossless.py +0 -0
  184. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_merge_matrix.py +0 -0
  185. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_mock_transport.py +0 -0
  186. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_mounts.py +0 -0
  187. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_multihop_cleanup.py +0 -0
  188. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_native_proxy_tls.py +0 -0
  189. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_native_timeout_classification.py +0 -0
  190. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_no_proxy_differential.py +0 -0
  191. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_oracle_negative.py +0 -0
  192. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_protocol_and_unsupported_options.py +0 -0
  193. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_proxy_differential.py +0 -0
  194. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_proxy_phase05_tracks.py +0 -0
  195. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_raw_stream_httpx_differential.py +0 -0
  196. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_raw_stream_lifecycle.py +0 -0
  197. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_redirect_state_machine_parity.py +0 -0
  198. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_request.py +0 -0
  199. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_request_construction_parity.py +0 -0
  200. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_request_stream_state.py +0 -0
  201. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_request_streaming.py +0 -0
  202. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_resource_assertions.py +0 -0
  203. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_response.py +0 -0
  204. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_response_encoding_parity.py +0 -0
  205. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_response_metadata_parity.py +0 -0
  206. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_response_status_and_redirect_state.py +0 -0
  207. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_response_stream_state_parity.py +0 -0
  208. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_response_streaming.py +0 -0
  209. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_shutdown.py +0 -0
  210. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_soak.py +0 -0
  211. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_socks_transport.py +0 -0
  212. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_ssl_context_network_proof.py +0 -0
  213. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_ssl_context_translation.py +0 -0
  214. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_stream_resources.py +0 -0
  215. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_timeout_integration.py +0 -0
  216. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_timeout_proxysis.py +0 -0
  217. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_timeout_reference_differential.py +0 -0
  218. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_top_level_helpers_parity.py +0 -0
  219. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_trace_detection.py +0 -0
  220. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_transports.py +0 -0
  221. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_uds_transport.py +0 -0
  222. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_url_query.py +0 -0
  223. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/compat/test_wsgi.py +0 -0
  224. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/conftest.py +0 -0
  225. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/native_api_manifest.json +0 -0
  226. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/test_async.py +0 -0
  227. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/test_auth.py +0 -0
  228. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/test_close_races.py +0 -0
  229. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/test_cookie_auth.py +0 -0
  230. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/test_cookies.py +0 -0
  231. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/test_differential.py +0 -0
  232. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/test_http2.py +0 -0
  233. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/test_interpreter_shutdown.py +0 -0
  234. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/test_native_api.py +0 -0
  235. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/test_parity.py +0 -0
  236. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/test_proxy.py +0 -0
  237. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/test_python_typing_surface.py +0 -0
  238. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/test_redirects.py +0 -0
  239. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/test_response_compat.py +0 -0
  240. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/test_retry.py +0 -0
  241. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/test_streaming.py +0 -0
  242. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/typing/compat_consumer.py +0 -0
  243. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/typing/consumer.py +0 -0
  244. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/typing/negative_sync_async_body.py +0 -0
  245. {eggfetch-0.2.0 → eggfetch-0.2.1}/crates/eggfetch-python/tests/typing/negative_verify_and_return.py +0 -0
  246. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/__init__.py +0 -0
  247. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/__init__.pyi +0 -0
  248. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/_native.pyi +0 -0
  249. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/_ssl_context.py +0 -0
  250. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/__init__.py +0 -0
  251. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx/__init__.py +0 -0
  252. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx/__init__.pyi +0 -0
  253. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx/_asgi.py +0 -0
  254. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx/_auth.py +0 -0
  255. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx/_client.py +0 -0
  256. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx/_cookies.py +0 -0
  257. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx/_diagnostics.py +0 -0
  258. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx/_exceptions.py +0 -0
  259. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx/_headers.py +0 -0
  260. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx/_limits.py +0 -0
  261. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx/_mock.py +0 -0
  262. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx/_proxy.py +0 -0
  263. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx/_request.py +0 -0
  264. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx/_response.py +0 -0
  265. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx/_ssl_context.py +0 -0
  266. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx/_status_codes.py +0 -0
  267. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx/_stream.py +0 -0
  268. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx/_timeout.py +0 -0
  269. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx/_transports.py +0 -0
  270. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx/_urls.py +0 -0
  271. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx/_wsgi.py +0 -0
  272. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/__init__.py +0 -0
  273. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/__init__.pyi +0 -0
  274. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/_alias.py +0 -0
  275. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/_api.py +0 -0
  276. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/_asgi.py +0 -0
  277. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/_auth.py +0 -0
  278. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/_client.py +0 -0
  279. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/_config.py +0 -0
  280. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/_cookies.py +0 -0
  281. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/_exceptions.py +0 -0
  282. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/_headers.py +0 -0
  283. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/_mock.py +0 -0
  284. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/_request.py +0 -0
  285. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/_response.py +0 -0
  286. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/_sse.py +0 -0
  287. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/_status_codes.py +0 -0
  288. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/_stream.py +0 -0
  289. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/_transports.py +0 -0
  290. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/_urls.py +0 -0
  291. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/_wsgi.py +0 -0
  292. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/websockets/__init__.py +0 -0
  293. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/websockets/_api.py +0 -0
  294. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/websockets/_exceptions.py +0 -0
  295. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/websockets/_ping.py +0 -0
  296. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/compat/httpx2/websockets/_transport.py +0 -0
  297. {eggfetch-0.2.0 → eggfetch-0.2.1}/python/eggfetch/py.typed +0 -0
@@ -495,13 +495,17 @@ dependencies = [
495
495
  "futures-core",
496
496
  "futures-util",
497
497
  "http",
498
+ "http-body",
499
+ "http-body-util",
500
+ "hyper",
501
+ "hyper-util",
498
502
  "tokio",
499
503
  "url",
500
504
  ]
501
505
 
502
506
  [[package]]
503
507
  name = "eggfetch-cli"
504
- version = "0.2.0"
508
+ version = "0.2.1"
505
509
  dependencies = [
506
510
  "anyhow",
507
511
  "bytes",
@@ -518,7 +522,7 @@ dependencies = [
518
522
 
519
523
  [[package]]
520
524
  name = "eggfetch-core"
521
- version = "0.2.0"
525
+ version = "0.2.1"
522
526
  dependencies = [
523
527
  "async-compression",
524
528
  "base64 0.23.1",
@@ -564,7 +568,7 @@ dependencies = [
564
568
 
565
569
  [[package]]
566
570
  name = "eggfetch-ffi"
567
- version = "0.2.0"
571
+ version = "0.2.1"
568
572
  dependencies = [
569
573
  "bytes",
570
574
  "eggfetch-core",
@@ -576,7 +580,7 @@ dependencies = [
576
580
 
577
581
  [[package]]
578
582
  name = "eggfetch-http-connect"
579
- version = "0.2.0"
583
+ version = "0.2.1"
580
584
  dependencies = [
581
585
  "base64 0.23.1",
582
586
  "thiserror",
@@ -585,7 +589,7 @@ dependencies = [
585
589
 
586
590
  [[package]]
587
591
  name = "eggfetch-node"
588
- version = "0.2.0"
592
+ version = "0.2.1"
589
593
  dependencies = [
590
594
  "eggfetch-ffi",
591
595
  "napi",
@@ -597,7 +601,7 @@ dependencies = [
597
601
 
598
602
  [[package]]
599
603
  name = "eggfetch-python"
600
- version = "0.2.0"
604
+ version = "0.2.1"
601
605
  dependencies = [
602
606
  "bytes",
603
607
  "eggfetch-core",
@@ -928,6 +932,7 @@ dependencies = [
928
932
  "http",
929
933
  "http-body",
930
934
  "httparse",
935
+ "httpdate",
931
936
  "itoa",
932
937
  "pin-project-lite",
933
938
  "smallvec",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eggfetch
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Programming Language :: Python :: 3.10
@@ -39,7 +39,7 @@ eggfetch is a Rust-native async HTTP client engine (tokio + hyper) with Python b
39
39
 
40
40
  - **HTTP/1.1, HTTP/2, HTTP/3** — ALPN negotiation; HTTP/3 over QUIC is experimental ([guide](docs/rust/guide.md))
41
41
  - **Streaming** — response bodies stream without eager buffering (`bytes_stream()`, `text_lines()`), with trailers after EOF ([guide](docs/rust/guide.md))
42
- - **Performance qualification** — API-safe Rust/Python hot-path benchmarks and reproduction commands are documented in [architecture/benchmarks](docs/architecture/benchmarks.md)
42
+ - **Performance qualification** — API-safe Rust/Python hot-path benchmarks, including the tested loopback HTTP forward-proxy fixture, and reproduction commands are documented in [architecture/benchmarks](docs/architecture/benchmarks.md)
43
43
  - **Pooling and timeouts** — per-origin connection pools, phase-aware timeouts (pool/connect/write/read/total), and transport metrics ([pool/timeouts](docs/architecture/core-timeout-pool.md))
44
44
  - **TLS** — rustls with per-client crypto providers, custom or additive CA roots, mTLS client certs, version policy, and verification toggle ([TLS](docs/concepts/tls.md))
45
45
  - **Proxy** — HTTP forwarding, HTTPS CONNECT, proxy auth, per-request override, `NO_PROXY`, SOCKS5, and UDS routes ([proxy](docs/concepts/proxy.md)). CONNECT wire bytes live in the small `eggfetch-http-connect` crate (no sockets/TLS/retry) consumed by `eggfetch-core` via the `proxy` feature.
@@ -146,7 +146,7 @@ from eggfetch.compat.httpx2 import Client as H2Client # httpx2 2.12.0 surface
146
146
 
147
147
  See [`docs/python/guide.md`](docs/python/guide.md) for the full Python API reference.
148
148
 
149
- The native package supports Python 3.10–3.15 (3.15 wheels pending the build-only rehearsal tracked in `plans/README.md`) and ships `py.typed` stubs for its public API. `Client` and the top-level sync helpers accept lazy sync `content=` iterables (async-only iterables are rejected before dispatch); `AsyncClient` additionally accepts lazy async iterables, pulled only as the transport asks for them. `eggfetch._native` is a private implementation module — import from `eggfetch`.
149
+ The native package supports Python 3.10–3.15 and ships `py.typed` stubs for its public API. `Client` and the top-level sync helpers accept lazy sync `content=` iterables (async-only iterables are rejected before dispatch); `AsyncClient` additionally accepts lazy async iterables, pulled only as the transport asks for them. `eggfetch._native` is a private implementation module — import from `eggfetch`.
150
150
 
151
151
  Buffered Python responses retain the raw body and decode `.text` lazily; their
152
152
  `iter_bytes()`, `iter_text()`, and `iter_lines()` iterators yield one item at a
@@ -13,7 +13,7 @@ eggfetch is a Rust-native async HTTP client engine (tokio + hyper) with Python b
13
13
 
14
14
  - **HTTP/1.1, HTTP/2, HTTP/3** — ALPN negotiation; HTTP/3 over QUIC is experimental ([guide](docs/rust/guide.md))
15
15
  - **Streaming** — response bodies stream without eager buffering (`bytes_stream()`, `text_lines()`), with trailers after EOF ([guide](docs/rust/guide.md))
16
- - **Performance qualification** — API-safe Rust/Python hot-path benchmarks and reproduction commands are documented in [architecture/benchmarks](docs/architecture/benchmarks.md)
16
+ - **Performance qualification** — API-safe Rust/Python hot-path benchmarks, including the tested loopback HTTP forward-proxy fixture, and reproduction commands are documented in [architecture/benchmarks](docs/architecture/benchmarks.md)
17
17
  - **Pooling and timeouts** — per-origin connection pools, phase-aware timeouts (pool/connect/write/read/total), and transport metrics ([pool/timeouts](docs/architecture/core-timeout-pool.md))
18
18
  - **TLS** — rustls with per-client crypto providers, custom or additive CA roots, mTLS client certs, version policy, and verification toggle ([TLS](docs/concepts/tls.md))
19
19
  - **Proxy** — HTTP forwarding, HTTPS CONNECT, proxy auth, per-request override, `NO_PROXY`, SOCKS5, and UDS routes ([proxy](docs/concepts/proxy.md)). CONNECT wire bytes live in the small `eggfetch-http-connect` crate (no sockets/TLS/retry) consumed by `eggfetch-core` via the `proxy` feature.
@@ -120,7 +120,7 @@ from eggfetch.compat.httpx2 import Client as H2Client # httpx2 2.12.0 surface
120
120
 
121
121
  See [`docs/python/guide.md`](docs/python/guide.md) for the full Python API reference.
122
122
 
123
- The native package supports Python 3.10–3.15 (3.15 wheels pending the build-only rehearsal tracked in `plans/README.md`) and ships `py.typed` stubs for its public API. `Client` and the top-level sync helpers accept lazy sync `content=` iterables (async-only iterables are rejected before dispatch); `AsyncClient` additionally accepts lazy async iterables, pulled only as the transport asks for them. `eggfetch._native` is a private implementation module — import from `eggfetch`.
123
+ The native package supports Python 3.10–3.15 and ships `py.typed` stubs for its public API. `Client` and the top-level sync helpers accept lazy sync `content=` iterables (async-only iterables are rejected before dispatch); `AsyncClient` additionally accepts lazy async iterables, pulled only as the transport asks for them. `eggfetch._native` is a private implementation module — import from `eggfetch`.
124
124
 
125
125
  Buffered Python responses retain the raw body and decode `.text` lazily; their
126
126
  `iter_bytes()`, `iter_text()`, and `iter_lines()` iterators yield one item at a
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "eggfetch-core"
3
- version = "0.2.0"
3
+ version = "0.2.1"
4
4
  edition.workspace = true
5
5
  rust-version.workspace = true
6
6
  license.workspace = true
@@ -82,7 +82,7 @@ test-util = ["tokio/test-util"]
82
82
 
83
83
  [dependencies]
84
84
  bytes = "1"
85
- eggfetch-http-connect = { version = "0.2.0", path = "../eggfetch-http-connect", optional = true }
85
+ eggfetch-http-connect = { version = "0.2.1", path = "../eggfetch-http-connect", optional = true }
86
86
  futures-core = "0.3"
87
87
  futures-util = { version = "0.3", default-features = false, features = ["alloc"] }
88
88
  http = "1"
@@ -13,7 +13,7 @@ eggfetch is a Rust-native async HTTP client engine (tokio + hyper) with Python b
13
13
 
14
14
  - **HTTP/1.1, HTTP/2, HTTP/3** — ALPN negotiation; HTTP/3 over QUIC is experimental ([guide](docs/rust/guide.md))
15
15
  - **Streaming** — response bodies stream without eager buffering (`bytes_stream()`, `text_lines()`), with trailers after EOF ([guide](docs/rust/guide.md))
16
- - **Performance qualification** — API-safe Rust/Python hot-path benchmarks and reproduction commands are documented in [architecture/benchmarks](docs/architecture/benchmarks.md)
16
+ - **Performance qualification** — API-safe Rust/Python hot-path benchmarks, including the tested loopback HTTP forward-proxy fixture, and reproduction commands are documented in [architecture/benchmarks](docs/architecture/benchmarks.md)
17
17
  - **Pooling and timeouts** — per-origin connection pools, phase-aware timeouts (pool/connect/write/read/total), and transport metrics ([pool/timeouts](docs/architecture/core-timeout-pool.md))
18
18
  - **TLS** — rustls with per-client crypto providers, custom or additive CA roots, mTLS client certs, version policy, and verification toggle ([TLS](docs/concepts/tls.md))
19
19
  - **Proxy** — HTTP forwarding, HTTPS CONNECT, proxy auth, per-request override, `NO_PROXY`, SOCKS5, and UDS routes ([proxy](docs/concepts/proxy.md)). CONNECT wire bytes live in the small `eggfetch-http-connect` crate (no sockets/TLS/retry) consumed by `eggfetch-core` via the `proxy` feature.
@@ -120,7 +120,7 @@ from eggfetch.compat.httpx2 import Client as H2Client # httpx2 2.12.0 surface
120
120
 
121
121
  See [`docs/python/guide.md`](docs/python/guide.md) for the full Python API reference.
122
122
 
123
- The native package supports Python 3.10–3.15 (3.15 wheels pending the build-only rehearsal tracked in `plans/README.md`) and ships `py.typed` stubs for its public API. `Client` and the top-level sync helpers accept lazy sync `content=` iterables (async-only iterables are rejected before dispatch); `AsyncClient` additionally accepts lazy async iterables, pulled only as the transport asks for them. `eggfetch._native` is a private implementation module — import from `eggfetch`.
123
+ The native package supports Python 3.10–3.15 and ships `py.typed` stubs for its public API. `Client` and the top-level sync helpers accept lazy sync `content=` iterables (async-only iterables are rejected before dispatch); `AsyncClient` additionally accepts lazy async iterables, pulled only as the transport asks for them. `eggfetch._native` is a private implementation module — import from `eggfetch`.
124
124
 
125
125
  Buffered Python responses retain the raw body and decode `.text` lazily; their
126
126
  `iter_bytes()`, `iter_text()`, and `iter_lines()` iterators yield one item at a