aboutsummaryrefslogtreecommitdiffstats
path: root/rs
diff options
context:
space:
mode:
Diffstat (limited to 'rs')
-rw-r--r--rs/Cargo.lock1056
-rw-r--r--rs/server/Cargo.toml5
-rw-r--r--rs/server/src/main.rs133
3 files changed, 859 insertions, 335 deletions
diff --git a/rs/Cargo.lock b/rs/Cargo.lock
index 6069bcb..efb4880 100644
--- a/rs/Cargo.lock
+++ b/rs/Cargo.lock
@@ -51,7 +51,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
51dependencies = [ 51dependencies = [
52 "proc-macro2", 52 "proc-macro2",
53 "quote", 53 "quote",
54 "syn 2.0.48", 54 "syn",
55] 55]
56 56
57[[package]] 57[[package]]
@@ -75,6 +75,49 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
75checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 75checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
76 76
77[[package]] 77[[package]]
78name = "aws-config"
79version = "1.1.2"
80source = "registry+https://github.com/rust-lang/crates.io-index"
81checksum = "7e64b72d4bdbb41a73d27709c65a25b6e4bfc8321bf70fa3a8b19ce7d4eb81b0"
82dependencies = [
83 "aws-credential-types",
84 "aws-http",
85 "aws-runtime",
86 "aws-sdk-sso",
87 "aws-sdk-ssooidc",
88 "aws-sdk-sts",
89 "aws-smithy-async",
90 "aws-smithy-http",
91 "aws-smithy-json",
92 "aws-smithy-runtime",
93 "aws-smithy-runtime-api",
94 "aws-smithy-types",
95 "aws-types",
96 "bytes",
97 "fastrand",
98 "hex",
99 "http 0.2.11",
100 "hyper 0.14.28",
101 "ring",
102 "time",
103 "tokio",
104 "tracing",
105 "zeroize",
106]
107
108[[package]]
109name = "aws-credential-types"
110version = "1.1.2"
111source = "registry+https://github.com/rust-lang/crates.io-index"
112checksum = "4a7cb3510b95492bd9014b60e2e3bee3e48bc516e220316f8e6b60df18b47331"
113dependencies = [
114 "aws-smithy-async",
115 "aws-smithy-runtime-api",
116 "aws-smithy-types",
117 "zeroize",
118]
119
120[[package]]
78name = "aws-creds" 121name = "aws-creds"
79version = "0.34.1" 122version = "0.34.1"
80source = "registry+https://github.com/rust-lang/crates.io-index" 123source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -92,12 +135,340 @@ dependencies = [
92] 135]
93 136
94[[package]] 137[[package]]
95name = "aws-region" 138name = "aws-http"
96version = "0.25.4" 139version = "0.60.2"
97source = "registry+https://github.com/rust-lang/crates.io-index" 140source = "registry+https://github.com/rust-lang/crates.io-index"
98checksum = "42fed2b9fca70f2908268d057a607f2a906f47edbf856ea8587de9038d264e22" 141checksum = "a95d41abe4e941399fdb4bc2f54713eac3c839d98151875948bb24e66ab658f2"
99dependencies = [ 142dependencies = [
100 "thiserror", 143 "aws-smithy-runtime-api",
144 "aws-smithy-types",
145 "aws-types",
146 "bytes",
147 "http 0.2.11",
148 "http-body 0.4.6",
149 "pin-project-lite",
150 "tracing",
151]
152
153[[package]]
154name = "aws-runtime"
155version = "1.1.2"
156source = "registry+https://github.com/rust-lang/crates.io-index"
157checksum = "233cca219c6705d525ace011d6f9bc51aaf32fce5b4c41661d2d7ff22d9b4d49"
158dependencies = [
159 "aws-credential-types",
160 "aws-http",
161 "aws-sigv4",
162 "aws-smithy-async",
163 "aws-smithy-eventstream",
164 "aws-smithy-http",
165 "aws-smithy-runtime-api",
166 "aws-smithy-types",
167 "aws-types",
168 "fastrand",
169 "http 0.2.11",
170 "percent-encoding",
171 "tracing",
172 "uuid",
173]
174
175[[package]]
176name = "aws-sdk-s3"
177version = "1.12.0"
178source = "registry+https://github.com/rust-lang/crates.io-index"
179checksum = "634fbe5b6591ee2e281cd2ba8641e9bd752dbf5bf338924d6ad4bd5a3304fe31"
180dependencies = [
181 "aws-credential-types",
182 "aws-http",
183 "aws-runtime",
184 "aws-sigv4",
185 "aws-smithy-async",
186 "aws-smithy-checksums",
187 "aws-smithy-eventstream",
188 "aws-smithy-http",
189 "aws-smithy-json",
190 "aws-smithy-runtime",
191 "aws-smithy-runtime-api",
192 "aws-smithy-types",
193 "aws-smithy-xml",
194 "aws-types",
195 "bytes",
196 "http 0.2.11",
197 "http-body 0.4.6",
198 "once_cell",
199 "percent-encoding",
200 "regex-lite",
201 "tracing",
202 "url",
203]
204
205[[package]]
206name = "aws-sdk-sso"
207version = "1.10.0"
208source = "registry+https://github.com/rust-lang/crates.io-index"
209checksum = "ee41005e0f3a19ae749c7953d9e1f1ef8d2183f76f64966e346fa41c1ba0ed44"
210dependencies = [
211 "aws-credential-types",
212 "aws-http",
213 "aws-runtime",
214 "aws-smithy-async",
215 "aws-smithy-http",
216 "aws-smithy-json",
217 "aws-smithy-runtime",
218 "aws-smithy-runtime-api",
219 "aws-smithy-types",
220 "aws-types",
221 "bytes",
222 "http 0.2.11",
223 "once_cell",
224 "regex-lite",
225 "tracing",
226]
227
228[[package]]
229name = "aws-sdk-ssooidc"
230version = "1.10.0"
231source = "registry+https://github.com/rust-lang/crates.io-index"
232checksum = "fa08168f8a27505e7b90f922c32a489feb1f2133878981a15138bebc849ac09c"
233dependencies = [
234 "aws-credential-types",
235 "aws-http",
236 "aws-runtime",
237 "aws-smithy-async",
238 "aws-smithy-http",
239 "aws-smithy-json",
240 "aws-smithy-runtime",
241 "aws-smithy-runtime-api",
242 "aws-smithy-types",
243 "aws-types",
244 "bytes",
245 "http 0.2.11",
246 "once_cell",
247 "regex-lite",
248 "tracing",
249]
250
251[[package]]
252name = "aws-sdk-sts"
253version = "1.10.0"
254source = "registry+https://github.com/rust-lang/crates.io-index"
255checksum = "29102eff04d50ef70f11a48823db33e33c6cc5f027bfb6ff4864efbd5f1f66f3"
256dependencies = [
257 "aws-credential-types",
258 "aws-http",
259 "aws-runtime",
260 "aws-smithy-async",
261 "aws-smithy-http",
262 "aws-smithy-json",
263 "aws-smithy-query",
264 "aws-smithy-runtime",
265 "aws-smithy-runtime-api",
266 "aws-smithy-types",
267 "aws-smithy-xml",
268 "aws-types",
269 "http 0.2.11",
270 "once_cell",
271 "regex-lite",
272 "tracing",
273]
274
275[[package]]
276name = "aws-sigv4"
277version = "1.1.2"
278source = "registry+https://github.com/rust-lang/crates.io-index"
279checksum = "b92384b39aedb258aa734fe0e7b2ffcd13f33e68227251a72cd2635e0acc8f1a"
280dependencies = [
281 "aws-credential-types",
282 "aws-smithy-eventstream",
283 "aws-smithy-http",
284 "aws-smithy-runtime-api",
285 "aws-smithy-types",
286 "bytes",
287 "crypto-bigint 0.5.5",
288 "form_urlencoded",
289 "hex",
290 "hmac",
291 "http 0.2.11",
292 "once_cell",
293 "p256",
294 "percent-encoding",
295 "ring",
296 "sha2",
297 "subtle",
298 "time",
299 "tracing",
300 "zeroize",
301]
302
303[[package]]
304name = "aws-smithy-async"
305version = "1.1.3"
306source = "registry+https://github.com/rust-lang/crates.io-index"
307checksum = "2eac0bb78e9e2765699999a02d7bfb4e6ad8f13e0962ebb9f5202b1d8cd76006"
308dependencies = [
309 "futures-util",
310 "pin-project-lite",
311 "tokio",
312]
313
314[[package]]
315name = "aws-smithy-checksums"
316version = "0.60.3"
317source = "registry+https://github.com/rust-lang/crates.io-index"
318checksum = "535a2d5f1e459bc7709580a77152c8d493982db083236c2b1d1c51dc6217e8a3"
319dependencies = [
320 "aws-smithy-http",
321 "aws-smithy-types",
322 "bytes",
323 "crc32c",
324 "crc32fast",
325 "hex",
326 "http 0.2.11",
327 "http-body 0.4.6",
328 "md-5",
329 "pin-project-lite",
330 "sha1",
331 "sha2",
332 "tracing",
333]
334
335[[package]]
336name = "aws-smithy-eventstream"
337version = "0.60.3"
338source = "registry+https://github.com/rust-lang/crates.io-index"
339checksum = "682371561562d08ab437766903c6bc28f4f95d7ab2ecfb389bda7849dd98aefe"
340dependencies = [
341 "aws-smithy-types",
342 "bytes",
343 "crc32fast",
344]
345
346[[package]]
347name = "aws-smithy-http"
348version = "0.60.3"
349source = "registry+https://github.com/rust-lang/crates.io-index"
350checksum = "365ca49744b2bda2f1e2dc03b856da3fa5a28ca5b0a41e41d7ff5305a8fae190"
351dependencies = [
352 "aws-smithy-eventstream",
353 "aws-smithy-runtime-api",
354 "aws-smithy-types",
355 "bytes",
356 "bytes-utils",
357 "futures-core",
358 "http 0.2.11",
359 "http-body 0.4.6",
360 "once_cell",
361 "percent-encoding",
362 "pin-project-lite",
363 "pin-utils",
364 "tracing",
365]
366
367[[package]]
368name = "aws-smithy-json"
369version = "0.60.3"
370source = "registry+https://github.com/rust-lang/crates.io-index"
371checksum = "733ccdb727ac63370836aa3b3c483d75ad2ef7bc6507db3efe1d01e8d2e50367"
372dependencies = [
373 "aws-smithy-types",
374]
375
376[[package]]
377name = "aws-smithy-query"
378version = "0.60.3"
379source = "registry+https://github.com/rust-lang/crates.io-index"
380checksum = "aff02ae2ee7968bbce2983ffb5ce529d24f4848532300f398347bde8c2196974"
381dependencies = [
382 "aws-smithy-types",
383 "urlencoding",
384]
385
386[[package]]
387name = "aws-smithy-runtime"
388version = "1.1.3"
389source = "registry+https://github.com/rust-lang/crates.io-index"
390checksum = "6ab9cb6fee50680af8ceaa293ae79eba32095ca117161cb323f9ee30dd87d139"
391dependencies = [
392 "aws-smithy-async",
393 "aws-smithy-http",
394 "aws-smithy-runtime-api",
395 "aws-smithy-types",
396 "bytes",
397 "fastrand",
398 "h2 0.3.24",
399 "http 0.2.11",
400 "http-body 0.4.6",
401 "hyper 0.14.28",
402 "hyper-rustls",
403 "once_cell",
404 "pin-project-lite",
405 "pin-utils",
406 "rustls",
407 "tokio",
408 "tracing",
409]
410
411[[package]]
412name = "aws-smithy-runtime-api"
413version = "1.1.3"
414source = "registry+https://github.com/rust-lang/crates.io-index"
415checksum = "02ca2da7619517310bfead6d18abcdde90f1439224d887d608503cfacff46dff"
416dependencies = [
417 "aws-smithy-async",
418 "aws-smithy-types",
419 "bytes",
420 "http 0.2.11",
421 "pin-project-lite",
422 "tokio",
423 "tracing",
424 "zeroize",
425]
426
427[[package]]
428name = "aws-smithy-types"
429version = "1.1.3"
430source = "registry+https://github.com/rust-lang/crates.io-index"
431checksum = "5d4bb944488536cd2fef43212d829bc7e9a8bfc4afa079d21170441e7be8d2d0"
432dependencies = [
433 "base64-simd",
434 "bytes",
435 "bytes-utils",
436 "futures-core",
437 "http 0.2.11",
438 "http-body 0.4.6",
439 "itoa",
440 "num-integer",
441 "pin-project-lite",
442 "pin-utils",
443 "ryu",
444 "serde",
445 "time",
446 "tokio",
447 "tokio-util",
448]
449
450[[package]]
451name = "aws-smithy-xml"
452version = "0.60.3"
453source = "registry+https://github.com/rust-lang/crates.io-index"
454checksum = "ef796feaf894d7fd03869235237aeffe73ed1b29a3927cceeee2eecadf876eba"
455dependencies = [
456 "xmlparser",
457]
458
459[[package]]
460name = "aws-types"
461version = "1.1.2"
462source = "registry+https://github.com/rust-lang/crates.io-index"
463checksum = "8549aa62c5b7db5c57ab915200ee214b4f5d8f19b29a4a8fa0b3ad3bca1380e3"
464dependencies = [
465 "aws-credential-types",
466 "aws-smithy-async",
467 "aws-smithy-runtime-api",
468 "aws-smithy-types",
469 "http 0.2.11",
470 "rustc_version",
471 "tracing",
101] 472]
102 473
103[[package]] 474[[package]]
@@ -171,10 +542,10 @@ dependencies = [
171] 542]
172 543
173[[package]] 544[[package]]
174name = "base64" 545name = "base16ct"
175version = "0.13.1" 546version = "0.1.1"
176source = "registry+https://github.com/rust-lang/crates.io-index" 547source = "registry+https://github.com/rust-lang/crates.io-index"
177checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" 548checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce"
178 549
179[[package]] 550[[package]]
180name = "base64" 551name = "base64"
@@ -183,6 +554,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
183checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 554checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
184 555
185[[package]] 556[[package]]
557name = "base64-simd"
558version = "0.8.0"
559source = "registry+https://github.com/rust-lang/crates.io-index"
560checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195"
561dependencies = [
562 "outref",
563 "vsimd",
564]
565
566[[package]]
567name = "base64ct"
568version = "1.6.0"
569source = "registry+https://github.com/rust-lang/crates.io-index"
570checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
571
572[[package]]
186name = "bitflags" 573name = "bitflags"
187version = "1.3.2" 574version = "1.3.2"
188source = "registry+https://github.com/rust-lang/crates.io-index" 575source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -216,6 +603,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
216checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" 603checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
217 604
218[[package]] 605[[package]]
606name = "bytes-utils"
607version = "0.1.4"
608source = "registry+https://github.com/rust-lang/crates.io-index"
609checksum = "7dafe3a8757b027e2be6e4e5601ed563c55989fcf1546e933c66c8eb3a058d35"
610dependencies = [
611 "bytes",
612 "either",
613]
614
615[[package]]
219name = "cc" 616name = "cc"
220version = "1.0.83" 617version = "1.0.83"
221source = "registry+https://github.com/rust-lang/crates.io-index" 618source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -256,6 +653,12 @@ dependencies = [
256] 653]
257 654
258[[package]] 655[[package]]
656name = "const-oid"
657version = "0.9.6"
658source = "registry+https://github.com/rust-lang/crates.io-index"
659checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
660
661[[package]]
259name = "core-foundation" 662name = "core-foundation"
260version = "0.9.4" 663version = "0.9.4"
261source = "registry+https://github.com/rust-lang/crates.io-index" 664source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -281,6 +684,46 @@ dependencies = [
281] 684]
282 685
283[[package]] 686[[package]]
687name = "crc32c"
688version = "0.6.4"
689source = "registry+https://github.com/rust-lang/crates.io-index"
690checksum = "d8f48d60e5b4d2c53d5c2b1d8a58c849a70ae5e5509b08a48d047e3b65714a74"
691dependencies = [
692 "rustc_version",
693]
694
695[[package]]
696name = "crc32fast"
697version = "1.3.2"
698source = "registry+https://github.com/rust-lang/crates.io-index"
699checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
700dependencies = [
701 "cfg-if",
702]
703
704[[package]]
705name = "crypto-bigint"
706version = "0.4.9"
707source = "registry+https://github.com/rust-lang/crates.io-index"
708checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef"
709dependencies = [
710 "generic-array",
711 "rand_core",
712 "subtle",
713 "zeroize",
714]
715
716[[package]]
717name = "crypto-bigint"
718version = "0.5.5"
719source = "registry+https://github.com/rust-lang/crates.io-index"
720checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76"
721dependencies = [
722 "rand_core",
723 "subtle",
724]
725
726[[package]]
284name = "crypto-common" 727name = "crypto-common"
285version = "0.1.6" 728version = "0.1.6"
286source = "registry+https://github.com/rust-lang/crates.io-index" 729source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -291,6 +734,16 @@ dependencies = [
291] 734]
292 735
293[[package]] 736[[package]]
737name = "der"
738version = "0.6.1"
739source = "registry+https://github.com/rust-lang/crates.io-index"
740checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de"
741dependencies = [
742 "const-oid",
743 "zeroize",
744]
745
746[[package]]
294name = "deranged" 747name = "deranged"
295version = "0.3.11" 748version = "0.3.11"
296source = "registry+https://github.com/rust-lang/crates.io-index" 749source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -338,12 +791,41 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
338checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257" 791checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257"
339 792
340[[package]] 793[[package]]
341name = "encoding_rs" 794name = "ecdsa"
342version = "0.8.33" 795version = "0.14.8"
343source = "registry+https://github.com/rust-lang/crates.io-index" 796source = "registry+https://github.com/rust-lang/crates.io-index"
344checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" 797checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c"
345dependencies = [ 798dependencies = [
346 "cfg-if", 799 "der",
800 "elliptic-curve",
801 "rfc6979",
802 "signature",
803]
804
805[[package]]
806name = "either"
807version = "1.9.0"
808source = "registry+https://github.com/rust-lang/crates.io-index"
809checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
810
811[[package]]
812name = "elliptic-curve"
813version = "0.12.3"
814source = "registry+https://github.com/rust-lang/crates.io-index"
815checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3"
816dependencies = [
817 "base16ct",
818 "crypto-bigint 0.4.9",
819 "der",
820 "digest",
821 "ff",
822 "generic-array",
823 "group",
824 "pkcs8",
825 "rand_core",
826 "sec1",
827 "subtle",
828 "zeroize",
347] 829]
348 830
349[[package]] 831[[package]]
@@ -369,6 +851,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
369checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" 851checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
370 852
371[[package]] 853[[package]]
854name = "ff"
855version = "0.12.1"
856source = "registry+https://github.com/rust-lang/crates.io-index"
857checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160"
858dependencies = [
859 "rand_core",
860 "subtle",
861]
862
863[[package]]
372name = "fnv" 864name = "fnv"
373version = "1.0.7" 865version = "1.0.7"
374source = "registry+https://github.com/rust-lang/crates.io-index" 866source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -399,28 +891,12 @@ dependencies = [
399] 891]
400 892
401[[package]] 893[[package]]
402name = "futures"
403version = "0.3.30"
404source = "registry+https://github.com/rust-lang/crates.io-index"
405checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
406dependencies = [
407 "futures-channel",
408 "futures-core",
409 "futures-executor",
410 "futures-io",
411 "futures-sink",
412 "futures-task",
413 "futures-util",
414]
415
416[[package]]
417name = "futures-channel" 894name = "futures-channel"
418version = "0.3.30" 895version = "0.3.30"
419source = "registry+https://github.com/rust-lang/crates.io-index" 896source = "registry+https://github.com/rust-lang/crates.io-index"
420checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" 897checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
421dependencies = [ 898dependencies = [
422 "futures-core", 899 "futures-core",
423 "futures-sink",
424] 900]
425 901
426[[package]] 902[[package]]
@@ -430,34 +906,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
430checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" 906checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
431 907
432[[package]] 908[[package]]
433name = "futures-executor"
434version = "0.3.30"
435source = "registry+https://github.com/rust-lang/crates.io-index"
436checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
437dependencies = [
438 "futures-core",
439 "futures-task",
440 "futures-util",
441]
442
443[[package]]
444name = "futures-io"
445version = "0.3.30"
446source = "registry+https://github.com/rust-lang/crates.io-index"
447checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
448
449[[package]]
450name = "futures-macro"
451version = "0.3.30"
452source = "registry+https://github.com/rust-lang/crates.io-index"
453checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
454dependencies = [
455 "proc-macro2",
456 "quote",
457 "syn 2.0.48",
458]
459
460[[package]]
461name = "futures-sink" 909name = "futures-sink"
462version = "0.3.30" 910version = "0.3.30"
463source = "registry+https://github.com/rust-lang/crates.io-index" 911source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -475,16 +923,10 @@ version = "0.3.30"
475source = "registry+https://github.com/rust-lang/crates.io-index" 923source = "registry+https://github.com/rust-lang/crates.io-index"
476checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" 924checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
477dependencies = [ 925dependencies = [
478 "futures-channel",
479 "futures-core", 926 "futures-core",
480 "futures-io",
481 "futures-macro",
482 "futures-sink",
483 "futures-task", 927 "futures-task",
484 "memchr",
485 "pin-project-lite", 928 "pin-project-lite",
486 "pin-utils", 929 "pin-utils",
487 "slab",
488] 930]
489 931
490[[package]] 932[[package]]
@@ -523,6 +965,17 @@ dependencies = [
523] 965]
524 966
525[[package]] 967[[package]]
968name = "group"
969version = "0.12.1"
970source = "registry+https://github.com/rust-lang/crates.io-index"
971checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7"
972dependencies = [
973 "ff",
974 "rand_core",
975 "subtle",
976]
977
978[[package]]
526name = "h2" 979name = "h2"
527version = "0.3.24" 980version = "0.3.24"
528source = "registry+https://github.com/rust-lang/crates.io-index" 981source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -714,16 +1167,19 @@ dependencies = [
714] 1167]
715 1168
716[[package]] 1169[[package]]
717name = "hyper-tls" 1170name = "hyper-rustls"
718version = "0.5.0" 1171version = "0.24.2"
719source = "registry+https://github.com/rust-lang/crates.io-index" 1172source = "registry+https://github.com/rust-lang/crates.io-index"
720checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" 1173checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
721dependencies = [ 1174dependencies = [
722 "bytes", 1175 "futures-util",
1176 "http 0.2.11",
723 "hyper 0.14.28", 1177 "hyper 0.14.28",
724 "native-tls", 1178 "log",
1179 "rustls",
1180 "rustls-native-certs",
725 "tokio", 1181 "tokio",
726 "tokio-native-tls", 1182 "tokio-rustls",
727] 1183]
728 1184
729[[package]] 1185[[package]]
@@ -788,12 +1244,6 @@ dependencies = [
788] 1244]
789 1245
790[[package]] 1246[[package]]
791name = "ipnet"
792version = "2.9.0"
793source = "registry+https://github.com/rust-lang/crates.io-index"
794checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
795
796[[package]]
797name = "itoa" 1247name = "itoa"
798version = "1.0.10" 1248version = "1.0.10"
799source = "registry+https://github.com/rust-lang/crates.io-index" 1249source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -860,23 +1310,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
860checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" 1310checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
861 1311
862[[package]] 1312[[package]]
863name = "maybe-async" 1313name = "md-5"
864version = "0.2.7" 1314version = "0.10.6"
865source = "registry+https://github.com/rust-lang/crates.io-index" 1315source = "registry+https://github.com/rust-lang/crates.io-index"
866checksum = "0f1b8c13cb1f814b634a96b2c725449fe7ed464a7b8781de8688be5ffbd3f305" 1316checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
867dependencies = [ 1317dependencies = [
868 "proc-macro2", 1318 "cfg-if",
869 "quote", 1319 "digest",
870 "syn 1.0.109",
871] 1320]
872 1321
873[[package]] 1322[[package]]
874name = "md5"
875version = "0.7.0"
876source = "registry+https://github.com/rust-lang/crates.io-index"
877checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
878
879[[package]]
880name = "memchr" 1323name = "memchr"
881version = "2.7.1" 1324version = "2.7.1"
882source = "registry+https://github.com/rust-lang/crates.io-index" 1325source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -889,15 +1332,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
889checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 1332checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
890 1333
891[[package]] 1334[[package]]
892name = "minidom"
893version = "0.15.2"
894source = "registry+https://github.com/rust-lang/crates.io-index"
895checksum = "f45614075738ce1b77a1768912a60c0227525971b03e09122a05b8a34a2a6278"
896dependencies = [
897 "rxml",
898]
899
900[[package]]
901name = "miniz_oxide" 1335name = "miniz_oxide"
902version = "0.7.1" 1336version = "0.7.1"
903source = "registry+https://github.com/rust-lang/crates.io-index" 1337source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -936,6 +1370,16 @@ dependencies = [
936] 1370]
937 1371
938[[package]] 1372[[package]]
1373name = "num-integer"
1374version = "0.1.45"
1375source = "registry+https://github.com/rust-lang/crates.io-index"
1376checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
1377dependencies = [
1378 "autocfg",
1379 "num-traits",
1380]
1381
1382[[package]]
939name = "num-traits" 1383name = "num-traits"
940version = "0.2.17" 1384version = "0.2.17"
941source = "registry+https://github.com/rust-lang/crates.io-index" 1385source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -992,7 +1436,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
992dependencies = [ 1436dependencies = [
993 "proc-macro2", 1437 "proc-macro2",
994 "quote", 1438 "quote",
995 "syn 2.0.48", 1439 "syn",
996] 1440]
997 1441
998[[package]] 1442[[package]]
@@ -1024,6 +1468,23 @@ dependencies = [
1024] 1468]
1025 1469
1026[[package]] 1470[[package]]
1471name = "outref"
1472version = "0.5.1"
1473source = "registry+https://github.com/rust-lang/crates.io-index"
1474checksum = "4030760ffd992bef45b0ae3f10ce1aba99e33464c90d14dd7c039884963ddc7a"
1475
1476[[package]]
1477name = "p256"
1478version = "0.11.1"
1479source = "registry+https://github.com/rust-lang/crates.io-index"
1480checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594"
1481dependencies = [
1482 "ecdsa",
1483 "elliptic-curve",
1484 "sha2",
1485]
1486
1487[[package]]
1027name = "parking_lot" 1488name = "parking_lot"
1028version = "0.12.1" 1489version = "0.12.1"
1029source = "registry+https://github.com/rust-lang/crates.io-index" 1490source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1069,7 +1530,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
1069dependencies = [ 1530dependencies = [
1070 "proc-macro2", 1531 "proc-macro2",
1071 "quote", 1532 "quote",
1072 "syn 2.0.48", 1533 "syn",
1073] 1534]
1074 1535
1075[[package]] 1536[[package]]
@@ -1085,6 +1546,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1085checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 1546checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
1086 1547
1087[[package]] 1548[[package]]
1549name = "pkcs8"
1550version = "0.9.0"
1551source = "registry+https://github.com/rust-lang/crates.io-index"
1552checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba"
1553dependencies = [
1554 "der",
1555 "spki",
1556]
1557
1558[[package]]
1088name = "pkg-config" 1559name = "pkg-config"
1089version = "0.3.29" 1560version = "0.3.29"
1090source = "registry+https://github.com/rust-lang/crates.io-index" 1561source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1125,6 +1596,15 @@ dependencies = [
1125] 1596]
1126 1597
1127[[package]] 1598[[package]]
1599name = "rand_core"
1600version = "0.6.4"
1601source = "registry+https://github.com/rust-lang/crates.io-index"
1602checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
1603dependencies = [
1604 "getrandom",
1605]
1606
1607[[package]]
1128name = "redox_syscall" 1608name = "redox_syscall"
1129version = "0.4.1" 1609version = "0.4.1"
1130source = "registry+https://github.com/rust-lang/crates.io-index" 1610source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1145,86 +1625,44 @@ dependencies = [
1145] 1625]
1146 1626
1147[[package]] 1627[[package]]
1148name = "reqwest" 1628name = "regex-lite"
1149version = "0.11.23" 1629version = "0.1.5"
1630source = "registry+https://github.com/rust-lang/crates.io-index"
1631checksum = "30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e"
1632
1633[[package]]
1634name = "rfc6979"
1635version = "0.3.1"
1150source = "registry+https://github.com/rust-lang/crates.io-index" 1636source = "registry+https://github.com/rust-lang/crates.io-index"
1151checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41" 1637checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb"
1152dependencies = [ 1638dependencies = [
1153 "base64 0.21.7", 1639 "crypto-bigint 0.4.9",
1154 "bytes", 1640 "hmac",
1155 "encoding_rs", 1641 "zeroize",
1156 "futures-core",
1157 "futures-util",
1158 "h2 0.3.24",
1159 "http 0.2.11",
1160 "http-body 0.4.6",
1161 "hyper 0.14.28",
1162 "hyper-tls",
1163 "ipnet",
1164 "js-sys",
1165 "log",
1166 "mime",
1167 "native-tls",
1168 "once_cell",
1169 "percent-encoding",
1170 "pin-project-lite",
1171 "serde",
1172 "serde_json",
1173 "serde_urlencoded",
1174 "system-configuration",
1175 "tokio",
1176 "tokio-native-tls",
1177 "tokio-util",
1178 "tower-service",
1179 "url",
1180 "wasm-bindgen",
1181 "wasm-bindgen-futures",
1182 "wasm-streams",
1183 "web-sys",
1184 "winreg",
1185] 1642]
1186 1643
1187[[package]] 1644[[package]]
1188name = "rust-ini" 1645name = "ring"
1189version = "0.18.0" 1646version = "0.17.7"
1190source = "registry+https://github.com/rust-lang/crates.io-index" 1647source = "registry+https://github.com/rust-lang/crates.io-index"
1191checksum = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df" 1648checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
1192dependencies = [ 1649dependencies = [
1193 "cfg-if", 1650 "cc",
1194 "ordered-multimap", 1651 "getrandom",
1652 "libc",
1653 "spin",
1654 "untrusted",
1655 "windows-sys 0.48.0",
1195] 1656]
1196 1657
1197[[package]] 1658[[package]]
1198name = "rust-s3" 1659name = "rust-ini"
1199version = "0.33.0" 1660version = "0.18.0"
1200source = "registry+https://github.com/rust-lang/crates.io-index" 1661source = "registry+https://github.com/rust-lang/crates.io-index"
1201checksum = "1b2ac5ff6acfbe74226fa701b5ef793aaa054055c13ebb7060ad36942956e027" 1662checksum = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df"
1202dependencies = [ 1663dependencies = [
1203 "async-trait",
1204 "aws-creds",
1205 "aws-region",
1206 "base64 0.13.1",
1207 "bytes",
1208 "cfg-if", 1664 "cfg-if",
1209 "futures", 1665 "ordered-multimap",
1210 "hex",
1211 "hmac",
1212 "http 0.2.11",
1213 "log",
1214 "maybe-async",
1215 "md5",
1216 "minidom",
1217 "percent-encoding",
1218 "quick-xml",
1219 "reqwest",
1220 "serde",
1221 "serde_derive",
1222 "sha2",
1223 "thiserror",
1224 "time",
1225 "tokio",
1226 "tokio-stream",
1227 "url",
1228] 1666]
1229 1667
1230[[package]] 1668[[package]]
@@ -1234,6 +1672,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1234checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" 1672checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
1235 1673
1236[[package]] 1674[[package]]
1675name = "rustc_version"
1676version = "0.4.0"
1677source = "registry+https://github.com/rust-lang/crates.io-index"
1678checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
1679dependencies = [
1680 "semver",
1681]
1682
1683[[package]]
1237name = "rustix" 1684name = "rustix"
1238version = "0.38.30" 1685version = "0.38.30"
1239source = "registry+https://github.com/rust-lang/crates.io-index" 1686source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1247,27 +1694,53 @@ dependencies = [
1247] 1694]
1248 1695
1249[[package]] 1696[[package]]
1250name = "rustversion" 1697name = "rustls"
1251version = "1.0.14" 1698version = "0.21.10"
1252source = "registry+https://github.com/rust-lang/crates.io-index" 1699source = "registry+https://github.com/rust-lang/crates.io-index"
1253checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" 1700checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
1701dependencies = [
1702 "log",
1703 "ring",
1704 "rustls-webpki",
1705 "sct",
1706]
1254 1707
1255[[package]] 1708[[package]]
1256name = "rxml" 1709name = "rustls-native-certs"
1257version = "0.9.1" 1710version = "0.6.3"
1258source = "registry+https://github.com/rust-lang/crates.io-index" 1711source = "registry+https://github.com/rust-lang/crates.io-index"
1259checksum = "a98f186c7a2f3abbffb802984b7f1dfd65dac8be1aafdaabbca4137f53f0dff7" 1712checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00"
1260dependencies = [ 1713dependencies = [
1261 "bytes", 1714 "openssl-probe",
1262 "rxml_validation", 1715 "rustls-pemfile",
1263 "smartstring", 1716 "schannel",
1717 "security-framework",
1718]
1719
1720[[package]]
1721name = "rustls-pemfile"
1722version = "1.0.4"
1723source = "registry+https://github.com/rust-lang/crates.io-index"
1724checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
1725dependencies = [
1726 "base64",
1727]
1728
1729[[package]]
1730name = "rustls-webpki"
1731version = "0.101.7"
1732source = "registry+https://github.com/rust-lang/crates.io-index"
1733checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
1734dependencies = [
1735 "ring",
1736 "untrusted",
1264] 1737]
1265 1738
1266[[package]] 1739[[package]]
1267name = "rxml_validation" 1740name = "rustversion"
1268version = "0.9.1" 1741version = "1.0.14"
1269source = "registry+https://github.com/rust-lang/crates.io-index" 1742source = "registry+https://github.com/rust-lang/crates.io-index"
1270checksum = "22a197350ece202f19a166d1ad6d9d6de145e1d2a8ef47db299abe164dbd7530" 1743checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
1271 1744
1272[[package]] 1745[[package]]
1273name = "ryu" 1746name = "ryu"
@@ -1291,6 +1764,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1291checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1764checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
1292 1765
1293[[package]] 1766[[package]]
1767name = "sct"
1768version = "0.7.1"
1769source = "registry+https://github.com/rust-lang/crates.io-index"
1770checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
1771dependencies = [
1772 "ring",
1773 "untrusted",
1774]
1775
1776[[package]]
1777name = "sec1"
1778version = "0.3.0"
1779source = "registry+https://github.com/rust-lang/crates.io-index"
1780checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928"
1781dependencies = [
1782 "base16ct",
1783 "der",
1784 "generic-array",
1785 "pkcs8",
1786 "subtle",
1787 "zeroize",
1788]
1789
1790[[package]]
1294name = "security-framework" 1791name = "security-framework"
1295version = "2.9.2" 1792version = "2.9.2"
1296source = "registry+https://github.com/rust-lang/crates.io-index" 1793source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1314,6 +1811,12 @@ dependencies = [
1314] 1811]
1315 1812
1316[[package]] 1813[[package]]
1814name = "semver"
1815version = "1.0.21"
1816source = "registry+https://github.com/rust-lang/crates.io-index"
1817checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
1818
1819[[package]]
1317name = "serde" 1820name = "serde"
1318version = "1.0.195" 1821version = "1.0.195"
1319source = "registry+https://github.com/rust-lang/crates.io-index" 1822source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1330,7 +1833,7 @@ checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
1330dependencies = [ 1833dependencies = [
1331 "proc-macro2", 1834 "proc-macro2",
1332 "quote", 1835 "quote",
1333 "syn 2.0.48", 1836 "syn",
1334] 1837]
1335 1838
1336[[package]] 1839[[package]]
@@ -1370,18 +1873,32 @@ dependencies = [
1370name = "server" 1873name = "server"
1371version = "0.1.0" 1874version = "0.1.0"
1372dependencies = [ 1875dependencies = [
1876 "aws-config",
1373 "aws-creds", 1877 "aws-creds",
1878 "aws-sdk-s3",
1374 "axum", 1879 "axum",
1880 "base64",
1375 "chrono", 1881 "chrono",
1376 "common", 1882 "common",
1377 "mime", 1883 "mime",
1378 "rust-s3",
1379 "serde", 1884 "serde",
1380 "tokio", 1885 "tokio",
1886 "tower",
1381 "tower-service", 1887 "tower-service",
1382] 1888]
1383 1889
1384[[package]] 1890[[package]]
1891name = "sha1"
1892version = "0.10.6"
1893source = "registry+https://github.com/rust-lang/crates.io-index"
1894checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
1895dependencies = [
1896 "cfg-if",
1897 "cpufeatures",
1898 "digest",
1899]
1900
1901[[package]]
1385name = "sha2" 1902name = "sha2"
1386version = "0.10.8" 1903version = "0.10.8"
1387source = "registry+https://github.com/rust-lang/crates.io-index" 1904source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1402,6 +1919,16 @@ dependencies = [
1402] 1919]
1403 1920
1404[[package]] 1921[[package]]
1922name = "signature"
1923version = "1.6.4"
1924source = "registry+https://github.com/rust-lang/crates.io-index"
1925checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c"
1926dependencies = [
1927 "digest",
1928 "rand_core",
1929]
1930
1931[[package]]
1405name = "slab" 1932name = "slab"
1406version = "0.4.9" 1933version = "0.4.9"
1407source = "registry+https://github.com/rust-lang/crates.io-index" 1934source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1417,17 +1944,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1417checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" 1944checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
1418 1945
1419[[package]] 1946[[package]]
1420name = "smartstring"
1421version = "1.0.1"
1422source = "registry+https://github.com/rust-lang/crates.io-index"
1423checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29"
1424dependencies = [
1425 "autocfg",
1426 "static_assertions",
1427 "version_check",
1428]
1429
1430[[package]]
1431name = "socket2" 1947name = "socket2"
1432version = "0.5.5" 1948version = "0.5.5"
1433source = "registry+https://github.com/rust-lang/crates.io-index" 1949source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1438,27 +1954,26 @@ dependencies = [
1438] 1954]
1439 1955
1440[[package]] 1956[[package]]
1441name = "static_assertions" 1957name = "spin"
1442version = "1.1.0" 1958version = "0.9.8"
1443source = "registry+https://github.com/rust-lang/crates.io-index" 1959source = "registry+https://github.com/rust-lang/crates.io-index"
1444checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 1960checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
1445 1961
1446[[package]] 1962[[package]]
1447name = "subtle" 1963name = "spki"
1448version = "2.5.0" 1964version = "0.6.0"
1449source = "registry+https://github.com/rust-lang/crates.io-index" 1965source = "registry+https://github.com/rust-lang/crates.io-index"
1450checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" 1966checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b"
1967dependencies = [
1968 "base64ct",
1969 "der",
1970]
1451 1971
1452[[package]] 1972[[package]]
1453name = "syn" 1973name = "subtle"
1454version = "1.0.109" 1974version = "2.5.0"
1455source = "registry+https://github.com/rust-lang/crates.io-index" 1975source = "registry+https://github.com/rust-lang/crates.io-index"
1456checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 1976checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
1457dependencies = [
1458 "proc-macro2",
1459 "quote",
1460 "unicode-ident",
1461]
1462 1977
1463[[package]] 1978[[package]]
1464name = "syn" 1979name = "syn"
@@ -1478,27 +1993,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1478checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" 1993checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
1479 1994
1480[[package]] 1995[[package]]
1481name = "system-configuration"
1482version = "0.5.1"
1483source = "registry+https://github.com/rust-lang/crates.io-index"
1484checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
1485dependencies = [
1486 "bitflags 1.3.2",
1487 "core-foundation",
1488 "system-configuration-sys",
1489]
1490
1491[[package]]
1492name = "system-configuration-sys"
1493version = "0.5.0"
1494source = "registry+https://github.com/rust-lang/crates.io-index"
1495checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
1496dependencies = [
1497 "core-foundation-sys",
1498 "libc",
1499]
1500
1501[[package]]
1502name = "tempfile" 1996name = "tempfile"
1503version = "3.9.0" 1997version = "3.9.0"
1504source = "registry+https://github.com/rust-lang/crates.io-index" 1998source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1528,7 +2022,7 @@ checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
1528dependencies = [ 2022dependencies = [
1529 "proc-macro2", 2023 "proc-macro2",
1530 "quote", 2024 "quote",
1531 "syn 2.0.48", 2025 "syn",
1532] 2026]
1533 2027
1534[[package]] 2028[[package]]
@@ -1602,27 +2096,16 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
1602dependencies = [ 2096dependencies = [
1603 "proc-macro2", 2097 "proc-macro2",
1604 "quote", 2098 "quote",
1605 "syn 2.0.48", 2099 "syn",
1606]
1607
1608[[package]]
1609name = "tokio-native-tls"
1610version = "0.3.1"
1611source = "registry+https://github.com/rust-lang/crates.io-index"
1612checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
1613dependencies = [
1614 "native-tls",
1615 "tokio",
1616] 2100]
1617 2101
1618[[package]] 2102[[package]]
1619name = "tokio-stream" 2103name = "tokio-rustls"
1620version = "0.1.14" 2104version = "0.24.1"
1621source = "registry+https://github.com/rust-lang/crates.io-index" 2105source = "registry+https://github.com/rust-lang/crates.io-index"
1622checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" 2106checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
1623dependencies = [ 2107dependencies = [
1624 "futures-core", 2108 "rustls",
1625 "pin-project-lite",
1626 "tokio", 2109 "tokio",
1627] 2110]
1628 2111
@@ -1676,10 +2159,22 @@ checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
1676dependencies = [ 2159dependencies = [
1677 "log", 2160 "log",
1678 "pin-project-lite", 2161 "pin-project-lite",
2162 "tracing-attributes",
1679 "tracing-core", 2163 "tracing-core",
1680] 2164]
1681 2165
1682[[package]] 2166[[package]]
2167name = "tracing-attributes"
2168version = "0.1.27"
2169source = "registry+https://github.com/rust-lang/crates.io-index"
2170checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
2171dependencies = [
2172 "proc-macro2",
2173 "quote",
2174 "syn",
2175]
2176
2177[[package]]
1683name = "tracing-core" 2178name = "tracing-core"
1684version = "0.1.32" 2179version = "0.1.32"
1685source = "registry+https://github.com/rust-lang/crates.io-index" 2180source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1722,6 +2217,12 @@ dependencies = [
1722] 2217]
1723 2218
1724[[package]] 2219[[package]]
2220name = "untrusted"
2221version = "0.9.0"
2222source = "registry+https://github.com/rust-lang/crates.io-index"
2223checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
2224
2225[[package]]
1725name = "url" 2226name = "url"
1726version = "2.5.0" 2227version = "2.5.0"
1727source = "registry+https://github.com/rust-lang/crates.io-index" 2228source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1733,6 +2234,18 @@ dependencies = [
1733] 2234]
1734 2235
1735[[package]] 2236[[package]]
2237name = "urlencoding"
2238version = "2.1.3"
2239source = "registry+https://github.com/rust-lang/crates.io-index"
2240checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
2241
2242[[package]]
2243name = "uuid"
2244version = "1.6.1"
2245source = "registry+https://github.com/rust-lang/crates.io-index"
2246checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
2247
2248[[package]]
1736name = "vcpkg" 2249name = "vcpkg"
1737version = "0.2.15" 2250version = "0.2.15"
1738source = "registry+https://github.com/rust-lang/crates.io-index" 2251source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1745,6 +2258,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1745checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 2258checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
1746 2259
1747[[package]] 2260[[package]]
2261name = "vsimd"
2262version = "0.8.0"
2263source = "registry+https://github.com/rust-lang/crates.io-index"
2264checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64"
2265
2266[[package]]
1748name = "want" 2267name = "want"
1749version = "0.3.1" 2268version = "0.3.1"
1750source = "registry+https://github.com/rust-lang/crates.io-index" 2269source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1780,23 +2299,11 @@ dependencies = [
1780 "once_cell", 2299 "once_cell",
1781 "proc-macro2", 2300 "proc-macro2",
1782 "quote", 2301 "quote",
1783 "syn 2.0.48", 2302 "syn",
1784 "wasm-bindgen-shared", 2303 "wasm-bindgen-shared",
1785] 2304]
1786 2305
1787[[package]] 2306[[package]]
1788name = "wasm-bindgen-futures"
1789version = "0.4.40"
1790source = "registry+https://github.com/rust-lang/crates.io-index"
1791checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461"
1792dependencies = [
1793 "cfg-if",
1794 "js-sys",
1795 "wasm-bindgen",
1796 "web-sys",
1797]
1798
1799[[package]]
1800name = "wasm-bindgen-macro" 2307name = "wasm-bindgen-macro"
1801version = "0.2.90" 2308version = "0.2.90"
1802source = "registry+https://github.com/rust-lang/crates.io-index" 2309source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1814,7 +2321,7 @@ checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
1814dependencies = [ 2321dependencies = [
1815 "proc-macro2", 2322 "proc-macro2",
1816 "quote", 2323 "quote",
1817 "syn 2.0.48", 2324 "syn",
1818 "wasm-bindgen-backend", 2325 "wasm-bindgen-backend",
1819 "wasm-bindgen-shared", 2326 "wasm-bindgen-shared",
1820] 2327]
@@ -1826,29 +2333,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1826checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" 2333checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
1827 2334
1828[[package]] 2335[[package]]
1829name = "wasm-streams"
1830version = "0.3.0"
1831source = "registry+https://github.com/rust-lang/crates.io-index"
1832checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7"
1833dependencies = [
1834 "futures-util",
1835 "js-sys",
1836 "wasm-bindgen",
1837 "wasm-bindgen-futures",
1838 "web-sys",
1839]
1840
1841[[package]]
1842name = "web-sys"
1843version = "0.3.67"
1844source = "registry+https://github.com/rust-lang/crates.io-index"
1845checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed"
1846dependencies = [
1847 "js-sys",
1848 "wasm-bindgen",
1849]
1850
1851[[package]]
1852name = "winapi" 2336name = "winapi"
1853version = "0.3.9" 2337version = "0.3.9"
1854source = "registry+https://github.com/rust-lang/crates.io-index" 2338source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2012,11 +2496,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
2012checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" 2496checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
2013 2497
2014[[package]] 2498[[package]]
2015name = "winreg" 2499name = "xmlparser"
2016version = "0.50.0" 2500version = "0.13.6"
2017source = "registry+https://github.com/rust-lang/crates.io-index" 2501source = "registry+https://github.com/rust-lang/crates.io-index"
2018checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" 2502checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4"
2019dependencies = [ 2503
2020 "cfg-if", 2504[[package]]
2021 "windows-sys 0.48.0", 2505name = "zeroize"
2022] 2506version = "1.7.0"
2507source = "registry+https://github.com/rust-lang/crates.io-index"
2508checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
diff --git a/rs/server/Cargo.toml b/rs/server/Cargo.toml
index ac571af..188299a 100644
--- a/rs/server/Cargo.toml
+++ b/rs/server/Cargo.toml
@@ -4,12 +4,15 @@ version = "0.1.0"
4edition = "2021" 4edition = "2021"
5 5
6[dependencies] 6[dependencies]
7aws-config = { version = "1.1.2", features = ["behavior-version-latest"] }
8aws-sdk-s3 = "1.12.0"
7axum = "0.7" 9axum = "0.7"
8aws-creds = "0.34" 10aws-creds = "0.34"
11base64 = "0.21"
9chrono = { version = "0.4", features = ["serde"] } 12chrono = { version = "0.4", features = ["serde"] }
10common = { path = "../common" } 13common = { path = "../common" }
11mime = "0.3" 14mime = "0.3"
12rust-s3 = "0.33"
13serde = { version = "1", features = ["derive"] } 15serde = { version = "1", features = ["derive"] }
14tokio = { version = "1.35", features = ["full"] } 16tokio = { version = "1.35", features = ["full"] }
17tower = "0.4"
15tower-service = "0.3" 18tower-service = "0.3"
diff --git a/rs/server/src/main.rs b/rs/server/src/main.rs
index 8fe1d16..7d8b83a 100644
--- a/rs/server/src/main.rs
+++ b/rs/server/src/main.rs
@@ -1,6 +1,7 @@
1use std::collections::HashMap; 1use std::collections::HashMap;
2use std::sync::Arc;
2 3
3use awscreds::Credentials; 4use axum::extract::State;
4use axum::extract::rejection; 5use axum::extract::rejection;
5use axum::extract::FromRequest; 6use axum::extract::FromRequest;
6use axum::extract::Path; 7use axum::extract::Path;
@@ -9,23 +10,23 @@ use axum::http::HeaderMap;
9use axum::http::HeaderValue; 10use axum::http::HeaderValue;
10use axum::response::Response; 11use axum::response::Response;
11use axum::Json; 12use axum::Json;
13use base64::prelude::*;
12use chrono::DateTime; 14use chrono::DateTime;
13use chrono::Utc; 15use chrono::Utc;
14use common::HexByte; 16use common::HexByte;
15use common::Operation;
16use s3::Bucket;
17use serde::de; 17use serde::de;
18use serde::de::DeserializeOwned; 18use serde::de::DeserializeOwned;
19use serde::Deserialize; 19use serde::Deserialize;
20use serde::Serialize; 20use serde::Serialize;
21use tower_service::Service; 21use tower::Layer;
22use axum::ServiceExt;
22 23
23use axum::{ 24use axum::{
24 async_trait, 25 async_trait,
25 extract::{FromRequestParts, OriginalUri, Request}, 26 extract::{FromRequestParts, OriginalUri, Request},
26 http::{request::Parts, StatusCode, Uri}, 27 http::{request::Parts, StatusCode, Uri},
27 response::IntoResponse, 28 response::IntoResponse,
28 routing::{any, get, post, put}, 29 routing::{get, post, put},
29 Extension, Router, 30 Extension, Router,
30}; 31};
31 32
@@ -53,46 +54,71 @@ impl<S: Send + Sync> FromRequestParts<S> for RepositoryName {
53 } 54 }
54} 55}
55 56
57async fn rewrite_url<B>(mut req: axum::http::Request<B>) -> Result<axum::http::Request<B>, StatusCode> {
58 let uri = req.uri();
59 let original_uri = OriginalUri(uri.clone());
60
61 let path_and_query = uri.path_and_query().unwrap();
62 let Some((repo, path)) = path_and_query.path().split_once("/info/lfs/objects") else {
63 return Err(StatusCode::NOT_FOUND);
64 };
65 let repo = repo
66 .trim_start_matches('/')
67 .trim_end_matches('/')
68 .to_string();
69 if !path.starts_with("/") || !repo.ends_with(".git") {
70 return Err(StatusCode::NOT_FOUND);
71 }
72
73 let mut parts = uri.clone().into_parts();
74 parts.path_and_query = match path_and_query.query() {
75 None => path.try_into().ok(),
76 Some(q) => format!("{path}?{q}").try_into().ok(),
77 };
78 let new_uri = Uri::from_parts(parts).unwrap();
79
80 *req.uri_mut() = new_uri;
81 req.extensions_mut().insert(original_uri);
82 req.extensions_mut().insert(RepositoryName(repo));
83
84 Ok(req)
85}
86
87struct AppState {
88 s3_client: aws_sdk_s3::Client,
89 s3_bucket: String,
90}
91
92fn get_s3_client() -> aws_sdk_s3::Client {
93 let access_key_id = std::env::var("S3_ACCESS_KEY_ID").unwrap();
94 let secret_access_key = std::env::var("S3_SECRET_ACCESS_KEY").unwrap();
95
96 let credentials = aws_sdk_s3::config::Credentials::new(access_key_id, secret_access_key, None, None, "gitolfs3-env");
97 let config = aws_config::SdkConfig::builder()
98 .endpoint_url(std::env::var("S3_ENDPOINT").unwrap())
99 .credentials_provider(aws_sdk_s3::config::SharedCredentialsProvider::new(credentials))
100 .build();
101 aws_sdk_s3::Client::new(&config)
102}
103
56#[tokio::main] 104#[tokio::main]
57async fn main() { 105async fn main() {
58 // run our app with hyper, listening globally on port 3000 106 // run our app with hyper, listening globally on port 3000
59 let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap(); 107 let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap();
60 let mut app = Router::new() 108
109 let s3_client = get_s3_client();
110 let s3_bucket = std::env::var("S3_BUCKET").unwrap();
111 let shared_state = Arc::new(AppState { s3_client, s3_bucket });
112 let app = Router::new()
61 .route("/batch", post(batch)) 113 .route("/batch", post(batch))
62 .route("/:oid0/:oid1/:oid", get(obj_download)) 114 .route("/:oid0/:oid1/:oid", get(obj_download))
63 .route("/:oid0/:oid1/:oid", put(obj_upload)); 115 .route("/:oid0/:oid1/:oid", put(obj_upload))
64 axum::serve( 116 .with_state(shared_state);
65 listener,
66 any(|mut req: Request| async move {
67 let uri = req.uri();
68 let original_uri = OriginalUri(uri.clone());
69
70 let path_and_query = uri.path_and_query().unwrap();
71 let Some((repo, path)) = path_and_query.path().split_once("/info/lfs/objects") else {
72 return Ok(StatusCode::NOT_FOUND.into_response());
73 };
74 let repo = repo
75 .trim_start_matches('/')
76 .trim_end_matches('/')
77 .to_string();
78 if !path.starts_with("/") || !repo.ends_with(".git") {
79 return Ok(StatusCode::NOT_FOUND.into_response());
80 }
81 117
82 let mut parts = uri.clone().into_parts(); 118 let middleware = axum::middleware::map_request(rewrite_url);
83 parts.path_and_query = match path_and_query.query() { 119 let app_with_middleware = middleware.layer(app);
84 None => path.try_into().ok(),
85 Some(q) => format!("{path}?{q}").try_into().ok(),
86 };
87 let new_uri = Uri::from_parts(parts).unwrap();
88 120
89 *req.uri_mut() = new_uri; 121 axum::serve(listener, app_with_middleware.into_make_service())
90 req.extensions_mut().insert(original_uri);
91 req.extensions_mut().insert(RepositoryName(repo));
92
93 app.call(req).await
94 }),
95 )
96 .await 122 .await
97 .unwrap(); 123 .unwrap();
98} 124}
@@ -254,20 +280,28 @@ struct BatchResponse {
254 hash_algo: HashAlgo, 280 hash_algo: HashAlgo,
255} 281}
256 282
257//fn handle_download_object(repo: &str, obj: &BatchRequestObject) { 283async fn handle_download_object(state: &AppState, repo: &str, obj: &BatchRequestObject) {
258// let (oid0, oid1) = (HexByte(obj.oid[0]), HexByte(obj.oid[1])); 284 let (oid0, oid1) = (HexByte(obj.oid[0]), HexByte(obj.oid[1]));
259// let full_path = format!("{repo}/lfs/objects/{}/{}/{}", oid0, oid1, obj.oid); 285 let full_path = format!("{repo}/lfs/objects/{}/{}/{}", oid0, oid1, obj.oid);
260// 286
261// let bucket_anme = "asdfasdf"; 287 let result = state.s3_client.head_object().
262// let region = s3::Region::Custom { 288 bucket(&state.s3_bucket).
263// region: "nl-ams".to_string(), 289 key(full_path).
264// endpoint: "rg.nl-ams.swc.cloud".to_string() 290 checksum_mode(aws_sdk_s3::types::ChecksumMode::Enabled).
265// }; 291 send().await.unwrap();
266// let credentials = Credentials::new(None, None, None, None, None).unwrap(); 292 if let Some(checksum) = result.checksum_sha256() {
267// let bucket = Bucket::new(bucket_anme, region, credentials).unwrap(); 293 if let Ok(checksum) = BASE64_STANDARD.decode(checksum) {
268//} 294 if let Ok(checksum32b) = TryInto::<[u8; 32]>::try_into(checksum) {
295 if Oid::from(checksum32b) != obj.oid {
296 unreachable!();
297 }
298 }
299 }
300 }
301}
269 302
270async fn batch( 303async fn batch(
304 State(state): State<Arc<AppState>>,
271 header: HeaderMap, 305 header: HeaderMap,
272 RepositoryName(repo): RepositoryName, 306 RepositoryName(repo): RepositoryName,
273 GitLfsJson(Json(payload)): GitLfsJson<BatchRequest>, 307 GitLfsJson(Json(payload)): GitLfsJson<BatchRequest>,
@@ -301,6 +335,7 @@ async fn batch(
301 335
302 let resp: BatchResponse; 336 let resp: BatchResponse;
303 for obj in payload.objects { 337 for obj in payload.objects {
338 handle_download_object(&state, &repo, &obj).await;
304// match payload.operation { 339// match payload.operation {
305// Operation::Download => resp.objects.push(handle_download_object(repo, obj));, 340// Operation::Download => resp.objects.push(handle_download_object(repo, obj));,
306// Operation::Upload => resp.objects.push(handle_upload_object(repo, obj)), 341// Operation::Upload => resp.objects.push(handle_upload_object(repo, obj)),