httpunk 0.1.0a1__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.
- httpunk-0.1.0a1/Cargo.lock +404 -0
- httpunk-0.1.0a1/Cargo.toml +74 -0
- httpunk-0.1.0a1/LICENSE +28 -0
- httpunk-0.1.0a1/PKG-INFO +448 -0
- httpunk-0.1.0a1/README.md +413 -0
- httpunk-0.1.0a1/crates/vendor-h2/Cargo.toml +19 -0
- httpunk-0.1.0a1/crates/vendor-h2/LICENSE +25 -0
- httpunk-0.1.0a1/crates/vendor-h2/UPSTREAM_VERSION +1 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/codec/error.rs +106 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/codec/mod.rs +9 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/ext.rs +55 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/frame/data.rs +278 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/frame/go_away.rs +87 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/frame/head.rs +94 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/frame/headers.rs +1337 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/frame/mod.rs +174 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/frame/ping.rs +102 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/frame/priority.rs +72 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/frame/reason.rs +134 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/frame/reset.rs +56 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/frame/settings.rs +389 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/frame/stream_id.rs +94 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/frame/util.rs +79 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/frame/window_update.rs +62 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/hpack/decoder.rs +949 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/hpack/encoder.rs +720 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/hpack/header.rs +308 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/hpack/huffman/mod.rs +199 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/hpack/huffman/table.rs +5130 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/hpack/mod.rs +10 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/hpack/table.rs +766 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/lib.rs +39 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/proto/error.rs +100 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/proto/mod.rs +18 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/proto/streams/flow_control.rs +269 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/proto/streams/mod.rs +10 -0
- httpunk-0.1.0a1/crates/vendor-h2/src/proto/streams/state.rs +457 -0
- httpunk-0.1.0a1/crates/vendor-hyper/Cargo.toml +30 -0
- httpunk-0.1.0a1/crates/vendor-hyper/LICENSE +19 -0
- httpunk-0.1.0a1/crates/vendor-hyper/UPSTREAM_VERSION +1 -0
- httpunk-0.1.0a1/crates/vendor-hyper/src/body/length.rs +129 -0
- httpunk-0.1.0a1/crates/vendor-hyper/src/body/mod.rs +3 -0
- httpunk-0.1.0a1/crates/vendor-hyper/src/cfg.rs +44 -0
- httpunk-0.1.0a1/crates/vendor-hyper/src/common/date.rs +104 -0
- httpunk-0.1.0a1/crates/vendor-hyper/src/common/mod.rs +5 -0
- httpunk-0.1.0a1/crates/vendor-hyper/src/error.rs +740 -0
- httpunk-0.1.0a1/crates/vendor-hyper/src/ext/h1_reason_phrase.rs +222 -0
- httpunk-0.1.0a1/crates/vendor-hyper/src/ext/informational.rs +86 -0
- httpunk-0.1.0a1/crates/vendor-hyper/src/ext/mod.rs +298 -0
- httpunk-0.1.0a1/crates/vendor-hyper/src/headers.rs +159 -0
- httpunk-0.1.0a1/crates/vendor-hyper/src/lib.rs +61 -0
- httpunk-0.1.0a1/crates/vendor-hyper/src/proto/h1/decode.rs +692 -0
- httpunk-0.1.0a1/crates/vendor-hyper/src/proto/h1/encode.rs +627 -0
- httpunk-0.1.0a1/crates/vendor-hyper/src/proto/h1/httpunk.rs +449 -0
- httpunk-0.1.0a1/crates/vendor-hyper/src/proto/h1/io.rs +13 -0
- httpunk-0.1.0a1/crates/vendor-hyper/src/proto/h1/mod.rs +115 -0
- httpunk-0.1.0a1/crates/vendor-hyper/src/proto/h1/role.rs +3174 -0
- httpunk-0.1.0a1/crates/vendor-hyper/src/proto/mod.rs +70 -0
- httpunk-0.1.0a1/crates/vendor-hyper/src/trace.rs +128 -0
- httpunk-0.1.0a1/crates/vendor-hyper-util/Cargo.toml +22 -0
- httpunk-0.1.0a1/crates/vendor-hyper-util/LICENSE +19 -0
- httpunk-0.1.0a1/crates/vendor-hyper-util/UPSTREAM_VERSION +1 -0
- httpunk-0.1.0a1/crates/vendor-hyper-util/src/client/mod.rs +4 -0
- httpunk-0.1.0a1/crates/vendor-hyper-util/src/client/proxy/matcher.rs +929 -0
- httpunk-0.1.0a1/crates/vendor-hyper-util/src/client/proxy/mod.rs +5 -0
- httpunk-0.1.0a1/crates/vendor-hyper-util/src/lib.rs +18 -0
- httpunk-0.1.0a1/httpunk/__init__.py +19 -0
- httpunk-0.1.0a1/httpunk/_backend/__init__.py +60 -0
- httpunk-0.1.0a1/httpunk/_backend/asyncio.py +299 -0
- httpunk-0.1.0a1/httpunk/_backend/tonio.py +110 -0
- httpunk-0.1.0a1/httpunk/_common.py +111 -0
- httpunk-0.1.0a1/httpunk/_httpunk.pyi +456 -0
- httpunk-0.1.0a1/httpunk/asyncio.py +231 -0
- httpunk-0.1.0a1/httpunk/exceptions.py +67 -0
- httpunk-0.1.0a1/httpunk/h1/__init__.py +6 -0
- httpunk-0.1.0a1/httpunk/h1/client.py +363 -0
- httpunk-0.1.0a1/httpunk/h1/connection.py +104 -0
- httpunk-0.1.0a1/httpunk/h1/server.py +525 -0
- httpunk-0.1.0a1/httpunk/h1/share.py +139 -0
- httpunk-0.1.0a1/httpunk/h2/__init__.py +2 -0
- httpunk-0.1.0a1/httpunk/h2/client.py +423 -0
- httpunk-0.1.0a1/httpunk/h2/connection.py +276 -0
- httpunk-0.1.0a1/httpunk/h2/server.py +444 -0
- httpunk-0.1.0a1/httpunk/h2/settings.py +167 -0
- httpunk-0.1.0a1/httpunk/h2/share.py +55 -0
- httpunk-0.1.0a1/httpunk/h2/stream.py +81 -0
- httpunk-0.1.0a1/httpunk/h2/streams.py +834 -0
- httpunk-0.1.0a1/httpunk/http.py +8 -0
- httpunk-0.1.0a1/httpunk/py.typed +0 -0
- httpunk-0.1.0a1/httpunk/types.py +121 -0
- httpunk-0.1.0a1/httpunk/util/__init__.py +20 -0
- httpunk-0.1.0a1/httpunk/util/auto.py +123 -0
- httpunk-0.1.0a1/httpunk/util/client.py +66 -0
- httpunk-0.1.0a1/httpunk/util/graceful.py +124 -0
- httpunk-0.1.0a1/httpunk/util/pool.py +289 -0
- httpunk-0.1.0a1/httpunk/util/proxy.py +21 -0
- httpunk-0.1.0a1/pyproject.toml +117 -0
- httpunk-0.1.0a1/src/lib.rs +27 -0
- httpunk-0.1.0a1/src/py/errors.rs +32 -0
- httpunk-0.1.0a1/src/py/h1/codec.rs +414 -0
- httpunk-0.1.0a1/src/py/h1/mod.rs +16 -0
- httpunk-0.1.0a1/src/py/h2/codec.rs +942 -0
- httpunk-0.1.0a1/src/py/h2/mod.rs +74 -0
- httpunk-0.1.0a1/src/py/h2/streams.rs +357 -0
- httpunk-0.1.0a1/src/py/http/mod.rs +270 -0
- httpunk-0.1.0a1/src/py/mod.rs +26 -0
- httpunk-0.1.0a1/src/py/proxy.rs +110 -0
- httpunk-0.1.0a1/tests/_client.py +25 -0
- httpunk-0.1.0a1/tests/conftest.py +91 -0
- httpunk-0.1.0a1/tests/test_asyncio_backend.py +257 -0
- httpunk-0.1.0a1/tests/test_asyncio_e2e.py +251 -0
- httpunk-0.1.0a1/tests/test_asyncio_protocol.py +277 -0
- httpunk-0.1.0a1/tests/test_backend.py +119 -0
- httpunk-0.1.0a1/tests/test_h1_codec.py +108 -0
- httpunk-0.1.0a1/tests/test_h1_conn.py +546 -0
- httpunk-0.1.0a1/tests/test_h1_decode.py +133 -0
- httpunk-0.1.0a1/tests/test_h1_server.py +584 -0
- httpunk-0.1.0a1/tests/test_h2_codec.py +213 -0
- httpunk-0.1.0a1/tests/test_h2_conn.py +89 -0
- httpunk-0.1.0a1/tests/test_h2_errors.py +811 -0
- httpunk-0.1.0a1/tests/test_h2_flow.py +321 -0
- httpunk-0.1.0a1/tests/test_h2_flow_control.py +74 -0
- httpunk-0.1.0a1/tests/test_h2_ready.py +85 -0
- httpunk-0.1.0a1/tests/test_h2_server.py +487 -0
- httpunk-0.1.0a1/tests/test_h2_settings.py +115 -0
- httpunk-0.1.0a1/tests/test_h2_state.py +139 -0
- httpunk-0.1.0a1/tests/test_util_auto.py +161 -0
- httpunk-0.1.0a1/tests/test_util_connect.py +88 -0
- httpunk-0.1.0a1/tests/test_util_graceful.py +277 -0
- httpunk-0.1.0a1/tests/test_util_pool.py +301 -0
- httpunk-0.1.0a1/tests/test_util_proxy.py +105 -0
- httpunk-0.1.0a1/tests/test_util_tls.py +101 -0
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
# This file is automatically @generated by Cargo.
|
|
2
|
+
# It is not intended for manual editing.
|
|
3
|
+
version = 4
|
|
4
|
+
|
|
5
|
+
[[package]]
|
|
6
|
+
name = "atomic-waker"
|
|
7
|
+
version = "1.1.2"
|
|
8
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
9
|
+
checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
|
|
10
|
+
|
|
11
|
+
[[package]]
|
|
12
|
+
name = "base64"
|
|
13
|
+
version = "0.22.1"
|
|
14
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
15
|
+
checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
|
|
16
|
+
|
|
17
|
+
[[package]]
|
|
18
|
+
name = "bytes"
|
|
19
|
+
version = "1.11.1"
|
|
20
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
21
|
+
checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
|
|
22
|
+
|
|
23
|
+
[[package]]
|
|
24
|
+
name = "equivalent"
|
|
25
|
+
version = "1.0.2"
|
|
26
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
27
|
+
checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
|
|
28
|
+
|
|
29
|
+
[[package]]
|
|
30
|
+
name = "fnv"
|
|
31
|
+
version = "1.0.7"
|
|
32
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
33
|
+
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
|
|
34
|
+
|
|
35
|
+
[[package]]
|
|
36
|
+
name = "futures-channel"
|
|
37
|
+
version = "0.3.32"
|
|
38
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
39
|
+
checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d"
|
|
40
|
+
dependencies = [
|
|
41
|
+
"futures-core",
|
|
42
|
+
]
|
|
43
|
+
|
|
44
|
+
[[package]]
|
|
45
|
+
name = "futures-core"
|
|
46
|
+
version = "0.3.32"
|
|
47
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
48
|
+
checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d"
|
|
49
|
+
|
|
50
|
+
[[package]]
|
|
51
|
+
name = "futures-sink"
|
|
52
|
+
version = "0.3.32"
|
|
53
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
54
|
+
checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893"
|
|
55
|
+
|
|
56
|
+
[[package]]
|
|
57
|
+
name = "h2"
|
|
58
|
+
version = "0.4.15"
|
|
59
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
60
|
+
checksum = "6cb093c84e8bd9b188d4c4a8cb6579fc016968d14c99882163cd3ff402a4f155"
|
|
61
|
+
dependencies = [
|
|
62
|
+
"atomic-waker",
|
|
63
|
+
"bytes",
|
|
64
|
+
"fnv",
|
|
65
|
+
"futures-core",
|
|
66
|
+
"futures-sink",
|
|
67
|
+
"http",
|
|
68
|
+
"indexmap",
|
|
69
|
+
"slab",
|
|
70
|
+
"tokio",
|
|
71
|
+
"tokio-util",
|
|
72
|
+
"tracing",
|
|
73
|
+
]
|
|
74
|
+
|
|
75
|
+
[[package]]
|
|
76
|
+
name = "hashbrown"
|
|
77
|
+
version = "0.17.1"
|
|
78
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
79
|
+
checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
|
|
80
|
+
|
|
81
|
+
[[package]]
|
|
82
|
+
name = "heck"
|
|
83
|
+
version = "0.5.0"
|
|
84
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
85
|
+
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
|
86
|
+
|
|
87
|
+
[[package]]
|
|
88
|
+
name = "http"
|
|
89
|
+
version = "1.4.0"
|
|
90
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
91
|
+
checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a"
|
|
92
|
+
dependencies = [
|
|
93
|
+
"bytes",
|
|
94
|
+
"itoa",
|
|
95
|
+
]
|
|
96
|
+
|
|
97
|
+
[[package]]
|
|
98
|
+
name = "http-body"
|
|
99
|
+
version = "1.0.1"
|
|
100
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
101
|
+
checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184"
|
|
102
|
+
dependencies = [
|
|
103
|
+
"bytes",
|
|
104
|
+
"http",
|
|
105
|
+
]
|
|
106
|
+
|
|
107
|
+
[[package]]
|
|
108
|
+
name = "httparse"
|
|
109
|
+
version = "1.10.1"
|
|
110
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
111
|
+
checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
|
|
112
|
+
|
|
113
|
+
[[package]]
|
|
114
|
+
name = "httpdate"
|
|
115
|
+
version = "1.0.3"
|
|
116
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
117
|
+
checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
|
|
118
|
+
|
|
119
|
+
[[package]]
|
|
120
|
+
name = "httpunk"
|
|
121
|
+
version = "0.1.0-alpha1"
|
|
122
|
+
dependencies = [
|
|
123
|
+
"bytes",
|
|
124
|
+
"h2",
|
|
125
|
+
"http",
|
|
126
|
+
"hyper",
|
|
127
|
+
"pyo3",
|
|
128
|
+
"vendor-h2",
|
|
129
|
+
"vendor-hyper",
|
|
130
|
+
"vendor-hyper-util",
|
|
131
|
+
]
|
|
132
|
+
|
|
133
|
+
[[package]]
|
|
134
|
+
name = "hyper"
|
|
135
|
+
version = "1.10.1"
|
|
136
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
137
|
+
checksum = "55281c53a1894c864990125767da440a4e630446785086f52523b20033b74498"
|
|
138
|
+
dependencies = [
|
|
139
|
+
"atomic-waker",
|
|
140
|
+
"bytes",
|
|
141
|
+
"futures-channel",
|
|
142
|
+
"futures-core",
|
|
143
|
+
"http",
|
|
144
|
+
"http-body",
|
|
145
|
+
"httparse",
|
|
146
|
+
"httpdate",
|
|
147
|
+
"itoa",
|
|
148
|
+
"pin-project-lite",
|
|
149
|
+
"smallvec",
|
|
150
|
+
"tokio",
|
|
151
|
+
"want",
|
|
152
|
+
]
|
|
153
|
+
|
|
154
|
+
[[package]]
|
|
155
|
+
name = "indexmap"
|
|
156
|
+
version = "2.14.0"
|
|
157
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
158
|
+
checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9"
|
|
159
|
+
dependencies = [
|
|
160
|
+
"equivalent",
|
|
161
|
+
"hashbrown",
|
|
162
|
+
]
|
|
163
|
+
|
|
164
|
+
[[package]]
|
|
165
|
+
name = "ipnet"
|
|
166
|
+
version = "2.12.0"
|
|
167
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
168
|
+
checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2"
|
|
169
|
+
|
|
170
|
+
[[package]]
|
|
171
|
+
name = "itoa"
|
|
172
|
+
version = "1.0.18"
|
|
173
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
174
|
+
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
|
|
175
|
+
|
|
176
|
+
[[package]]
|
|
177
|
+
name = "libc"
|
|
178
|
+
version = "0.2.183"
|
|
179
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
180
|
+
checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d"
|
|
181
|
+
|
|
182
|
+
[[package]]
|
|
183
|
+
name = "once_cell"
|
|
184
|
+
version = "1.21.4"
|
|
185
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
186
|
+
checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
|
|
187
|
+
|
|
188
|
+
[[package]]
|
|
189
|
+
name = "percent-encoding"
|
|
190
|
+
version = "2.3.2"
|
|
191
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
192
|
+
checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
|
|
193
|
+
|
|
194
|
+
[[package]]
|
|
195
|
+
name = "pin-project-lite"
|
|
196
|
+
version = "0.2.17"
|
|
197
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
198
|
+
checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
|
|
199
|
+
|
|
200
|
+
[[package]]
|
|
201
|
+
name = "portable-atomic"
|
|
202
|
+
version = "1.13.1"
|
|
203
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
204
|
+
checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
|
|
205
|
+
|
|
206
|
+
[[package]]
|
|
207
|
+
name = "proc-macro2"
|
|
208
|
+
version = "1.0.106"
|
|
209
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
210
|
+
checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
|
|
211
|
+
dependencies = [
|
|
212
|
+
"unicode-ident",
|
|
213
|
+
]
|
|
214
|
+
|
|
215
|
+
[[package]]
|
|
216
|
+
name = "pyo3"
|
|
217
|
+
version = "0.29.0"
|
|
218
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
219
|
+
checksum = "cd274650b21d4bfc26a0a47587962c1edb425f69287324355cd040c3ea66071c"
|
|
220
|
+
dependencies = [
|
|
221
|
+
"libc",
|
|
222
|
+
"once_cell",
|
|
223
|
+
"portable-atomic",
|
|
224
|
+
"pyo3-build-config",
|
|
225
|
+
"pyo3-ffi",
|
|
226
|
+
"pyo3-macros",
|
|
227
|
+
]
|
|
228
|
+
|
|
229
|
+
[[package]]
|
|
230
|
+
name = "pyo3-build-config"
|
|
231
|
+
version = "0.29.0"
|
|
232
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
233
|
+
checksum = "c5e2a7d2f0d013342f295c048ad19237add5154a55b1c5a254c0ec93d4109078"
|
|
234
|
+
dependencies = [
|
|
235
|
+
"target-lexicon",
|
|
236
|
+
]
|
|
237
|
+
|
|
238
|
+
[[package]]
|
|
239
|
+
name = "pyo3-ffi"
|
|
240
|
+
version = "0.29.0"
|
|
241
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
242
|
+
checksum = "ca85c467da1bbc8d866eea5deff9cf29ea5f7785054a17da36e65bda9c05845b"
|
|
243
|
+
dependencies = [
|
|
244
|
+
"libc",
|
|
245
|
+
"pyo3-build-config",
|
|
246
|
+
]
|
|
247
|
+
|
|
248
|
+
[[package]]
|
|
249
|
+
name = "pyo3-macros"
|
|
250
|
+
version = "0.29.0"
|
|
251
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
252
|
+
checksum = "9ac53762fd065daa3194dd09337a38bd793a188100fd1a9304c4ab312d901771"
|
|
253
|
+
dependencies = [
|
|
254
|
+
"proc-macro2",
|
|
255
|
+
"pyo3-macros-backend",
|
|
256
|
+
"quote",
|
|
257
|
+
"syn",
|
|
258
|
+
]
|
|
259
|
+
|
|
260
|
+
[[package]]
|
|
261
|
+
name = "pyo3-macros-backend"
|
|
262
|
+
version = "0.29.0"
|
|
263
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
264
|
+
checksum = "4ca3a1557399783172dc5bf39cfca835157732532cba56b71d2292161e53b362"
|
|
265
|
+
dependencies = [
|
|
266
|
+
"heck",
|
|
267
|
+
"proc-macro2",
|
|
268
|
+
"quote",
|
|
269
|
+
"syn",
|
|
270
|
+
]
|
|
271
|
+
|
|
272
|
+
[[package]]
|
|
273
|
+
name = "quote"
|
|
274
|
+
version = "1.0.45"
|
|
275
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
276
|
+
checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
|
|
277
|
+
dependencies = [
|
|
278
|
+
"proc-macro2",
|
|
279
|
+
]
|
|
280
|
+
|
|
281
|
+
[[package]]
|
|
282
|
+
name = "slab"
|
|
283
|
+
version = "0.4.12"
|
|
284
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
285
|
+
checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
|
|
286
|
+
|
|
287
|
+
[[package]]
|
|
288
|
+
name = "smallvec"
|
|
289
|
+
version = "1.15.2"
|
|
290
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
291
|
+
checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90"
|
|
292
|
+
|
|
293
|
+
[[package]]
|
|
294
|
+
name = "syn"
|
|
295
|
+
version = "2.0.117"
|
|
296
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
297
|
+
checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
|
|
298
|
+
dependencies = [
|
|
299
|
+
"proc-macro2",
|
|
300
|
+
"quote",
|
|
301
|
+
"unicode-ident",
|
|
302
|
+
]
|
|
303
|
+
|
|
304
|
+
[[package]]
|
|
305
|
+
name = "target-lexicon"
|
|
306
|
+
version = "0.13.5"
|
|
307
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
308
|
+
checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
|
|
309
|
+
|
|
310
|
+
[[package]]
|
|
311
|
+
name = "tokio"
|
|
312
|
+
version = "1.52.3"
|
|
313
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
314
|
+
checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe"
|
|
315
|
+
dependencies = [
|
|
316
|
+
"bytes",
|
|
317
|
+
"pin-project-lite",
|
|
318
|
+
]
|
|
319
|
+
|
|
320
|
+
[[package]]
|
|
321
|
+
name = "tokio-util"
|
|
322
|
+
version = "0.7.18"
|
|
323
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
324
|
+
checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098"
|
|
325
|
+
dependencies = [
|
|
326
|
+
"bytes",
|
|
327
|
+
"futures-core",
|
|
328
|
+
"futures-sink",
|
|
329
|
+
"pin-project-lite",
|
|
330
|
+
"tokio",
|
|
331
|
+
]
|
|
332
|
+
|
|
333
|
+
[[package]]
|
|
334
|
+
name = "tracing"
|
|
335
|
+
version = "0.1.44"
|
|
336
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
337
|
+
checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
|
|
338
|
+
dependencies = [
|
|
339
|
+
"pin-project-lite",
|
|
340
|
+
"tracing-core",
|
|
341
|
+
]
|
|
342
|
+
|
|
343
|
+
[[package]]
|
|
344
|
+
name = "tracing-core"
|
|
345
|
+
version = "0.1.36"
|
|
346
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
347
|
+
checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
|
|
348
|
+
dependencies = [
|
|
349
|
+
"once_cell",
|
|
350
|
+
]
|
|
351
|
+
|
|
352
|
+
[[package]]
|
|
353
|
+
name = "try-lock"
|
|
354
|
+
version = "0.2.5"
|
|
355
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
356
|
+
checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
|
|
357
|
+
|
|
358
|
+
[[package]]
|
|
359
|
+
name = "unicode-ident"
|
|
360
|
+
version = "1.0.24"
|
|
361
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
362
|
+
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
|
|
363
|
+
|
|
364
|
+
[[package]]
|
|
365
|
+
name = "vendor-h2"
|
|
366
|
+
version = "0.0.0"
|
|
367
|
+
dependencies = [
|
|
368
|
+
"bytes",
|
|
369
|
+
"fnv",
|
|
370
|
+
"http",
|
|
371
|
+
"tracing",
|
|
372
|
+
]
|
|
373
|
+
|
|
374
|
+
[[package]]
|
|
375
|
+
name = "vendor-hyper"
|
|
376
|
+
version = "0.0.0"
|
|
377
|
+
dependencies = [
|
|
378
|
+
"bytes",
|
|
379
|
+
"http",
|
|
380
|
+
"http-body",
|
|
381
|
+
"httparse",
|
|
382
|
+
"httpdate",
|
|
383
|
+
"itoa",
|
|
384
|
+
"smallvec",
|
|
385
|
+
]
|
|
386
|
+
|
|
387
|
+
[[package]]
|
|
388
|
+
name = "vendor-hyper-util"
|
|
389
|
+
version = "0.0.0"
|
|
390
|
+
dependencies = [
|
|
391
|
+
"base64",
|
|
392
|
+
"http",
|
|
393
|
+
"ipnet",
|
|
394
|
+
"percent-encoding",
|
|
395
|
+
]
|
|
396
|
+
|
|
397
|
+
[[package]]
|
|
398
|
+
name = "want"
|
|
399
|
+
version = "0.3.1"
|
|
400
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
401
|
+
checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
|
|
402
|
+
dependencies = [
|
|
403
|
+
"try-lock",
|
|
404
|
+
]
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
[package]
|
|
2
|
+
name = "httpunk"
|
|
3
|
+
version = "0.1.0-alpha1"
|
|
4
|
+
description = "The Rust HTTP library for Python"
|
|
5
|
+
authors = [
|
|
6
|
+
"Giovanni Barillari <g@baro.dev>",
|
|
7
|
+
]
|
|
8
|
+
license = "BSD-3-Clause"
|
|
9
|
+
edition = "2024"
|
|
10
|
+
|
|
11
|
+
keywords = ["http", "h10", "h11", "h2"]
|
|
12
|
+
|
|
13
|
+
readme = "README.md"
|
|
14
|
+
homepage = "https://github.com/gi0baro/httpunk"
|
|
15
|
+
repository = "https://github.com/gi0baro/httpunk"
|
|
16
|
+
|
|
17
|
+
include = [
|
|
18
|
+
"/Cargo.toml",
|
|
19
|
+
"/pyproject.toml",
|
|
20
|
+
"/LICENSE",
|
|
21
|
+
"/README.md",
|
|
22
|
+
"/src",
|
|
23
|
+
"/crates",
|
|
24
|
+
"/httpunk",
|
|
25
|
+
"/tests",
|
|
26
|
+
"!__pycache__",
|
|
27
|
+
"!tests/.pytest_cache",
|
|
28
|
+
"!*.so",
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
# The vendored third-party crates live in their own workspace members so each
|
|
32
|
+
# owns its crate root (upstream `crate::` paths resolve with no rewrite → truly
|
|
33
|
+
# byte-identical) and is excluded from the main crate's fmt/clippy. See
|
|
34
|
+
# THIRD-PARTY.md and PLAN.md §4.
|
|
35
|
+
[workspace]
|
|
36
|
+
members = ["crates/vendor-h2", "crates/vendor-hyper", "crates/vendor-hyper-util"]
|
|
37
|
+
|
|
38
|
+
[lib]
|
|
39
|
+
name = "_httpunk"
|
|
40
|
+
crate-type = ["cdylib"]
|
|
41
|
+
|
|
42
|
+
[features]
|
|
43
|
+
# Never enabled. Exists only so the optional crates.io `h2`/`hyper` deps are
|
|
44
|
+
# referenced (no "unused optional dependency"), keeping them in Cargo.lock for
|
|
45
|
+
# advisory scanning while they stay uncompiled. See the dependency comments.
|
|
46
|
+
_audit = ["dep:h2", "dep:hyper"]
|
|
47
|
+
|
|
48
|
+
[dependencies]
|
|
49
|
+
pyo3 = { version = "=0.29", features = ["extension-module", "generate-import-lib"] }
|
|
50
|
+
# Used by the PyO3 layer (src/py): `http::HeaderMap` (the HeaderMap wrapper) and
|
|
51
|
+
# `bytes` buffers in the codecs.
|
|
52
|
+
bytes = "1"
|
|
53
|
+
http = "1.1"
|
|
54
|
+
# The vendored crates, as workspace members (own their crate roots → byte-identical
|
|
55
|
+
# to upstream, and fmt/clippy-excludable via `cargo fmt -p _httpunk`).
|
|
56
|
+
vendor-h2 = { path = "crates/vendor-h2" }
|
|
57
|
+
vendor-hyper = { path = "crates/vendor-hyper", features = ["client", "server", "http1"] }
|
|
58
|
+
# Vendored hyper-util proxy matcher (pure sans-IO selection logic; `from_system` off).
|
|
59
|
+
vendor-hyper-util = { path = "crates/vendor-hyper-util" }
|
|
60
|
+
# NOT compiled: the crates.io `h2`/`hyper` — vendored into crates/vendor-*/ (see
|
|
61
|
+
# THIRD-PARTY.md). Optional + gated behind the never-enabled `_audit` feature so
|
|
62
|
+
# the pinned versions land in Cargo.lock for `cargo audit` / Dependabot advisory
|
|
63
|
+
# coverage without pulling them (and tokio) into the build.
|
|
64
|
+
h2 = { version = "=0.4.15", optional = true }
|
|
65
|
+
hyper = { version = "=1.10.1", optional = true, default-features = false, features = ["http1", "client", "server"] }
|
|
66
|
+
|
|
67
|
+
[profile.release]
|
|
68
|
+
codegen-units = 1
|
|
69
|
+
debug = false
|
|
70
|
+
incremental = false
|
|
71
|
+
lto = "fat"
|
|
72
|
+
opt-level = 3
|
|
73
|
+
panic = "abort"
|
|
74
|
+
strip = true
|
httpunk-0.1.0a1/LICENSE
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
Copyright 2026 Giovanni Barillari
|
|
2
|
+
|
|
3
|
+
Redistribution and use in source and binary forms, with or without
|
|
4
|
+
modification, are permitted provided that the following conditions are
|
|
5
|
+
met:
|
|
6
|
+
|
|
7
|
+
1. Redistributions of source code must retain the above copyright
|
|
8
|
+
notice, this list of conditions and the following disclaimer.
|
|
9
|
+
|
|
10
|
+
2. Redistributions in binary form must reproduce the above copyright
|
|
11
|
+
notice, this list of conditions and the following disclaimer in the
|
|
12
|
+
documentation and/or other materials provided with the distribution.
|
|
13
|
+
|
|
14
|
+
3. Neither the name of the copyright holder nor the names of its
|
|
15
|
+
contributors may be used to endorse or promote products derived from
|
|
16
|
+
this software without specific prior written permission.
|
|
17
|
+
|
|
18
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
19
|
+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
20
|
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
|
21
|
+
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
22
|
+
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
23
|
+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
|
24
|
+
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
25
|
+
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
26
|
+
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
27
|
+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
28
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|