+562
-1
Cargo.lock
+562
-1
Cargo.lock
···
97
97
]
98
98
99
99
[[package]]
100
+
name = "async-trait"
101
+
version = "0.1.89"
102
+
source = "registry+https://github.com/rust-lang/crates.io-index"
103
+
checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb"
104
+
dependencies = [
105
+
"proc-macro2",
106
+
"quote",
107
+
"syn",
108
+
]
109
+
110
+
[[package]]
100
111
name = "atomic-waker"
101
112
version = "1.1.2"
102
113
source = "registry+https://github.com/rust-lang/crates.io-index"
103
114
checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
104
115
105
116
[[package]]
117
+
name = "attohttpc"
118
+
version = "0.30.1"
119
+
source = "registry+https://github.com/rust-lang/crates.io-index"
120
+
checksum = "16e2cdb6d5ed835199484bb92bb8b3edd526effe995c61732580439c1a67e2e9"
121
+
dependencies = [
122
+
"base64",
123
+
"http",
124
+
"log",
125
+
"native-tls",
126
+
"serde",
127
+
"serde_json",
128
+
"url",
129
+
]
130
+
131
+
[[package]]
132
+
name = "aws-creds"
133
+
version = "0.39.0"
134
+
source = "registry+https://github.com/rust-lang/crates.io-index"
135
+
checksum = "b13804829a843b3f26e151c97acbb315ee1177a2724690edfcd28f1894146200"
136
+
dependencies = [
137
+
"attohttpc",
138
+
"home",
139
+
"log",
140
+
"quick-xml",
141
+
"rust-ini",
142
+
"serde",
143
+
"thiserror",
144
+
"time",
145
+
"url",
146
+
]
147
+
148
+
[[package]]
149
+
name = "aws-region"
150
+
version = "0.28.0"
151
+
source = "registry+https://github.com/rust-lang/crates.io-index"
152
+
checksum = "5532f65342f789f9c1b7078ea9c9cd9293cd62dcc284fa99adc4a1c9ba43469c"
153
+
dependencies = [
154
+
"thiserror",
155
+
]
156
+
157
+
[[package]]
106
158
name = "backtrace"
107
159
version = "0.3.76"
108
160
source = "registry+https://github.com/rust-lang/crates.io-index"
···
130
182
checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394"
131
183
132
184
[[package]]
185
+
name = "block-buffer"
186
+
version = "0.10.4"
187
+
source = "registry+https://github.com/rust-lang/crates.io-index"
188
+
checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
189
+
dependencies = [
190
+
"generic-array",
191
+
]
192
+
193
+
[[package]]
133
194
name = "bumpalo"
134
195
version = "3.19.0"
135
196
source = "registry+https://github.com/rust-lang/crates.io-index"
···
140
201
version = "1.10.1"
141
202
source = "registry+https://github.com/rust-lang/crates.io-index"
142
203
checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
204
+
205
+
[[package]]
206
+
name = "castaway"
207
+
version = "0.2.4"
208
+
source = "registry+https://github.com/rust-lang/crates.io-index"
209
+
checksum = "dec551ab6e7578819132c713a93c022a05d60159dc86e7a7050223577484c55a"
210
+
dependencies = [
211
+
"rustversion",
212
+
]
143
213
144
214
[[package]]
145
215
name = "cc"
···
206
276
checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75"
207
277
208
278
[[package]]
279
+
name = "compact_str"
280
+
version = "0.7.1"
281
+
source = "registry+https://github.com/rust-lang/crates.io-index"
282
+
checksum = "f86b9c4c00838774a6d902ef931eff7470720c51d90c2e32cfe15dc304737b3f"
283
+
dependencies = [
284
+
"castaway",
285
+
"cfg-if",
286
+
"itoa",
287
+
"ryu",
288
+
"static_assertions",
289
+
]
290
+
291
+
[[package]]
209
292
name = "compression-codecs"
210
293
version = "0.4.31"
211
294
source = "registry+https://github.com/rust-lang/crates.io-index"
···
223
306
checksum = "e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb"
224
307
225
308
[[package]]
309
+
name = "const-random"
310
+
version = "0.1.18"
311
+
source = "registry+https://github.com/rust-lang/crates.io-index"
312
+
checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359"
313
+
dependencies = [
314
+
"const-random-macro",
315
+
]
316
+
317
+
[[package]]
318
+
name = "const-random-macro"
319
+
version = "0.1.16"
320
+
source = "registry+https://github.com/rust-lang/crates.io-index"
321
+
checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e"
322
+
dependencies = [
323
+
"getrandom 0.2.16",
324
+
"once_cell",
325
+
"tiny-keccak",
326
+
]
327
+
328
+
[[package]]
226
329
name = "core-foundation"
227
330
version = "0.9.4"
228
331
source = "registry+https://github.com/rust-lang/crates.io-index"
···
239
342
checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
240
343
241
344
[[package]]
345
+
name = "cpufeatures"
346
+
version = "0.2.17"
347
+
source = "registry+https://github.com/rust-lang/crates.io-index"
348
+
checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
349
+
dependencies = [
350
+
"libc",
351
+
]
352
+
353
+
[[package]]
354
+
name = "crunchy"
355
+
version = "0.2.4"
356
+
source = "registry+https://github.com/rust-lang/crates.io-index"
357
+
checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
358
+
359
+
[[package]]
360
+
name = "crypto-common"
361
+
version = "0.1.6"
362
+
source = "registry+https://github.com/rust-lang/crates.io-index"
363
+
checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
364
+
dependencies = [
365
+
"generic-array",
366
+
"typenum",
367
+
]
368
+
369
+
[[package]]
370
+
name = "deranged"
371
+
version = "0.5.4"
372
+
source = "registry+https://github.com/rust-lang/crates.io-index"
373
+
checksum = "a41953f86f8a05768a6cda24def994fd2f424b04ec5c719cf89989779f199071"
374
+
dependencies = [
375
+
"powerfmt",
376
+
"serde_core",
377
+
]
378
+
379
+
[[package]]
380
+
name = "digest"
381
+
version = "0.10.7"
382
+
source = "registry+https://github.com/rust-lang/crates.io-index"
383
+
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
384
+
dependencies = [
385
+
"block-buffer",
386
+
"crypto-common",
387
+
"subtle",
388
+
]
389
+
390
+
[[package]]
242
391
name = "displaydoc"
243
392
version = "0.2.5"
244
393
source = "registry+https://github.com/rust-lang/crates.io-index"
···
247
396
"proc-macro2",
248
397
"quote",
249
398
"syn",
399
+
]
400
+
401
+
[[package]]
402
+
name = "dlv-list"
403
+
version = "0.5.2"
404
+
source = "registry+https://github.com/rust-lang/crates.io-index"
405
+
checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f"
406
+
dependencies = [
407
+
"const-random",
250
408
]
251
409
252
410
[[package]]
···
435
593
]
436
594
437
595
[[package]]
596
+
name = "generic-array"
597
+
version = "0.14.7"
598
+
source = "registry+https://github.com/rust-lang/crates.io-index"
599
+
checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
600
+
dependencies = [
601
+
"typenum",
602
+
"version_check",
603
+
]
604
+
605
+
[[package]]
438
606
name = "getrandom"
439
607
version = "0.2.16"
440
608
source = "registry+https://github.com/rust-lang/crates.io-index"
···
484
652
485
653
[[package]]
486
654
name = "hashbrown"
655
+
version = "0.14.5"
656
+
source = "registry+https://github.com/rust-lang/crates.io-index"
657
+
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
658
+
659
+
[[package]]
660
+
name = "hashbrown"
487
661
version = "0.16.0"
488
662
source = "registry+https://github.com/rust-lang/crates.io-index"
489
663
checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d"
···
495
669
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
496
670
497
671
[[package]]
672
+
name = "hex"
673
+
version = "0.4.3"
674
+
source = "registry+https://github.com/rust-lang/crates.io-index"
675
+
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
676
+
677
+
[[package]]
678
+
name = "hmac"
679
+
version = "0.12.1"
680
+
source = "registry+https://github.com/rust-lang/crates.io-index"
681
+
checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
682
+
dependencies = [
683
+
"digest",
684
+
]
685
+
686
+
[[package]]
687
+
name = "home"
688
+
version = "0.5.11"
689
+
source = "registry+https://github.com/rust-lang/crates.io-index"
690
+
checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf"
691
+
dependencies = [
692
+
"windows-sys 0.59.0",
693
+
]
694
+
695
+
[[package]]
498
696
name = "http"
499
697
version = "1.3.1"
500
698
source = "registry+https://github.com/rust-lang/crates.io-index"
···
728
926
checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5"
729
927
dependencies = [
730
928
"equivalent",
731
-
"hashbrown",
929
+
"hashbrown 0.16.0",
732
930
]
733
931
734
932
[[package]]
···
839
1037
checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432"
840
1038
841
1039
[[package]]
1040
+
name = "maybe-async"
1041
+
version = "0.2.10"
1042
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1043
+
checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11"
1044
+
dependencies = [
1045
+
"proc-macro2",
1046
+
"quote",
1047
+
"syn",
1048
+
]
1049
+
1050
+
[[package]]
1051
+
name = "md5"
1052
+
version = "0.8.0"
1053
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1054
+
checksum = "ae960838283323069879657ca3de837e9f7bbb4c7bf6ea7f1b290d5e9476d2e0"
1055
+
1056
+
[[package]]
842
1057
name = "memchr"
843
1058
version = "2.7.6"
844
1059
source = "registry+https://github.com/rust-lang/crates.io-index"
···
849
1064
version = "0.3.17"
850
1065
source = "registry+https://github.com/rust-lang/crates.io-index"
851
1066
checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
1067
+
1068
+
[[package]]
1069
+
name = "minidom"
1070
+
version = "0.16.0"
1071
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1072
+
checksum = "e394a0e3c7ccc2daea3dffabe82f09857b6b510cb25af87d54bf3e910ac1642d"
1073
+
dependencies = [
1074
+
"rxml",
1075
+
]
852
1076
853
1077
[[package]]
854
1078
name = "miniz_oxide"
···
888
1112
]
889
1113
890
1114
[[package]]
1115
+
name = "ntapi"
1116
+
version = "0.4.1"
1117
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1118
+
checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4"
1119
+
dependencies = [
1120
+
"winapi",
1121
+
]
1122
+
1123
+
[[package]]
1124
+
name = "num-conv"
1125
+
version = "0.1.0"
1126
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1127
+
checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
1128
+
1129
+
[[package]]
1130
+
name = "objc2-core-foundation"
1131
+
version = "0.3.2"
1132
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1133
+
checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536"
1134
+
dependencies = [
1135
+
"bitflags",
1136
+
]
1137
+
1138
+
[[package]]
1139
+
name = "objc2-io-kit"
1140
+
version = "0.3.2"
1141
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1142
+
checksum = "33fafba39597d6dc1fb709123dfa8289d39406734be322956a69f0931c73bb15"
1143
+
dependencies = [
1144
+
"libc",
1145
+
"objc2-core-foundation",
1146
+
]
1147
+
1148
+
[[package]]
891
1149
name = "object"
892
1150
version = "0.37.3"
893
1151
source = "registry+https://github.com/rust-lang/crates.io-index"
···
953
1211
]
954
1212
955
1213
[[package]]
1214
+
name = "ordered-multimap"
1215
+
version = "0.7.3"
1216
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1217
+
checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79"
1218
+
dependencies = [
1219
+
"dlv-list",
1220
+
"hashbrown 0.14.5",
1221
+
]
1222
+
1223
+
[[package]]
956
1224
name = "pds_whatsit_compress_test"
957
1225
version = "0.1.0"
958
1226
dependencies = [
···
964
1232
"futures",
965
1233
"log",
966
1234
"reqwest",
1235
+
"rust-s3",
967
1236
"tokio",
968
1237
"tokio-stream",
969
1238
"tokio-util",
···
1018
1287
]
1019
1288
1020
1289
[[package]]
1290
+
name = "powerfmt"
1291
+
version = "0.2.0"
1292
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1293
+
checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
1294
+
1295
+
[[package]]
1021
1296
name = "proc-macro2"
1022
1297
version = "1.0.101"
1023
1298
source = "registry+https://github.com/rust-lang/crates.io-index"
···
1027
1302
]
1028
1303
1029
1304
[[package]]
1305
+
name = "quick-xml"
1306
+
version = "0.38.3"
1307
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1308
+
checksum = "42a232e7487fc2ef313d96dde7948e7a3c05101870d8985e4fd8d26aedd27b89"
1309
+
dependencies = [
1310
+
"memchr",
1311
+
"serde",
1312
+
]
1313
+
1314
+
[[package]]
1030
1315
name = "quote"
1031
1316
version = "1.0.41"
1032
1317
source = "registry+https://github.com/rust-lang/crates.io-index"
···
1128
1413
]
1129
1414
1130
1415
[[package]]
1416
+
name = "rust-ini"
1417
+
version = "0.21.3"
1418
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1419
+
checksum = "796e8d2b6696392a43bea58116b667fb4c29727dc5abd27d6acf338bb4f688c7"
1420
+
dependencies = [
1421
+
"cfg-if",
1422
+
"ordered-multimap",
1423
+
]
1424
+
1425
+
[[package]]
1426
+
name = "rust-s3"
1427
+
version = "0.37.0"
1428
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1429
+
checksum = "94f9b973bd4097f5bb47e5827dcb9fb5dc17e93879e46badc27d2a4e9a4e5588"
1430
+
dependencies = [
1431
+
"async-trait",
1432
+
"aws-creds",
1433
+
"aws-region",
1434
+
"base64",
1435
+
"bytes",
1436
+
"cfg-if",
1437
+
"futures-util",
1438
+
"hex",
1439
+
"hmac",
1440
+
"http",
1441
+
"log",
1442
+
"maybe-async",
1443
+
"md5",
1444
+
"minidom",
1445
+
"percent-encoding",
1446
+
"quick-xml",
1447
+
"reqwest",
1448
+
"serde",
1449
+
"serde_derive",
1450
+
"serde_json",
1451
+
"sha2",
1452
+
"sysinfo",
1453
+
"thiserror",
1454
+
"time",
1455
+
"tokio",
1456
+
"tokio-stream",
1457
+
"url",
1458
+
]
1459
+
1460
+
[[package]]
1131
1461
name = "rustc-demangle"
1132
1462
version = "0.1.26"
1133
1463
source = "registry+https://github.com/rust-lang/crates.io-index"
···
1184
1514
version = "1.0.22"
1185
1515
source = "registry+https://github.com/rust-lang/crates.io-index"
1186
1516
checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
1517
+
1518
+
[[package]]
1519
+
name = "rxml"
1520
+
version = "0.11.1"
1521
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1522
+
checksum = "65bc94b580d0f5a6b7a2d604e597513d3c673154b52ddeccd1d5c32360d945ee"
1523
+
dependencies = [
1524
+
"bytes",
1525
+
"rxml_validation",
1526
+
]
1527
+
1528
+
[[package]]
1529
+
name = "rxml_validation"
1530
+
version = "0.11.0"
1531
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1532
+
checksum = "826e80413b9a35e9d33217b3dcac04cf95f6559d15944b93887a08be5496c4a4"
1533
+
dependencies = [
1534
+
"compact_str",
1535
+
]
1187
1536
1188
1537
[[package]]
1189
1538
name = "ryu"
···
1279
1628
]
1280
1629
1281
1630
[[package]]
1631
+
name = "sha2"
1632
+
version = "0.10.9"
1633
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1634
+
checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
1635
+
dependencies = [
1636
+
"cfg-if",
1637
+
"cpufeatures",
1638
+
"digest",
1639
+
]
1640
+
1641
+
[[package]]
1282
1642
name = "shlex"
1283
1643
version = "1.3.0"
1284
1644
source = "registry+https://github.com/rust-lang/crates.io-index"
···
1313
1673
checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
1314
1674
1315
1675
[[package]]
1676
+
name = "static_assertions"
1677
+
version = "1.1.0"
1678
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1679
+
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
1680
+
1681
+
[[package]]
1316
1682
name = "strsim"
1317
1683
version = "0.11.1"
1318
1684
source = "registry+https://github.com/rust-lang/crates.io-index"
···
1356
1722
]
1357
1723
1358
1724
[[package]]
1725
+
name = "sysinfo"
1726
+
version = "0.37.2"
1727
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1728
+
checksum = "16607d5caffd1c07ce073528f9ed972d88db15dd44023fa57142963be3feb11f"
1729
+
dependencies = [
1730
+
"libc",
1731
+
"memchr",
1732
+
"ntapi",
1733
+
"objc2-core-foundation",
1734
+
"objc2-io-kit",
1735
+
"windows",
1736
+
]
1737
+
1738
+
[[package]]
1359
1739
name = "system-configuration"
1360
1740
version = "0.6.1"
1361
1741
source = "registry+https://github.com/rust-lang/crates.io-index"
···
1390
1770
]
1391
1771
1392
1772
[[package]]
1773
+
name = "thiserror"
1774
+
version = "2.0.17"
1775
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1776
+
checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8"
1777
+
dependencies = [
1778
+
"thiserror-impl",
1779
+
]
1780
+
1781
+
[[package]]
1782
+
name = "thiserror-impl"
1783
+
version = "2.0.17"
1784
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1785
+
checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913"
1786
+
dependencies = [
1787
+
"proc-macro2",
1788
+
"quote",
1789
+
"syn",
1790
+
]
1791
+
1792
+
[[package]]
1793
+
name = "time"
1794
+
version = "0.3.44"
1795
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1796
+
checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d"
1797
+
dependencies = [
1798
+
"deranged",
1799
+
"itoa",
1800
+
"num-conv",
1801
+
"powerfmt",
1802
+
"serde",
1803
+
"time-core",
1804
+
"time-macros",
1805
+
]
1806
+
1807
+
[[package]]
1808
+
name = "time-core"
1809
+
version = "0.1.6"
1810
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1811
+
checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b"
1812
+
1813
+
[[package]]
1814
+
name = "time-macros"
1815
+
version = "0.2.24"
1816
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1817
+
checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3"
1818
+
dependencies = [
1819
+
"num-conv",
1820
+
"time-core",
1821
+
]
1822
+
1823
+
[[package]]
1824
+
name = "tiny-keccak"
1825
+
version = "2.0.2"
1826
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1827
+
checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
1828
+
dependencies = [
1829
+
"crunchy",
1830
+
]
1831
+
1832
+
[[package]]
1393
1833
name = "tinystr"
1394
1834
version = "0.8.1"
1395
1835
source = "registry+https://github.com/rust-lang/crates.io-index"
···
1544
1984
checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
1545
1985
1546
1986
[[package]]
1987
+
name = "typenum"
1988
+
version = "1.19.0"
1989
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1990
+
checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
1991
+
1992
+
[[package]]
1547
1993
name = "unicode-ident"
1548
1994
version = "1.0.19"
1549
1995
source = "registry+https://github.com/rust-lang/crates.io-index"
···
1586
2032
checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
1587
2033
1588
2034
[[package]]
2035
+
name = "version_check"
2036
+
version = "0.9.5"
2037
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2038
+
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
2039
+
2040
+
[[package]]
1589
2041
name = "want"
1590
2042
version = "0.3.1"
1591
2043
source = "registry+https://github.com/rust-lang/crates.io-index"
···
1714
2166
]
1715
2167
1716
2168
[[package]]
2169
+
name = "winapi"
2170
+
version = "0.3.9"
2171
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2172
+
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
2173
+
dependencies = [
2174
+
"winapi-i686-pc-windows-gnu",
2175
+
"winapi-x86_64-pc-windows-gnu",
2176
+
]
2177
+
2178
+
[[package]]
2179
+
name = "winapi-i686-pc-windows-gnu"
2180
+
version = "0.4.0"
2181
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2182
+
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
2183
+
2184
+
[[package]]
2185
+
name = "winapi-x86_64-pc-windows-gnu"
2186
+
version = "0.4.0"
2187
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2188
+
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
2189
+
2190
+
[[package]]
2191
+
name = "windows"
2192
+
version = "0.61.3"
2193
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2194
+
checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893"
2195
+
dependencies = [
2196
+
"windows-collections",
2197
+
"windows-core",
2198
+
"windows-future",
2199
+
"windows-link 0.1.3",
2200
+
"windows-numerics",
2201
+
]
2202
+
2203
+
[[package]]
2204
+
name = "windows-collections"
2205
+
version = "0.2.0"
2206
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2207
+
checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8"
2208
+
dependencies = [
2209
+
"windows-core",
2210
+
]
2211
+
2212
+
[[package]]
2213
+
name = "windows-core"
2214
+
version = "0.61.2"
2215
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2216
+
checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3"
2217
+
dependencies = [
2218
+
"windows-implement",
2219
+
"windows-interface",
2220
+
"windows-link 0.1.3",
2221
+
"windows-result",
2222
+
"windows-strings",
2223
+
]
2224
+
2225
+
[[package]]
2226
+
name = "windows-future"
2227
+
version = "0.2.1"
2228
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2229
+
checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e"
2230
+
dependencies = [
2231
+
"windows-core",
2232
+
"windows-link 0.1.3",
2233
+
"windows-threading",
2234
+
]
2235
+
2236
+
[[package]]
2237
+
name = "windows-implement"
2238
+
version = "0.60.2"
2239
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2240
+
checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
2241
+
dependencies = [
2242
+
"proc-macro2",
2243
+
"quote",
2244
+
"syn",
2245
+
]
2246
+
2247
+
[[package]]
2248
+
name = "windows-interface"
2249
+
version = "0.59.3"
2250
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2251
+
checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
2252
+
dependencies = [
2253
+
"proc-macro2",
2254
+
"quote",
2255
+
"syn",
2256
+
]
2257
+
2258
+
[[package]]
1717
2259
name = "windows-link"
1718
2260
version = "0.1.3"
1719
2261
source = "registry+https://github.com/rust-lang/crates.io-index"
···
1724
2266
version = "0.2.1"
1725
2267
source = "registry+https://github.com/rust-lang/crates.io-index"
1726
2268
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
2269
+
2270
+
[[package]]
2271
+
name = "windows-numerics"
2272
+
version = "0.2.0"
2273
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2274
+
checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1"
2275
+
dependencies = [
2276
+
"windows-core",
2277
+
"windows-link 0.1.3",
2278
+
]
1727
2279
1728
2280
[[package]]
1729
2281
name = "windows-registry"
···
1821
2373
"windows_x86_64_gnu 0.53.1",
1822
2374
"windows_x86_64_gnullvm 0.53.1",
1823
2375
"windows_x86_64_msvc 0.53.1",
2376
+
]
2377
+
2378
+
[[package]]
2379
+
name = "windows-threading"
2380
+
version = "0.1.0"
2381
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2382
+
checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6"
2383
+
dependencies = [
2384
+
"windows-link 0.1.3",
1824
2385
]
1825
2386
1826
2387
[[package]]
+2
-1
Cargo.toml
+2
-1
Cargo.toml
···
14
14
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
15
15
futures = "0.3.31"
16
16
tokio-util = { version = "0.7.16", features = ["compat"] }
17
-
tokio-stream = { version = "0.1.17", features = ["io-util"] }
17
+
tokio-stream = { version = "0.1.17", features = ["io-util"] }
18
+
rust-s3 = "0.37.0"
+38
-22
src/main.rs
+38
-22
src/main.rs
···
1
-
use std::fs;
1
+
use std::{env, fs};
2
2
use std::path::PathBuf;
3
3
4
4
use clap::{Parser, Subcommand};
···
9
9
use tokio_util::compat::FuturesAsyncReadCompatExt;
10
10
use tokio_stream::wrappers::LinesStream;
11
11
use std::future::Future;
12
+
use s3::{Bucket, Region};
13
+
use s3::creds::Credentials;
12
14
13
15
#[derive(Parser, Debug)]
14
16
#[command(author, version, about = "PDS Whatsit Compress Test CLI", long_about = None)]
···
22
24
/// Export data from a PDS instance
23
25
Export {
24
26
/// Output directory path (defaults to ./export)
25
-
#[arg(short, long)]
26
-
out: Option<PathBuf>,
27
+
// #[arg(short, long)]
28
+
// out: Option<PathBuf>,
27
29
28
30
/// The DID to export
29
31
#[arg(long)]
···
63
65
let cli = Cli::parse();
64
66
65
67
match cli.command {
66
-
Commands::Export { out, did, pds_url } => {
67
-
let out_dir = out.unwrap_or_else(|| PathBuf::from("export"));
68
-
69
-
if let Err(e) = ensure_dir(&out_dir) {
70
-
error!("Failed to create/export directory {}: {}", out_dir.display(), e);
71
-
std::process::exit(1);
72
-
}
68
+
Commands::Export { did, pds_url } => {
73
69
74
70
info!(
75
-
"Export requested: did={}, pds_url={}, out_dir={}",
71
+
"Export requested: did={}, pds_url={}",
76
72
did,
77
73
pds_url,
78
-
out_dir.display()
79
74
);
80
75
76
+
match do_work(pds_url, did).await{
77
+
Ok(_) => {
78
+
info!("Export completed");
79
+
}
80
+
Err(err) => {
81
+
error!("Export failed: {}", err);
82
+
}
83
+
}
81
84
// Placeholder for actual export logic.
82
85
// Implement your export functionality here.
83
-
println!(
84
-
"Export would run here with did={} pds_url={} out_dir={}",
85
-
did,
86
-
pds_url,
87
-
out_dir.display()
88
-
);
86
+
// println!(
87
+
// "Export would run here with did={} pds_url={} out_dir={}",
88
+
// did,
89
+
// pds_url,
90
+
// out_dir.display()
91
+
// );
89
92
}
90
93
}
91
94
}
92
95
93
96
async fn do_work(pds_url: String, did: String) -> anyhow::Result<()>{
94
97
use futures::TryStreamExt;
95
-
// application/vnd.ipld.car
96
-
let mut client = reqwest::Client::new();
97
-
let response = client
98
+
let atproto_client = reqwest::Client::new();
99
+
100
+
101
+
// Custom region requires valid region name and endpoint
102
+
let region_name = env::var("S3_REGION")?;
103
+
let endpoint = env::var("S3_ENDPOINT")?;
104
+
let region = Region::Custom { region: region_name, endpoint };
105
+
106
+
let bucket = Bucket::new(
107
+
env::var("S3_BUCKET_NAME")?.as_str(),
108
+
region,
109
+
// Credentials are collected from environment, config, profile or instance metadata
110
+
Credentials::new(Some(env::var("S3_ACCESS_KEY")?.as_str()), Some(env::var("S3_SECRET_KEY")?.as_str()), None, None, None)?,
111
+
)?;
112
+
113
+
let mut response = atproto_client
98
114
.get(format!("{pds_url}/xrpc/com.atproto.sync.getRepo?did={did}"))
99
115
.header(ACCEPT, "application/vnd.ipld.car")
100
116
.send()
···
104
120
.map_err(|e| futures::io::Error::new(futures::io::ErrorKind::Other, e))
105
121
.into_async_read()
106
122
.compat();
107
-
123
+
bucket.put_object_stream(&mut response, did.as_str()).await?;
108
124
Ok(())
109
125
110
126