tangled
alpha
login
or
join now
naim.abda.nl
/
lumen
Your locally hosted lumina server for IDAPro
0
fork
atom
overview
issues
pulls
pipelines
Compare changes
Choose any two refs to compare.
base:
wip-users
update-deps
rename-rpc-fields
private-mode
pr/emcifuntik/119
master
func-histories
func-ea64s
dependabot/cargo/diesel-async-0.4.1
allow_deletes_hellores
add-limits-cfg
v0.4.0
v0.3.0
v0.2.0
v0.1.0
compare:
wip-users
update-deps
rename-rpc-fields
private-mode
pr/emcifuntik/119
master
func-histories
func-ea64s
dependabot/cargo/diesel-async-0.4.1
allow_deletes_hellores
add-limits-cfg
v0.4.0
v0.3.0
v0.2.0
v0.1.0
go
+557
-527
12 changed files
expand all
collapse all
unified
split
Cargo.lock
Dockerfile
common
Cargo.toml
migrations
2024-03-22-062826_func-ea64s
down.sql
up.sql
src
db
mod.rs
schema_auto.rs
rpc
messages.rs
mod.rs
web
api.rs
lumen
Cargo.toml
src
server.rs
+436
-410
Cargo.lock
···
4
5
[[package]]
6
name = "addr2line"
7
-
version = "0.21.0"
8
source = "registry+https://github.com/rust-lang/crates.io-index"
9
-
checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
10
dependencies = [
11
"gimli",
12
]
···
19
20
[[package]]
21
name = "aho-corasick"
22
-
version = "1.1.2"
23
source = "registry+https://github.com/rust-lang/crates.io-index"
24
-
checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
25
dependencies = [
26
"memchr",
27
]
28
29
[[package]]
30
name = "anstream"
31
-
version = "0.6.5"
32
source = "registry+https://github.com/rust-lang/crates.io-index"
33
-
checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6"
34
dependencies = [
35
"anstyle",
36
"anstyle-parse",
37
"anstyle-query",
38
"anstyle-wincon",
39
"colorchoice",
0
40
"utf8parse",
41
]
42
43
[[package]]
44
name = "anstyle"
45
-
version = "1.0.4"
46
source = "registry+https://github.com/rust-lang/crates.io-index"
47
-
checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
48
49
[[package]]
50
name = "anstyle-parse"
51
-
version = "0.2.3"
52
source = "registry+https://github.com/rust-lang/crates.io-index"
53
-
checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
54
dependencies = [
55
"utf8parse",
56
]
57
58
[[package]]
59
name = "anstyle-query"
60
-
version = "1.0.2"
61
source = "registry+https://github.com/rust-lang/crates.io-index"
62
-
checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
63
dependencies = [
64
"windows-sys 0.52.0",
65
]
66
67
[[package]]
68
name = "anstyle-wincon"
69
-
version = "3.0.2"
70
source = "registry+https://github.com/rust-lang/crates.io-index"
71
-
checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
72
dependencies = [
73
"anstyle",
74
"windows-sys 0.52.0",
···
76
77
[[package]]
78
name = "anyhow"
79
-
version = "1.0.78"
80
source = "registry+https://github.com/rust-lang/crates.io-index"
81
-
checksum = "ca87830a3e3fb156dc96cfbd31cb620265dd053be734723f22b760d6cc3c3051"
82
83
[[package]]
84
name = "async-trait"
85
-
version = "0.1.76"
86
source = "registry+https://github.com/rust-lang/crates.io-index"
87
-
checksum = "531b97fb4cd3dfdce92c35dedbfdc1f0b9d8091c8ca943d6dae340ef5012d514"
88
dependencies = [
89
"proc-macro2",
90
"quote",
···
93
94
[[package]]
95
name = "autocfg"
96
-
version = "1.1.0"
97
source = "registry+https://github.com/rust-lang/crates.io-index"
98
-
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
99
100
[[package]]
101
name = "backtrace"
102
-
version = "0.3.69"
103
source = "registry+https://github.com/rust-lang/crates.io-index"
104
-
checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
105
dependencies = [
106
"addr2line",
107
"cc",
···
114
115
[[package]]
116
name = "base64"
117
-
version = "0.21.5"
118
source = "registry+https://github.com/rust-lang/crates.io-index"
119
-
checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
0
0
0
0
0
0
120
121
[[package]]
122
name = "bb8"
123
-
version = "0.8.1"
124
source = "registry+https://github.com/rust-lang/crates.io-index"
125
-
checksum = "98b4b0f25f18bcdc3ac72bdb486ed0acf7e185221fd4dc985bc15db5800b0ba2"
126
dependencies = [
127
"async-trait",
128
-
"futures-channel",
129
"futures-util",
130
"parking_lot",
131
"tokio",
···
145
146
[[package]]
147
name = "bitflags"
148
-
version = "2.4.1"
149
source = "registry+https://github.com/rust-lang/crates.io-index"
150
-
checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
151
152
[[package]]
153
name = "block-buffer"
···
160
161
[[package]]
162
name = "bumpalo"
163
-
version = "3.14.0"
164
source = "registry+https://github.com/rust-lang/crates.io-index"
165
-
checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
166
167
[[package]]
168
name = "byteorder"
···
172
173
[[package]]
174
name = "bytes"
175
-
version = "1.5.0"
176
source = "registry+https://github.com/rust-lang/crates.io-index"
177
-
checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
178
179
[[package]]
180
name = "cc"
181
-
version = "1.0.83"
182
source = "registry+https://github.com/rust-lang/crates.io-index"
183
-
checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
184
-
dependencies = [
185
-
"libc",
186
-
]
187
188
[[package]]
189
name = "cfg-if"
···
193
194
[[package]]
195
name = "clap"
196
-
version = "4.4.12"
197
source = "registry+https://github.com/rust-lang/crates.io-index"
198
-
checksum = "dcfab8ba68f3668e89f6ff60f5b205cea56aa7b769451a59f34b8682f51c056d"
199
dependencies = [
200
"clap_builder",
201
]
202
203
[[package]]
204
name = "clap_builder"
205
-
version = "4.4.12"
206
source = "registry+https://github.com/rust-lang/crates.io-index"
207
-
checksum = "fb7fb5e4e979aec3be7791562fcba452f94ad85e954da024396433e0e25a79e9"
208
dependencies = [
209
"anstream",
210
"anstyle",
···
214
215
[[package]]
216
name = "clap_lex"
217
-
version = "0.6.0"
218
source = "registry+https://github.com/rust-lang/crates.io-index"
219
-
checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
220
221
[[package]]
222
name = "colorchoice"
223
-
version = "1.0.0"
224
source = "registry+https://github.com/rust-lang/crates.io-index"
225
-
checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
226
227
[[package]]
228
name = "common"
···
257
258
[[package]]
259
name = "core-foundation-sys"
260
-
version = "0.8.6"
261
source = "registry+https://github.com/rust-lang/crates.io-index"
262
-
checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
263
264
[[package]]
265
name = "cpufeatures"
266
-
version = "0.2.11"
267
source = "registry+https://github.com/rust-lang/crates.io-index"
268
-
checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
269
dependencies = [
270
"libc",
271
]
···
281
]
282
283
[[package]]
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
284
name = "data-encoding"
285
-
version = "2.5.0"
286
source = "registry+https://github.com/rust-lang/crates.io-index"
287
-
checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
288
289
[[package]]
290
name = "deranged"
···
297
298
[[package]]
299
name = "diesel"
300
-
version = "2.1.4"
301
source = "registry+https://github.com/rust-lang/crates.io-index"
302
-
checksum = "62c6fcf842f17f8c78ecf7c81d75c5ce84436b41ee07e03f490fbb5f5a8731d8"
303
dependencies = [
304
-
"bitflags 2.4.1",
305
"byteorder",
306
"diesel_derives",
307
"itoa",
···
310
311
[[package]]
312
name = "diesel-async"
313
-
version = "0.4.1"
314
source = "registry+https://github.com/rust-lang/crates.io-index"
315
-
checksum = "acada1517534c92d3f382217b485db8a8638f111b0e3f2a2a8e26165050f77be"
316
dependencies = [
317
"async-trait",
318
"bb8",
···
325
326
[[package]]
327
name = "diesel_derives"
328
-
version = "2.1.2"
329
source = "registry+https://github.com/rust-lang/crates.io-index"
330
-
checksum = "ef8337737574f55a468005a83499da720f20c65586241ffea339db9ecdfd2b44"
331
dependencies = [
332
"diesel_table_macro_syntax",
0
333
"proc-macro2",
334
"quote",
335
"syn",
···
337
338
[[package]]
339
name = "diesel_table_macro_syntax"
340
-
version = "0.1.0"
341
source = "registry+https://github.com/rust-lang/crates.io-index"
342
-
checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5"
343
dependencies = [
344
"syn",
345
]
···
356
]
357
358
[[package]]
0
0
0
0
0
0
0
0
0
0
0
0
0
0
359
name = "dtoa"
360
version = "1.0.9"
361
source = "registry+https://github.com/rust-lang/crates.io-index"
362
checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653"
0
0
0
0
0
0
363
364
[[package]]
365
name = "encoding_rs"
366
-
version = "0.8.33"
367
source = "registry+https://github.com/rust-lang/crates.io-index"
368
-
checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
369
dependencies = [
370
"cfg-if",
371
]
372
373
[[package]]
374
name = "env_logger"
375
-
version = "0.10.1"
376
source = "registry+https://github.com/rust-lang/crates.io-index"
377
-
checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece"
378
dependencies = [
379
"humantime",
380
"is-terminal",
···
391
392
[[package]]
393
name = "errno"
394
-
version = "0.3.8"
395
source = "registry+https://github.com/rust-lang/crates.io-index"
396
-
checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
397
dependencies = [
398
"libc",
399
"windows-sys 0.52.0",
···
407
408
[[package]]
409
name = "fastrand"
410
-
version = "2.0.1"
411
-
source = "registry+https://github.com/rust-lang/crates.io-index"
412
-
checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
413
-
414
-
[[package]]
415
-
name = "finl_unicode"
416
-
version = "1.2.0"
417
source = "registry+https://github.com/rust-lang/crates.io-index"
418
-
checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6"
419
420
[[package]]
421
name = "fnv"
···
548
549
[[package]]
550
name = "getrandom"
551
-
version = "0.2.11"
552
source = "registry+https://github.com/rust-lang/crates.io-index"
553
-
checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
554
dependencies = [
555
"cfg-if",
556
"libc",
···
559
560
[[package]]
561
name = "gimli"
562
-
version = "0.28.1"
563
source = "registry+https://github.com/rust-lang/crates.io-index"
564
-
checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
565
566
[[package]]
567
name = "h2"
568
-
version = "0.3.24"
569
source = "registry+https://github.com/rust-lang/crates.io-index"
570
-
checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
571
dependencies = [
572
"bytes",
573
"fnv",
574
"futures-core",
575
"futures-sink",
576
"futures-util",
577
-
"http",
578
"indexmap",
579
"slab",
580
"tokio",
···
584
585
[[package]]
586
name = "hashbrown"
587
-
version = "0.14.3"
588
source = "registry+https://github.com/rust-lang/crates.io-index"
589
-
checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
590
591
[[package]]
592
name = "headers"
···
594
source = "registry+https://github.com/rust-lang/crates.io-index"
595
checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270"
596
dependencies = [
597
-
"base64",
598
"bytes",
599
"headers-core",
600
-
"http",
601
"httpdate",
602
"mime",
603
"sha1",
···
609
source = "registry+https://github.com/rust-lang/crates.io-index"
610
checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429"
611
dependencies = [
612
-
"http",
613
]
0
0
0
0
0
0
614
615
[[package]]
616
name = "hermit-abi"
617
-
version = "0.3.3"
618
source = "registry+https://github.com/rust-lang/crates.io-index"
619
-
checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
620
621
[[package]]
622
name = "hmac"
···
629
630
[[package]]
631
name = "http"
632
-
version = "0.2.11"
0
0
0
0
0
0
0
0
0
0
0
633
source = "registry+https://github.com/rust-lang/crates.io-index"
634
-
checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
635
dependencies = [
636
"bytes",
637
"fnv",
···
645
checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
646
dependencies = [
647
"bytes",
648
-
"http",
649
"pin-project-lite",
650
]
651
652
[[package]]
653
name = "httparse"
654
-
version = "1.8.0"
655
source = "registry+https://github.com/rust-lang/crates.io-index"
656
-
checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
657
658
[[package]]
659
name = "httpdate"
···
669
670
[[package]]
671
name = "hyper"
672
-
version = "0.14.28"
673
source = "registry+https://github.com/rust-lang/crates.io-index"
674
-
checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
675
dependencies = [
676
"bytes",
677
"futures-channel",
678
"futures-core",
679
"futures-util",
680
"h2",
681
-
"http",
682
"http-body",
683
"httparse",
684
"httpdate",
···
692
]
693
694
[[package]]
0
0
0
0
0
0
695
name = "idna"
696
version = "0.5.0"
697
source = "registry+https://github.com/rust-lang/crates.io-index"
···
703
704
[[package]]
705
name = "indexmap"
706
-
version = "2.1.0"
707
source = "registry+https://github.com/rust-lang/crates.io-index"
708
-
checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
709
dependencies = [
710
"equivalent",
711
"hashbrown",
···
713
714
[[package]]
715
name = "is-terminal"
716
-
version = "0.4.10"
717
source = "registry+https://github.com/rust-lang/crates.io-index"
718
-
checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455"
719
dependencies = [
720
"hermit-abi",
721
-
"rustix",
722
"windows-sys 0.52.0",
723
]
0
0
0
0
0
0
724
725
[[package]]
726
name = "itoa"
727
-
version = "1.0.10"
728
source = "registry+https://github.com/rust-lang/crates.io-index"
729
-
checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
730
731
[[package]]
732
name = "js-sys"
733
-
version = "0.3.66"
734
source = "registry+https://github.com/rust-lang/crates.io-index"
735
-
checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
736
dependencies = [
737
"wasm-bindgen",
738
]
739
740
[[package]]
741
-
name = "lazy_static"
742
-
version = "1.4.0"
743
-
source = "registry+https://github.com/rust-lang/crates.io-index"
744
-
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
745
-
746
-
[[package]]
747
name = "libc"
748
-
version = "0.2.151"
749
source = "registry+https://github.com/rust-lang/crates.io-index"
750
-
checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
751
752
[[package]]
753
name = "linux-raw-sys"
754
-
version = "0.4.12"
755
source = "registry+https://github.com/rust-lang/crates.io-index"
756
-
checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
757
758
[[package]]
759
name = "lock_api"
760
-
version = "0.4.11"
761
source = "registry+https://github.com/rust-lang/crates.io-index"
762
-
checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
763
dependencies = [
764
"autocfg",
765
"scopeguard",
···
767
768
[[package]]
769
name = "log"
770
-
version = "0.4.20"
771
source = "registry+https://github.com/rust-lang/crates.io-index"
772
-
checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
773
774
[[package]]
775
name = "lumen"
···
798
799
[[package]]
800
name = "memchr"
801
-
version = "2.7.1"
802
source = "registry+https://github.com/rust-lang/crates.io-index"
803
-
checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
804
805
[[package]]
806
name = "mime"
···
810
811
[[package]]
812
name = "mime_guess"
813
-
version = "2.0.4"
814
source = "registry+https://github.com/rust-lang/crates.io-index"
815
-
checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
816
dependencies = [
817
"mime",
818
"unicase",
···
820
821
[[package]]
822
name = "miniz_oxide"
823
-
version = "0.7.1"
824
source = "registry+https://github.com/rust-lang/crates.io-index"
825
-
checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
826
dependencies = [
827
"adler",
828
]
829
830
[[package]]
831
name = "mio"
832
-
version = "0.8.11"
833
source = "registry+https://github.com/rust-lang/crates.io-index"
834
-
checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
835
dependencies = [
0
836
"libc",
837
"wasi",
838
-
"windows-sys 0.48.0",
839
]
840
841
[[package]]
···
847
"bytes",
848
"encoding_rs",
849
"futures-util",
850
-
"http",
851
"httparse",
852
"log",
853
"memchr",
···
858
859
[[package]]
860
name = "native-tls"
861
-
version = "0.2.11"
862
source = "registry+https://github.com/rust-lang/crates.io-index"
863
-
checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
864
dependencies = [
865
-
"lazy_static",
866
"libc",
867
"log",
868
"openssl",
···
875
]
876
877
[[package]]
878
-
name = "num_cpus"
879
-
version = "1.16.0"
880
source = "registry+https://github.com/rust-lang/crates.io-index"
881
-
checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
882
-
dependencies = [
883
-
"hermit-abi",
884
-
"libc",
885
-
]
886
887
[[package]]
888
name = "object"
889
-
version = "0.32.2"
890
source = "registry+https://github.com/rust-lang/crates.io-index"
891
-
checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
892
dependencies = [
893
"memchr",
894
]
···
901
902
[[package]]
903
name = "openssl"
904
-
version = "0.10.62"
905
source = "registry+https://github.com/rust-lang/crates.io-index"
906
-
checksum = "8cde4d2d9200ad5909f8dac647e29482e07c3a35de8a13fce7c9c7747ad9f671"
907
dependencies = [
908
-
"bitflags 2.4.1",
909
"cfg-if",
910
"foreign-types",
911
"libc",
···
933
934
[[package]]
935
name = "openssl-sys"
936
-
version = "0.9.98"
937
source = "registry+https://github.com/rust-lang/crates.io-index"
938
-
checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7"
939
dependencies = [
940
"cc",
941
"libc",
···
945
946
[[package]]
947
name = "parking_lot"
948
-
version = "0.12.1"
949
source = "registry+https://github.com/rust-lang/crates.io-index"
950
-
checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
951
dependencies = [
952
"lock_api",
953
"parking_lot_core",
···
955
956
[[package]]
957
name = "parking_lot_core"
958
-
version = "0.9.9"
959
source = "registry+https://github.com/rust-lang/crates.io-index"
960
-
checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
961
dependencies = [
962
"cfg-if",
963
"libc",
964
-
"redox_syscall",
965
"smallvec",
966
-
"windows-targets 0.48.5",
967
]
968
969
[[package]]
···
992
993
[[package]]
994
name = "pin-project"
995
-
version = "1.1.3"
996
source = "registry+https://github.com/rust-lang/crates.io-index"
997
-
checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
998
dependencies = [
999
"pin-project-internal",
1000
]
1001
1002
[[package]]
1003
name = "pin-project-internal"
1004
-
version = "1.1.3"
1005
source = "registry+https://github.com/rust-lang/crates.io-index"
1006
-
checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
1007
dependencies = [
1008
"proc-macro2",
1009
"quote",
···
1012
1013
[[package]]
1014
name = "pin-project-lite"
1015
-
version = "0.2.13"
1016
source = "registry+https://github.com/rust-lang/crates.io-index"
1017
-
checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
1018
1019
[[package]]
1020
name = "pin-utils"
···
1024
1025
[[package]]
1026
name = "pkg-config"
1027
-
version = "0.3.28"
1028
source = "registry+https://github.com/rust-lang/crates.io-index"
1029
-
checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a"
1030
1031
[[package]]
1032
name = "postgres-native-tls"
···
1043
1044
[[package]]
1045
name = "postgres-protocol"
1046
-
version = "0.6.6"
1047
source = "registry+https://github.com/rust-lang/crates.io-index"
1048
-
checksum = "49b6c5ef183cd3ab4ba005f1ca64c21e8bd97ce4699cfea9e8d9a2c4958ca520"
1049
dependencies = [
1050
-
"base64",
1051
"byteorder",
1052
"bytes",
1053
"fallible-iterator",
···
1061
1062
[[package]]
1063
name = "postgres-types"
1064
-
version = "0.2.6"
1065
source = "registry+https://github.com/rust-lang/crates.io-index"
1066
-
checksum = "8d2234cdee9408b523530a9b6d2d6b373d1db34f6a8e51dc03ded1828d7fb67c"
1067
dependencies = [
1068
"bytes",
1069
"fallible-iterator",
···
1078
1079
[[package]]
1080
name = "ppv-lite86"
1081
-
version = "0.2.17"
1082
source = "registry+https://github.com/rust-lang/crates.io-index"
1083
-
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
0
0
0
1084
1085
[[package]]
1086
name = "pretty_env_logger"
···
1094
1095
[[package]]
1096
name = "proc-macro2"
1097
-
version = "1.0.72"
1098
source = "registry+https://github.com/rust-lang/crates.io-index"
1099
-
checksum = "a293318316cf6478ec1ad2a21c49390a8d5b5eae9fab736467d93fbc0edc29c5"
1100
dependencies = [
1101
"unicode-ident",
1102
]
1103
1104
[[package]]
1105
name = "prometheus-client"
1106
-
version = "0.22.0"
1107
source = "registry+https://github.com/rust-lang/crates.io-index"
1108
-
checksum = "510c4f1c9d81d556458f94c98f857748130ea9737bbd6053da497503b26ea63c"
1109
dependencies = [
1110
"dtoa",
1111
"itoa",
···
1126
1127
[[package]]
1128
name = "quote"
1129
-
version = "1.0.34"
1130
source = "registry+https://github.com/rust-lang/crates.io-index"
1131
-
checksum = "22a37c9326af5ed140c86a46655b5278de879853be5573c01df185b6f49a580a"
1132
dependencies = [
1133
"proc-macro2",
1134
]
···
1173
]
1174
1175
[[package]]
0
0
0
0
0
0
0
0
0
1176
name = "regex"
1177
-
version = "1.10.2"
1178
source = "registry+https://github.com/rust-lang/crates.io-index"
1179
-
checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
1180
dependencies = [
1181
"aho-corasick",
1182
"memchr",
···
1186
1187
[[package]]
1188
name = "regex-automata"
1189
-
version = "0.4.3"
1190
source = "registry+https://github.com/rust-lang/crates.io-index"
1191
-
checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
1192
dependencies = [
1193
"aho-corasick",
1194
"memchr",
···
1197
1198
[[package]]
1199
name = "regex-syntax"
1200
-
version = "0.8.2"
1201
source = "registry+https://github.com/rust-lang/crates.io-index"
1202
-
checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
1203
1204
[[package]]
1205
name = "rustc-demangle"
1206
-
version = "0.1.23"
1207
source = "registry+https://github.com/rust-lang/crates.io-index"
1208
-
checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
1209
1210
[[package]]
1211
name = "rustix"
1212
-
version = "0.38.28"
1213
source = "registry+https://github.com/rust-lang/crates.io-index"
1214
-
checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
1215
dependencies = [
1216
-
"bitflags 2.4.1",
1217
"errno",
1218
"libc",
1219
"linux-raw-sys",
1220
"windows-sys 0.52.0",
1221
-
]
1222
-
1223
-
[[package]]
1224
-
name = "rustls-pemfile"
1225
-
version = "1.0.4"
1226
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1227
-
checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
1228
-
dependencies = [
1229
-
"base64",
1230
]
1231
1232
[[package]]
1233
name = "ryu"
1234
-
version = "1.0.16"
1235
source = "registry+https://github.com/rust-lang/crates.io-index"
1236
-
checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
1237
1238
[[package]]
1239
name = "schannel"
···
1268
1269
[[package]]
1270
name = "security-framework"
1271
-
version = "2.9.2"
1272
source = "registry+https://github.com/rust-lang/crates.io-index"
1273
-
checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
1274
dependencies = [
1275
-
"bitflags 1.3.2",
1276
"core-foundation",
1277
"core-foundation-sys",
1278
"libc",
···
1281
1282
[[package]]
1283
name = "security-framework-sys"
1284
-
version = "2.9.1"
1285
source = "registry+https://github.com/rust-lang/crates.io-index"
1286
-
checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
1287
dependencies = [
1288
"core-foundation-sys",
1289
"libc",
···
1291
1292
[[package]]
1293
name = "serde"
1294
-
version = "1.0.193"
1295
source = "registry+https://github.com/rust-lang/crates.io-index"
1296
-
checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
1297
dependencies = [
1298
"serde_derive",
1299
]
1300
1301
[[package]]
1302
name = "serde_derive"
1303
-
version = "1.0.193"
1304
source = "registry+https://github.com/rust-lang/crates.io-index"
1305
-
checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
1306
dependencies = [
1307
"proc-macro2",
1308
"quote",
···
1311
1312
[[package]]
1313
name = "serde_json"
1314
-
version = "1.0.108"
1315
source = "registry+https://github.com/rust-lang/crates.io-index"
1316
-
checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
1317
dependencies = [
1318
"itoa",
0
1319
"ryu",
1320
"serde",
1321
]
1322
1323
[[package]]
1324
name = "serde_spanned"
1325
-
version = "0.6.5"
1326
source = "registry+https://github.com/rust-lang/crates.io-index"
1327
-
checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
1328
dependencies = [
1329
"serde",
1330
]
···
1365
1366
[[package]]
1367
name = "signal-hook-registry"
1368
-
version = "1.4.1"
1369
source = "registry+https://github.com/rust-lang/crates.io-index"
1370
-
checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
1371
dependencies = [
1372
"libc",
1373
]
···
1389
1390
[[package]]
1391
name = "smallvec"
1392
-
version = "1.11.2"
1393
source = "registry+https://github.com/rust-lang/crates.io-index"
1394
-
checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
1395
1396
[[package]]
1397
name = "socket2"
1398
-
version = "0.5.5"
1399
source = "registry+https://github.com/rust-lang/crates.io-index"
1400
-
checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
1401
dependencies = [
1402
"libc",
1403
-
"windows-sys 0.48.0",
1404
]
1405
1406
[[package]]
···
1411
1412
[[package]]
1413
name = "stringprep"
1414
-
version = "0.1.4"
1415
source = "registry+https://github.com/rust-lang/crates.io-index"
1416
-
checksum = "bb41d74e231a107a1b4ee36bd1214b11285b77768d2e3824aedafa988fd36ee6"
1417
dependencies = [
1418
-
"finl_unicode",
1419
"unicode-bidi",
1420
"unicode-normalization",
0
1421
]
1422
1423
[[package]]
1424
name = "strsim"
1425
-
version = "0.10.0"
1426
source = "registry+https://github.com/rust-lang/crates.io-index"
1427
-
checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
1428
1429
[[package]]
1430
name = "subtle"
1431
-
version = "2.5.0"
1432
source = "registry+https://github.com/rust-lang/crates.io-index"
1433
-
checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
1434
1435
[[package]]
1436
name = "syn"
1437
-
version = "2.0.43"
1438
source = "registry+https://github.com/rust-lang/crates.io-index"
1439
-
checksum = "ee659fb5f3d355364e1f3e5bc10fb82068efbf824a1e9d1c9504244a6469ad53"
1440
dependencies = [
1441
"proc-macro2",
1442
"quote",
···
1445
1446
[[package]]
1447
name = "tempfile"
1448
-
version = "3.9.0"
1449
source = "registry+https://github.com/rust-lang/crates.io-index"
1450
-
checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
1451
dependencies = [
1452
"cfg-if",
1453
"fastrand",
1454
-
"redox_syscall",
1455
"rustix",
1456
-
"windows-sys 0.52.0",
1457
]
1458
1459
[[package]]
1460
name = "termcolor"
1461
-
version = "1.4.0"
1462
source = "registry+https://github.com/rust-lang/crates.io-index"
1463
-
checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
1464
dependencies = [
1465
"winapi-util",
1466
]
1467
1468
[[package]]
1469
name = "thiserror"
1470
-
version = "1.0.53"
1471
source = "registry+https://github.com/rust-lang/crates.io-index"
1472
-
checksum = "b2cd5904763bad08ad5513ddbb12cf2ae273ca53fa9f68e843e236ec6dfccc09"
1473
dependencies = [
1474
"thiserror-impl",
1475
]
1476
1477
[[package]]
1478
name = "thiserror-impl"
1479
-
version = "1.0.53"
1480
source = "registry+https://github.com/rust-lang/crates.io-index"
1481
-
checksum = "3dcf4a824cce0aeacd6f38ae6f24234c8e80d68632338ebaa1443b5df9e29e19"
1482
dependencies = [
1483
"proc-macro2",
1484
"quote",
···
1487
1488
[[package]]
1489
name = "time"
1490
-
version = "0.3.31"
1491
source = "registry+https://github.com/rust-lang/crates.io-index"
1492
-
checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e"
1493
dependencies = [
1494
"deranged",
0
1495
"powerfmt",
1496
"serde",
1497
"time-core",
···
1506
1507
[[package]]
1508
name = "time-macros"
1509
-
version = "0.2.16"
1510
source = "registry+https://github.com/rust-lang/crates.io-index"
1511
-
checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f"
1512
dependencies = [
0
1513
"time-core",
1514
]
1515
1516
[[package]]
1517
name = "tinyvec"
1518
-
version = "1.6.0"
1519
source = "registry+https://github.com/rust-lang/crates.io-index"
1520
-
checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
1521
dependencies = [
1522
"tinyvec_macros",
1523
]
···
1530
1531
[[package]]
1532
name = "tokio"
1533
-
version = "1.35.1"
1534
source = "registry+https://github.com/rust-lang/crates.io-index"
1535
-
checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
1536
dependencies = [
1537
"backtrace",
1538
"bytes",
1539
"libc",
1540
"mio",
1541
-
"num_cpus",
1542
"parking_lot",
1543
"pin-project-lite",
1544
"signal-hook-registry",
1545
"socket2",
1546
"tokio-macros",
1547
-
"windows-sys 0.48.0",
1548
]
1549
1550
[[package]]
1551
name = "tokio-macros"
1552
-
version = "2.2.0"
1553
source = "registry+https://github.com/rust-lang/crates.io-index"
1554
-
checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
1555
dependencies = [
1556
"proc-macro2",
1557
"quote",
···
1570
1571
[[package]]
1572
name = "tokio-postgres"
1573
-
version = "0.7.10"
1574
source = "registry+https://github.com/rust-lang/crates.io-index"
1575
-
checksum = "d340244b32d920260ae7448cb72b6e238bddc3d4f7603394e7dd46ed8e48f5b8"
1576
dependencies = [
1577
"async-trait",
1578
"byteorder",
···
1595
]
1596
1597
[[package]]
1598
-
name = "tokio-stream"
1599
-
version = "0.1.14"
1600
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1601
-
checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
1602
-
dependencies = [
1603
-
"futures-core",
1604
-
"pin-project-lite",
1605
-
"tokio",
1606
-
]
1607
-
1608
-
[[package]]
1609
name = "tokio-tungstenite"
1610
-
version = "0.20.1"
1611
source = "registry+https://github.com/rust-lang/crates.io-index"
1612
-
checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c"
1613
dependencies = [
1614
"futures-util",
1615
"log",
···
1619
1620
[[package]]
1621
name = "tokio-util"
1622
-
version = "0.7.10"
1623
source = "registry+https://github.com/rust-lang/crates.io-index"
1624
-
checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
1625
dependencies = [
1626
"bytes",
1627
"futures-core",
1628
"futures-sink",
1629
"pin-project-lite",
1630
"tokio",
1631
-
"tracing",
1632
]
1633
1634
[[package]]
1635
name = "toml"
1636
-
version = "0.8.8"
1637
source = "registry+https://github.com/rust-lang/crates.io-index"
1638
-
checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
1639
dependencies = [
1640
"serde",
1641
"serde_spanned",
···
1645
1646
[[package]]
1647
name = "toml_datetime"
1648
-
version = "0.6.5"
1649
source = "registry+https://github.com/rust-lang/crates.io-index"
1650
-
checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
1651
dependencies = [
1652
"serde",
1653
]
1654
1655
[[package]]
1656
name = "toml_edit"
1657
-
version = "0.21.0"
1658
source = "registry+https://github.com/rust-lang/crates.io-index"
1659
-
checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
1660
dependencies = [
1661
"indexmap",
1662
"serde",
···
1699
1700
[[package]]
1701
name = "tungstenite"
1702
-
version = "0.20.1"
1703
source = "registry+https://github.com/rust-lang/crates.io-index"
1704
-
checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9"
1705
dependencies = [
1706
"byteorder",
1707
"bytes",
1708
"data-encoding",
1709
-
"http",
1710
"httparse",
1711
"log",
1712
"rand",
···
1733
1734
[[package]]
1735
name = "unicode-bidi"
1736
-
version = "0.3.14"
1737
source = "registry+https://github.com/rust-lang/crates.io-index"
1738
-
checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416"
1739
1740
[[package]]
1741
name = "unicode-ident"
···
1745
1746
[[package]]
1747
name = "unicode-normalization"
1748
-
version = "0.1.22"
1749
source = "registry+https://github.com/rust-lang/crates.io-index"
1750
-
checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
1751
dependencies = [
1752
"tinyvec",
1753
]
1754
1755
[[package]]
0
0
0
0
0
0
1756
name = "url"
1757
-
version = "2.5.0"
1758
source = "registry+https://github.com/rust-lang/crates.io-index"
1759
-
checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
1760
dependencies = [
1761
"form_urlencoded",
1762
"idna",
···
1771
1772
[[package]]
1773
name = "utf8parse"
1774
-
version = "0.2.1"
1775
source = "registry+https://github.com/rust-lang/crates.io-index"
1776
-
checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
1777
1778
[[package]]
1779
name = "vcpkg"
···
1783
1784
[[package]]
1785
name = "version_check"
1786
-
version = "0.9.4"
1787
source = "registry+https://github.com/rust-lang/crates.io-index"
1788
-
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
1789
1790
[[package]]
1791
name = "want"
···
1798
1799
[[package]]
1800
name = "warp"
1801
-
version = "0.3.6"
1802
source = "registry+https://github.com/rust-lang/crates.io-index"
1803
-
checksum = "c1e92e22e03ff1230c03a1a8ee37d2f89cd489e2e541b7550d6afad96faed169"
1804
dependencies = [
1805
"bytes",
1806
"futures-channel",
1807
"futures-util",
1808
"headers",
1809
-
"http",
1810
"hyper",
1811
"log",
1812
"mime",
···
1814
"multer",
1815
"percent-encoding",
1816
"pin-project",
1817
-
"rustls-pemfile",
1818
"scoped-tls",
1819
"serde",
1820
"serde_json",
1821
"serde_urlencoded",
1822
"tokio",
1823
-
"tokio-stream",
1824
"tokio-tungstenite",
1825
"tokio-util",
1826
"tower-service",
···
1834
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
1835
1836
[[package]]
0
0
0
0
0
0
1837
name = "wasm-bindgen"
1838
-
version = "0.2.89"
1839
source = "registry+https://github.com/rust-lang/crates.io-index"
1840
-
checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
1841
dependencies = [
1842
"cfg-if",
0
1843
"wasm-bindgen-macro",
1844
]
1845
1846
[[package]]
1847
name = "wasm-bindgen-backend"
1848
-
version = "0.2.89"
1849
source = "registry+https://github.com/rust-lang/crates.io-index"
1850
-
checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
1851
dependencies = [
1852
"bumpalo",
1853
"log",
···
1860
1861
[[package]]
1862
name = "wasm-bindgen-macro"
1863
-
version = "0.2.89"
1864
source = "registry+https://github.com/rust-lang/crates.io-index"
1865
-
checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
1866
dependencies = [
1867
"quote",
1868
"wasm-bindgen-macro-support",
···
1870
1871
[[package]]
1872
name = "wasm-bindgen-macro-support"
1873
-
version = "0.2.89"
1874
source = "registry+https://github.com/rust-lang/crates.io-index"
1875
-
checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
1876
dependencies = [
1877
"proc-macro2",
1878
"quote",
···
1883
1884
[[package]]
1885
name = "wasm-bindgen-shared"
1886
-
version = "0.2.89"
1887
source = "registry+https://github.com/rust-lang/crates.io-index"
1888
-
checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
1889
1890
[[package]]
1891
name = "web-sys"
1892
-
version = "0.3.66"
1893
source = "registry+https://github.com/rust-lang/crates.io-index"
1894
-
checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f"
1895
dependencies = [
1896
"js-sys",
1897
"wasm-bindgen",
···
1899
1900
[[package]]
1901
name = "whoami"
1902
-
version = "1.4.1"
1903
source = "registry+https://github.com/rust-lang/crates.io-index"
1904
-
checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50"
1905
dependencies = [
1906
-
"wasm-bindgen",
0
1907
"web-sys",
1908
]
1909
1910
[[package]]
1911
-
name = "winapi"
1912
-
version = "0.3.9"
1913
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1914
-
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
1915
-
dependencies = [
1916
-
"winapi-i686-pc-windows-gnu",
1917
-
"winapi-x86_64-pc-windows-gnu",
1918
-
]
1919
-
1920
-
[[package]]
1921
-
name = "winapi-i686-pc-windows-gnu"
1922
-
version = "0.4.0"
1923
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1924
-
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
1925
-
1926
-
[[package]]
1927
name = "winapi-util"
1928
-
version = "0.1.6"
1929
source = "registry+https://github.com/rust-lang/crates.io-index"
1930
-
checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
1931
dependencies = [
1932
-
"winapi",
1933
-
]
1934
-
1935
-
[[package]]
1936
-
name = "winapi-x86_64-pc-windows-gnu"
1937
-
version = "0.4.0"
1938
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1939
-
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
1940
-
1941
-
[[package]]
1942
-
name = "windows-sys"
1943
-
version = "0.48.0"
1944
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1945
-
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
1946
-
dependencies = [
1947
-
"windows-targets 0.48.5",
1948
]
1949
1950
[[package]]
···
1953
source = "registry+https://github.com/rust-lang/crates.io-index"
1954
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
1955
dependencies = [
1956
-
"windows-targets 0.52.0",
1957
]
1958
1959
[[package]]
1960
-
name = "windows-targets"
1961
-
version = "0.48.5"
1962
source = "registry+https://github.com/rust-lang/crates.io-index"
1963
-
checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
1964
dependencies = [
1965
-
"windows_aarch64_gnullvm 0.48.5",
1966
-
"windows_aarch64_msvc 0.48.5",
1967
-
"windows_i686_gnu 0.48.5",
1968
-
"windows_i686_msvc 0.48.5",
1969
-
"windows_x86_64_gnu 0.48.5",
1970
-
"windows_x86_64_gnullvm 0.48.5",
1971
-
"windows_x86_64_msvc 0.48.5",
1972
]
1973
1974
[[package]]
1975
name = "windows-targets"
1976
-
version = "0.52.0"
1977
source = "registry+https://github.com/rust-lang/crates.io-index"
1978
-
checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
1979
dependencies = [
1980
-
"windows_aarch64_gnullvm 0.52.0",
1981
-
"windows_aarch64_msvc 0.52.0",
1982
-
"windows_i686_gnu 0.52.0",
1983
-
"windows_i686_msvc 0.52.0",
1984
-
"windows_x86_64_gnu 0.52.0",
1985
-
"windows_x86_64_gnullvm 0.52.0",
1986
-
"windows_x86_64_msvc 0.52.0",
0
1987
]
1988
1989
[[package]]
1990
name = "windows_aarch64_gnullvm"
1991
-
version = "0.48.5"
1992
source = "registry+https://github.com/rust-lang/crates.io-index"
1993
-
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
1994
-
1995
-
[[package]]
1996
-
name = "windows_aarch64_gnullvm"
1997
-
version = "0.52.0"
1998
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1999
-
checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
2000
2001
[[package]]
2002
name = "windows_aarch64_msvc"
2003
-
version = "0.48.5"
2004
source = "registry+https://github.com/rust-lang/crates.io-index"
2005
-
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
2006
-
2007
-
[[package]]
2008
-
name = "windows_aarch64_msvc"
2009
-
version = "0.52.0"
2010
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2011
-
checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
2012
2013
[[package]]
2014
name = "windows_i686_gnu"
2015
-
version = "0.48.5"
2016
source = "registry+https://github.com/rust-lang/crates.io-index"
2017
-
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
2018
2019
[[package]]
2020
-
name = "windows_i686_gnu"
2021
-
version = "0.52.0"
2022
source = "registry+https://github.com/rust-lang/crates.io-index"
2023
-
checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
2024
2025
[[package]]
2026
name = "windows_i686_msvc"
2027
-
version = "0.48.5"
2028
source = "registry+https://github.com/rust-lang/crates.io-index"
2029
-
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
2030
-
2031
-
[[package]]
2032
-
name = "windows_i686_msvc"
2033
-
version = "0.52.0"
2034
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2035
-
checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
2036
2037
[[package]]
2038
name = "windows_x86_64_gnu"
2039
-
version = "0.48.5"
2040
source = "registry+https://github.com/rust-lang/crates.io-index"
2041
-
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
2042
-
2043
-
[[package]]
2044
-
name = "windows_x86_64_gnu"
2045
-
version = "0.52.0"
2046
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2047
-
checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
2048
2049
[[package]]
2050
name = "windows_x86_64_gnullvm"
2051
-
version = "0.48.5"
2052
source = "registry+https://github.com/rust-lang/crates.io-index"
2053
-
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
2054
2055
[[package]]
2056
-
name = "windows_x86_64_gnullvm"
2057
-
version = "0.52.0"
2058
source = "registry+https://github.com/rust-lang/crates.io-index"
2059
-
checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
2060
2061
[[package]]
2062
-
name = "windows_x86_64_msvc"
2063
-
version = "0.48.5"
2064
source = "registry+https://github.com/rust-lang/crates.io-index"
2065
-
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
0
0
0
2066
2067
[[package]]
2068
-
name = "windows_x86_64_msvc"
2069
-
version = "0.52.0"
2070
source = "registry+https://github.com/rust-lang/crates.io-index"
2071
-
checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
0
0
0
0
2072
2073
[[package]]
2074
-
name = "winnow"
2075
-
version = "0.5.31"
2076
source = "registry+https://github.com/rust-lang/crates.io-index"
2077
-
checksum = "97a4882e6b134d6c28953a387571f1acdd3496830d5e36c5e3a1075580ea641c"
2078
dependencies = [
2079
-
"memchr",
0
0
2080
]
···
4
5
[[package]]
6
name = "addr2line"
7
+
version = "0.22.0"
8
source = "registry+https://github.com/rust-lang/crates.io-index"
9
+
checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
10
dependencies = [
11
"gimli",
12
]
···
19
20
[[package]]
21
name = "aho-corasick"
22
+
version = "1.1.3"
23
source = "registry+https://github.com/rust-lang/crates.io-index"
24
+
checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
25
dependencies = [
26
"memchr",
27
]
28
29
[[package]]
30
name = "anstream"
31
+
version = "0.6.15"
32
source = "registry+https://github.com/rust-lang/crates.io-index"
33
+
checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526"
34
dependencies = [
35
"anstyle",
36
"anstyle-parse",
37
"anstyle-query",
38
"anstyle-wincon",
39
"colorchoice",
40
+
"is_terminal_polyfill",
41
"utf8parse",
42
]
43
44
[[package]]
45
name = "anstyle"
46
+
version = "1.0.8"
47
source = "registry+https://github.com/rust-lang/crates.io-index"
48
+
checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1"
49
50
[[package]]
51
name = "anstyle-parse"
52
+
version = "0.2.5"
53
source = "registry+https://github.com/rust-lang/crates.io-index"
54
+
checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb"
55
dependencies = [
56
"utf8parse",
57
]
58
59
[[package]]
60
name = "anstyle-query"
61
+
version = "1.1.1"
62
source = "registry+https://github.com/rust-lang/crates.io-index"
63
+
checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a"
64
dependencies = [
65
"windows-sys 0.52.0",
66
]
67
68
[[package]]
69
name = "anstyle-wincon"
70
+
version = "3.0.4"
71
source = "registry+https://github.com/rust-lang/crates.io-index"
72
+
checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8"
73
dependencies = [
74
"anstyle",
75
"windows-sys 0.52.0",
···
77
78
[[package]]
79
name = "anyhow"
80
+
version = "1.0.86"
81
source = "registry+https://github.com/rust-lang/crates.io-index"
82
+
checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
83
84
[[package]]
85
name = "async-trait"
86
+
version = "0.1.81"
87
source = "registry+https://github.com/rust-lang/crates.io-index"
88
+
checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107"
89
dependencies = [
90
"proc-macro2",
91
"quote",
···
94
95
[[package]]
96
name = "autocfg"
97
+
version = "1.3.0"
98
source = "registry+https://github.com/rust-lang/crates.io-index"
99
+
checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
100
101
[[package]]
102
name = "backtrace"
103
+
version = "0.3.73"
104
source = "registry+https://github.com/rust-lang/crates.io-index"
105
+
checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a"
106
dependencies = [
107
"addr2line",
108
"cc",
···
115
116
[[package]]
117
name = "base64"
118
+
version = "0.21.7"
119
source = "registry+https://github.com/rust-lang/crates.io-index"
120
+
checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
121
+
122
+
[[package]]
123
+
name = "base64"
124
+
version = "0.22.1"
125
+
source = "registry+https://github.com/rust-lang/crates.io-index"
126
+
checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
127
128
[[package]]
129
name = "bb8"
130
+
version = "0.8.5"
131
source = "registry+https://github.com/rust-lang/crates.io-index"
132
+
checksum = "b10cf871f3ff2ce56432fddc2615ac7acc3aa22ca321f8fea800846fbb32f188"
133
dependencies = [
134
"async-trait",
0
135
"futures-util",
136
"parking_lot",
137
"tokio",
···
151
152
[[package]]
153
name = "bitflags"
154
+
version = "2.6.0"
155
source = "registry+https://github.com/rust-lang/crates.io-index"
156
+
checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
157
158
[[package]]
159
name = "block-buffer"
···
166
167
[[package]]
168
name = "bumpalo"
169
+
version = "3.16.0"
170
source = "registry+https://github.com/rust-lang/crates.io-index"
171
+
checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
172
173
[[package]]
174
name = "byteorder"
···
178
179
[[package]]
180
name = "bytes"
181
+
version = "1.7.1"
182
source = "registry+https://github.com/rust-lang/crates.io-index"
183
+
checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50"
184
185
[[package]]
186
name = "cc"
187
+
version = "1.1.10"
188
source = "registry+https://github.com/rust-lang/crates.io-index"
189
+
checksum = "e9e8aabfac534be767c909e0690571677d49f41bd8465ae876fe043d52ba5292"
0
0
0
190
191
[[package]]
192
name = "cfg-if"
···
196
197
[[package]]
198
name = "clap"
199
+
version = "4.5.15"
200
source = "registry+https://github.com/rust-lang/crates.io-index"
201
+
checksum = "11d8838454fda655dafd3accb2b6e2bea645b9e4078abe84a22ceb947235c5cc"
202
dependencies = [
203
"clap_builder",
204
]
205
206
[[package]]
207
name = "clap_builder"
208
+
version = "4.5.15"
209
source = "registry+https://github.com/rust-lang/crates.io-index"
210
+
checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6"
211
dependencies = [
212
"anstream",
213
"anstyle",
···
217
218
[[package]]
219
name = "clap_lex"
220
+
version = "0.7.2"
221
source = "registry+https://github.com/rust-lang/crates.io-index"
222
+
checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97"
223
224
[[package]]
225
name = "colorchoice"
226
+
version = "1.0.2"
227
source = "registry+https://github.com/rust-lang/crates.io-index"
228
+
checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0"
229
230
[[package]]
231
name = "common"
···
260
261
[[package]]
262
name = "core-foundation-sys"
263
+
version = "0.8.7"
264
source = "registry+https://github.com/rust-lang/crates.io-index"
265
+
checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
266
267
[[package]]
268
name = "cpufeatures"
269
+
version = "0.2.13"
270
source = "registry+https://github.com/rust-lang/crates.io-index"
271
+
checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad"
272
dependencies = [
273
"libc",
274
]
···
284
]
285
286
[[package]]
287
+
name = "darling"
288
+
version = "0.20.10"
289
+
source = "registry+https://github.com/rust-lang/crates.io-index"
290
+
checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989"
291
+
dependencies = [
292
+
"darling_core",
293
+
"darling_macro",
294
+
]
295
+
296
+
[[package]]
297
+
name = "darling_core"
298
+
version = "0.20.10"
299
+
source = "registry+https://github.com/rust-lang/crates.io-index"
300
+
checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5"
301
+
dependencies = [
302
+
"fnv",
303
+
"ident_case",
304
+
"proc-macro2",
305
+
"quote",
306
+
"strsim",
307
+
"syn",
308
+
]
309
+
310
+
[[package]]
311
+
name = "darling_macro"
312
+
version = "0.20.10"
313
+
source = "registry+https://github.com/rust-lang/crates.io-index"
314
+
checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
315
+
dependencies = [
316
+
"darling_core",
317
+
"quote",
318
+
"syn",
319
+
]
320
+
321
+
[[package]]
322
name = "data-encoding"
323
+
version = "2.6.0"
324
source = "registry+https://github.com/rust-lang/crates.io-index"
325
+
checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2"
326
327
[[package]]
328
name = "deranged"
···
335
336
[[package]]
337
name = "diesel"
338
+
version = "2.2.2"
339
source = "registry+https://github.com/rust-lang/crates.io-index"
340
+
checksum = "bf97ee7261bb708fa3402fa9c17a54b70e90e3cb98afb3dc8999d5512cb03f94"
341
dependencies = [
342
+
"bitflags 2.6.0",
343
"byteorder",
344
"diesel_derives",
345
"itoa",
···
348
349
[[package]]
350
name = "diesel-async"
351
+
version = "0.5.0"
352
source = "registry+https://github.com/rust-lang/crates.io-index"
353
+
checksum = "fcb799bb6f8ca6a794462125d7b8983b0c86e6c93a33a9c55934a4a5de4409d3"
354
dependencies = [
355
"async-trait",
356
"bb8",
···
363
364
[[package]]
365
name = "diesel_derives"
366
+
version = "2.2.2"
367
source = "registry+https://github.com/rust-lang/crates.io-index"
368
+
checksum = "d6ff2be1e7312c858b2ef974f5c7089833ae57b5311b334b30923af58e5718d8"
369
dependencies = [
370
"diesel_table_macro_syntax",
371
+
"dsl_auto_type",
372
"proc-macro2",
373
"quote",
374
"syn",
···
376
377
[[package]]
378
name = "diesel_table_macro_syntax"
379
+
version = "0.2.0"
380
source = "registry+https://github.com/rust-lang/crates.io-index"
381
+
checksum = "209c735641a413bc68c4923a9d6ad4bcb3ca306b794edaa7eb0b3228a99ffb25"
382
dependencies = [
383
"syn",
384
]
···
395
]
396
397
[[package]]
398
+
name = "dsl_auto_type"
399
+
version = "0.1.2"
400
+
source = "registry+https://github.com/rust-lang/crates.io-index"
401
+
checksum = "c5d9abe6314103864cc2d8901b7ae224e0ab1a103a0a416661b4097b0779b607"
402
+
dependencies = [
403
+
"darling",
404
+
"either",
405
+
"heck",
406
+
"proc-macro2",
407
+
"quote",
408
+
"syn",
409
+
]
410
+
411
+
[[package]]
412
name = "dtoa"
413
version = "1.0.9"
414
source = "registry+https://github.com/rust-lang/crates.io-index"
415
checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653"
416
+
417
+
[[package]]
418
+
name = "either"
419
+
version = "1.13.0"
420
+
source = "registry+https://github.com/rust-lang/crates.io-index"
421
+
checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
422
423
[[package]]
424
name = "encoding_rs"
425
+
version = "0.8.34"
426
source = "registry+https://github.com/rust-lang/crates.io-index"
427
+
checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
428
dependencies = [
429
"cfg-if",
430
]
431
432
[[package]]
433
name = "env_logger"
434
+
version = "0.10.2"
435
source = "registry+https://github.com/rust-lang/crates.io-index"
436
+
checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
437
dependencies = [
438
"humantime",
439
"is-terminal",
···
450
451
[[package]]
452
name = "errno"
453
+
version = "0.3.9"
454
source = "registry+https://github.com/rust-lang/crates.io-index"
455
+
checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
456
dependencies = [
457
"libc",
458
"windows-sys 0.52.0",
···
466
467
[[package]]
468
name = "fastrand"
469
+
version = "2.1.0"
0
0
0
0
0
0
470
source = "registry+https://github.com/rust-lang/crates.io-index"
471
+
checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
472
473
[[package]]
474
name = "fnv"
···
601
602
[[package]]
603
name = "getrandom"
604
+
version = "0.2.15"
605
source = "registry+https://github.com/rust-lang/crates.io-index"
606
+
checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
607
dependencies = [
608
"cfg-if",
609
"libc",
···
612
613
[[package]]
614
name = "gimli"
615
+
version = "0.29.0"
616
source = "registry+https://github.com/rust-lang/crates.io-index"
617
+
checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
618
619
[[package]]
620
name = "h2"
621
+
version = "0.3.26"
622
source = "registry+https://github.com/rust-lang/crates.io-index"
623
+
checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
624
dependencies = [
625
"bytes",
626
"fnv",
627
"futures-core",
628
"futures-sink",
629
"futures-util",
630
+
"http 0.2.12",
631
"indexmap",
632
"slab",
633
"tokio",
···
637
638
[[package]]
639
name = "hashbrown"
640
+
version = "0.14.5"
641
source = "registry+https://github.com/rust-lang/crates.io-index"
642
+
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
643
644
[[package]]
645
name = "headers"
···
647
source = "registry+https://github.com/rust-lang/crates.io-index"
648
checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270"
649
dependencies = [
650
+
"base64 0.21.7",
651
"bytes",
652
"headers-core",
653
+
"http 0.2.12",
654
"httpdate",
655
"mime",
656
"sha1",
···
662
source = "registry+https://github.com/rust-lang/crates.io-index"
663
checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429"
664
dependencies = [
665
+
"http 0.2.12",
666
]
667
+
668
+
[[package]]
669
+
name = "heck"
670
+
version = "0.5.0"
671
+
source = "registry+https://github.com/rust-lang/crates.io-index"
672
+
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
673
674
[[package]]
675
name = "hermit-abi"
676
+
version = "0.3.9"
677
source = "registry+https://github.com/rust-lang/crates.io-index"
678
+
checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
679
680
[[package]]
681
name = "hmac"
···
688
689
[[package]]
690
name = "http"
691
+
version = "0.2.12"
692
+
source = "registry+https://github.com/rust-lang/crates.io-index"
693
+
checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
694
+
dependencies = [
695
+
"bytes",
696
+
"fnv",
697
+
"itoa",
698
+
]
699
+
700
+
[[package]]
701
+
name = "http"
702
+
version = "1.1.0"
703
source = "registry+https://github.com/rust-lang/crates.io-index"
704
+
checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
705
dependencies = [
706
"bytes",
707
"fnv",
···
715
checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
716
dependencies = [
717
"bytes",
718
+
"http 0.2.12",
719
"pin-project-lite",
720
]
721
722
[[package]]
723
name = "httparse"
724
+
version = "1.9.4"
725
source = "registry+https://github.com/rust-lang/crates.io-index"
726
+
checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9"
727
728
[[package]]
729
name = "httpdate"
···
739
740
[[package]]
741
name = "hyper"
742
+
version = "0.14.30"
743
source = "registry+https://github.com/rust-lang/crates.io-index"
744
+
checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9"
745
dependencies = [
746
"bytes",
747
"futures-channel",
748
"futures-core",
749
"futures-util",
750
"h2",
751
+
"http 0.2.12",
752
"http-body",
753
"httparse",
754
"httpdate",
···
762
]
763
764
[[package]]
765
+
name = "ident_case"
766
+
version = "1.0.1"
767
+
source = "registry+https://github.com/rust-lang/crates.io-index"
768
+
checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
769
+
770
+
[[package]]
771
name = "idna"
772
version = "0.5.0"
773
source = "registry+https://github.com/rust-lang/crates.io-index"
···
779
780
[[package]]
781
name = "indexmap"
782
+
version = "2.3.0"
783
source = "registry+https://github.com/rust-lang/crates.io-index"
784
+
checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0"
785
dependencies = [
786
"equivalent",
787
"hashbrown",
···
789
790
[[package]]
791
name = "is-terminal"
792
+
version = "0.4.12"
793
source = "registry+https://github.com/rust-lang/crates.io-index"
794
+
checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
795
dependencies = [
796
"hermit-abi",
797
+
"libc",
798
"windows-sys 0.52.0",
799
]
800
+
801
+
[[package]]
802
+
name = "is_terminal_polyfill"
803
+
version = "1.70.1"
804
+
source = "registry+https://github.com/rust-lang/crates.io-index"
805
+
checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
806
807
[[package]]
808
name = "itoa"
809
+
version = "1.0.11"
810
source = "registry+https://github.com/rust-lang/crates.io-index"
811
+
checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
812
813
[[package]]
814
name = "js-sys"
815
+
version = "0.3.70"
816
source = "registry+https://github.com/rust-lang/crates.io-index"
817
+
checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a"
818
dependencies = [
819
"wasm-bindgen",
820
]
821
822
[[package]]
0
0
0
0
0
0
823
name = "libc"
824
+
version = "0.2.155"
825
source = "registry+https://github.com/rust-lang/crates.io-index"
826
+
checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
827
828
[[package]]
829
name = "linux-raw-sys"
830
+
version = "0.4.14"
831
source = "registry+https://github.com/rust-lang/crates.io-index"
832
+
checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
833
834
[[package]]
835
name = "lock_api"
836
+
version = "0.4.12"
837
source = "registry+https://github.com/rust-lang/crates.io-index"
838
+
checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
839
dependencies = [
840
"autocfg",
841
"scopeguard",
···
843
844
[[package]]
845
name = "log"
846
+
version = "0.4.22"
847
source = "registry+https://github.com/rust-lang/crates.io-index"
848
+
checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
849
850
[[package]]
851
name = "lumen"
···
874
875
[[package]]
876
name = "memchr"
877
+
version = "2.7.4"
878
source = "registry+https://github.com/rust-lang/crates.io-index"
879
+
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
880
881
[[package]]
882
name = "mime"
···
886
887
[[package]]
888
name = "mime_guess"
889
+
version = "2.0.5"
890
source = "registry+https://github.com/rust-lang/crates.io-index"
891
+
checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e"
892
dependencies = [
893
"mime",
894
"unicase",
···
896
897
[[package]]
898
name = "miniz_oxide"
899
+
version = "0.7.4"
900
source = "registry+https://github.com/rust-lang/crates.io-index"
901
+
checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08"
902
dependencies = [
903
"adler",
904
]
905
906
[[package]]
907
name = "mio"
908
+
version = "1.0.2"
909
source = "registry+https://github.com/rust-lang/crates.io-index"
910
+
checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
911
dependencies = [
912
+
"hermit-abi",
913
"libc",
914
"wasi",
915
+
"windows-sys 0.52.0",
916
]
917
918
[[package]]
···
924
"bytes",
925
"encoding_rs",
926
"futures-util",
927
+
"http 0.2.12",
928
"httparse",
929
"log",
930
"memchr",
···
935
936
[[package]]
937
name = "native-tls"
938
+
version = "0.2.12"
939
source = "registry+https://github.com/rust-lang/crates.io-index"
940
+
checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466"
941
dependencies = [
0
942
"libc",
943
"log",
944
"openssl",
···
951
]
952
953
[[package]]
954
+
name = "num-conv"
955
+
version = "0.1.0"
956
source = "registry+https://github.com/rust-lang/crates.io-index"
957
+
checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
0
0
0
0
958
959
[[package]]
960
name = "object"
961
+
version = "0.36.3"
962
source = "registry+https://github.com/rust-lang/crates.io-index"
963
+
checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9"
964
dependencies = [
965
"memchr",
966
]
···
973
974
[[package]]
975
name = "openssl"
976
+
version = "0.10.66"
977
source = "registry+https://github.com/rust-lang/crates.io-index"
978
+
checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1"
979
dependencies = [
980
+
"bitflags 2.6.0",
981
"cfg-if",
982
"foreign-types",
983
"libc",
···
1005
1006
[[package]]
1007
name = "openssl-sys"
1008
+
version = "0.9.103"
1009
source = "registry+https://github.com/rust-lang/crates.io-index"
1010
+
checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6"
1011
dependencies = [
1012
"cc",
1013
"libc",
···
1017
1018
[[package]]
1019
name = "parking_lot"
1020
+
version = "0.12.3"
1021
source = "registry+https://github.com/rust-lang/crates.io-index"
1022
+
checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
1023
dependencies = [
1024
"lock_api",
1025
"parking_lot_core",
···
1027
1028
[[package]]
1029
name = "parking_lot_core"
1030
+
version = "0.9.10"
1031
source = "registry+https://github.com/rust-lang/crates.io-index"
1032
+
checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
1033
dependencies = [
1034
"cfg-if",
1035
"libc",
1036
+
"redox_syscall 0.5.3",
1037
"smallvec",
1038
+
"windows-targets",
1039
]
1040
1041
[[package]]
···
1064
1065
[[package]]
1066
name = "pin-project"
1067
+
version = "1.1.5"
1068
source = "registry+https://github.com/rust-lang/crates.io-index"
1069
+
checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
1070
dependencies = [
1071
"pin-project-internal",
1072
]
1073
1074
[[package]]
1075
name = "pin-project-internal"
1076
+
version = "1.1.5"
1077
source = "registry+https://github.com/rust-lang/crates.io-index"
1078
+
checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
1079
dependencies = [
1080
"proc-macro2",
1081
"quote",
···
1084
1085
[[package]]
1086
name = "pin-project-lite"
1087
+
version = "0.2.14"
1088
source = "registry+https://github.com/rust-lang/crates.io-index"
1089
+
checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
1090
1091
[[package]]
1092
name = "pin-utils"
···
1096
1097
[[package]]
1098
name = "pkg-config"
1099
+
version = "0.3.30"
1100
source = "registry+https://github.com/rust-lang/crates.io-index"
1101
+
checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
1102
1103
[[package]]
1104
name = "postgres-native-tls"
···
1115
1116
[[package]]
1117
name = "postgres-protocol"
1118
+
version = "0.6.7"
1119
source = "registry+https://github.com/rust-lang/crates.io-index"
1120
+
checksum = "acda0ebdebc28befa84bee35e651e4c5f09073d668c7aed4cf7e23c3cda84b23"
1121
dependencies = [
1122
+
"base64 0.22.1",
1123
"byteorder",
1124
"bytes",
1125
"fallible-iterator",
···
1133
1134
[[package]]
1135
name = "postgres-types"
1136
+
version = "0.2.7"
1137
source = "registry+https://github.com/rust-lang/crates.io-index"
1138
+
checksum = "02048d9e032fb3cc3413bbf7b83a15d84a5d419778e2628751896d856498eee9"
1139
dependencies = [
1140
"bytes",
1141
"fallible-iterator",
···
1150
1151
[[package]]
1152
name = "ppv-lite86"
1153
+
version = "0.2.20"
1154
source = "registry+https://github.com/rust-lang/crates.io-index"
1155
+
checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04"
1156
+
dependencies = [
1157
+
"zerocopy",
1158
+
]
1159
1160
[[package]]
1161
name = "pretty_env_logger"
···
1169
1170
[[package]]
1171
name = "proc-macro2"
1172
+
version = "1.0.86"
1173
source = "registry+https://github.com/rust-lang/crates.io-index"
1174
+
checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
1175
dependencies = [
1176
"unicode-ident",
1177
]
1178
1179
[[package]]
1180
name = "prometheus-client"
1181
+
version = "0.22.3"
1182
source = "registry+https://github.com/rust-lang/crates.io-index"
1183
+
checksum = "504ee9ff529add891127c4827eb481bd69dc0ebc72e9a682e187db4caa60c3ca"
1184
dependencies = [
1185
"dtoa",
1186
"itoa",
···
1201
1202
[[package]]
1203
name = "quote"
1204
+
version = "1.0.36"
1205
source = "registry+https://github.com/rust-lang/crates.io-index"
1206
+
checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
1207
dependencies = [
1208
"proc-macro2",
1209
]
···
1248
]
1249
1250
[[package]]
1251
+
name = "redox_syscall"
1252
+
version = "0.5.3"
1253
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1254
+
checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4"
1255
+
dependencies = [
1256
+
"bitflags 2.6.0",
1257
+
]
1258
+
1259
+
[[package]]
1260
name = "regex"
1261
+
version = "1.10.6"
1262
source = "registry+https://github.com/rust-lang/crates.io-index"
1263
+
checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619"
1264
dependencies = [
1265
"aho-corasick",
1266
"memchr",
···
1270
1271
[[package]]
1272
name = "regex-automata"
1273
+
version = "0.4.7"
1274
source = "registry+https://github.com/rust-lang/crates.io-index"
1275
+
checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df"
1276
dependencies = [
1277
"aho-corasick",
1278
"memchr",
···
1281
1282
[[package]]
1283
name = "regex-syntax"
1284
+
version = "0.8.4"
1285
source = "registry+https://github.com/rust-lang/crates.io-index"
1286
+
checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
1287
1288
[[package]]
1289
name = "rustc-demangle"
1290
+
version = "0.1.24"
1291
source = "registry+https://github.com/rust-lang/crates.io-index"
1292
+
checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
1293
1294
[[package]]
1295
name = "rustix"
1296
+
version = "0.38.34"
1297
source = "registry+https://github.com/rust-lang/crates.io-index"
1298
+
checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
1299
dependencies = [
1300
+
"bitflags 2.6.0",
1301
"errno",
1302
"libc",
1303
"linux-raw-sys",
1304
"windows-sys 0.52.0",
0
0
0
0
0
0
0
0
0
1305
]
1306
1307
[[package]]
1308
name = "ryu"
1309
+
version = "1.0.18"
1310
source = "registry+https://github.com/rust-lang/crates.io-index"
1311
+
checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
1312
1313
[[package]]
1314
name = "schannel"
···
1343
1344
[[package]]
1345
name = "security-framework"
1346
+
version = "2.11.1"
1347
source = "registry+https://github.com/rust-lang/crates.io-index"
1348
+
checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02"
1349
dependencies = [
1350
+
"bitflags 2.6.0",
1351
"core-foundation",
1352
"core-foundation-sys",
1353
"libc",
···
1356
1357
[[package]]
1358
name = "security-framework-sys"
1359
+
version = "2.11.1"
1360
source = "registry+https://github.com/rust-lang/crates.io-index"
1361
+
checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf"
1362
dependencies = [
1363
"core-foundation-sys",
1364
"libc",
···
1366
1367
[[package]]
1368
name = "serde"
1369
+
version = "1.0.207"
1370
source = "registry+https://github.com/rust-lang/crates.io-index"
1371
+
checksum = "5665e14a49a4ea1b91029ba7d3bca9f299e1f7cfa194388ccc20f14743e784f2"
1372
dependencies = [
1373
"serde_derive",
1374
]
1375
1376
[[package]]
1377
name = "serde_derive"
1378
+
version = "1.0.207"
1379
source = "registry+https://github.com/rust-lang/crates.io-index"
1380
+
checksum = "6aea2634c86b0e8ef2cfdc0c340baede54ec27b1e46febd7f80dffb2aa44a00e"
1381
dependencies = [
1382
"proc-macro2",
1383
"quote",
···
1386
1387
[[package]]
1388
name = "serde_json"
1389
+
version = "1.0.124"
1390
source = "registry+https://github.com/rust-lang/crates.io-index"
1391
+
checksum = "66ad62847a56b3dba58cc891acd13884b9c61138d330c0d7b6181713d4fce38d"
1392
dependencies = [
1393
"itoa",
1394
+
"memchr",
1395
"ryu",
1396
"serde",
1397
]
1398
1399
[[package]]
1400
name = "serde_spanned"
1401
+
version = "0.6.7"
1402
source = "registry+https://github.com/rust-lang/crates.io-index"
1403
+
checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d"
1404
dependencies = [
1405
"serde",
1406
]
···
1441
1442
[[package]]
1443
name = "signal-hook-registry"
1444
+
version = "1.4.2"
1445
source = "registry+https://github.com/rust-lang/crates.io-index"
1446
+
checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
1447
dependencies = [
1448
"libc",
1449
]
···
1465
1466
[[package]]
1467
name = "smallvec"
1468
+
version = "1.13.2"
1469
source = "registry+https://github.com/rust-lang/crates.io-index"
1470
+
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
1471
1472
[[package]]
1473
name = "socket2"
1474
+
version = "0.5.7"
1475
source = "registry+https://github.com/rust-lang/crates.io-index"
1476
+
checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
1477
dependencies = [
1478
"libc",
1479
+
"windows-sys 0.52.0",
1480
]
1481
1482
[[package]]
···
1487
1488
[[package]]
1489
name = "stringprep"
1490
+
version = "0.1.5"
1491
source = "registry+https://github.com/rust-lang/crates.io-index"
1492
+
checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1"
1493
dependencies = [
0
1494
"unicode-bidi",
1495
"unicode-normalization",
1496
+
"unicode-properties",
1497
]
1498
1499
[[package]]
1500
name = "strsim"
1501
+
version = "0.11.1"
1502
source = "registry+https://github.com/rust-lang/crates.io-index"
1503
+
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
1504
1505
[[package]]
1506
name = "subtle"
1507
+
version = "2.6.1"
1508
source = "registry+https://github.com/rust-lang/crates.io-index"
1509
+
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
1510
1511
[[package]]
1512
name = "syn"
1513
+
version = "2.0.74"
1514
source = "registry+https://github.com/rust-lang/crates.io-index"
1515
+
checksum = "1fceb41e3d546d0bd83421d3409b1460cc7444cd389341a4c880fe7a042cb3d7"
1516
dependencies = [
1517
"proc-macro2",
1518
"quote",
···
1521
1522
[[package]]
1523
name = "tempfile"
1524
+
version = "3.12.0"
1525
source = "registry+https://github.com/rust-lang/crates.io-index"
1526
+
checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64"
1527
dependencies = [
1528
"cfg-if",
1529
"fastrand",
1530
+
"once_cell",
1531
"rustix",
1532
+
"windows-sys 0.59.0",
1533
]
1534
1535
[[package]]
1536
name = "termcolor"
1537
+
version = "1.4.1"
1538
source = "registry+https://github.com/rust-lang/crates.io-index"
1539
+
checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
1540
dependencies = [
1541
"winapi-util",
1542
]
1543
1544
[[package]]
1545
name = "thiserror"
1546
+
version = "1.0.63"
1547
source = "registry+https://github.com/rust-lang/crates.io-index"
1548
+
checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724"
1549
dependencies = [
1550
"thiserror-impl",
1551
]
1552
1553
[[package]]
1554
name = "thiserror-impl"
1555
+
version = "1.0.63"
1556
source = "registry+https://github.com/rust-lang/crates.io-index"
1557
+
checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
1558
dependencies = [
1559
"proc-macro2",
1560
"quote",
···
1563
1564
[[package]]
1565
name = "time"
1566
+
version = "0.3.36"
1567
source = "registry+https://github.com/rust-lang/crates.io-index"
1568
+
checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
1569
dependencies = [
1570
"deranged",
1571
+
"num-conv",
1572
"powerfmt",
1573
"serde",
1574
"time-core",
···
1583
1584
[[package]]
1585
name = "time-macros"
1586
+
version = "0.2.18"
1587
source = "registry+https://github.com/rust-lang/crates.io-index"
1588
+
checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
1589
dependencies = [
1590
+
"num-conv",
1591
"time-core",
1592
]
1593
1594
[[package]]
1595
name = "tinyvec"
1596
+
version = "1.8.0"
1597
source = "registry+https://github.com/rust-lang/crates.io-index"
1598
+
checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938"
1599
dependencies = [
1600
"tinyvec_macros",
1601
]
···
1608
1609
[[package]]
1610
name = "tokio"
1611
+
version = "1.39.2"
1612
source = "registry+https://github.com/rust-lang/crates.io-index"
1613
+
checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1"
1614
dependencies = [
1615
"backtrace",
1616
"bytes",
1617
"libc",
1618
"mio",
0
1619
"parking_lot",
1620
"pin-project-lite",
1621
"signal-hook-registry",
1622
"socket2",
1623
"tokio-macros",
1624
+
"windows-sys 0.52.0",
1625
]
1626
1627
[[package]]
1628
name = "tokio-macros"
1629
+
version = "2.4.0"
1630
source = "registry+https://github.com/rust-lang/crates.io-index"
1631
+
checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
1632
dependencies = [
1633
"proc-macro2",
1634
"quote",
···
1647
1648
[[package]]
1649
name = "tokio-postgres"
1650
+
version = "0.7.11"
1651
source = "registry+https://github.com/rust-lang/crates.io-index"
1652
+
checksum = "03adcf0147e203b6032c0b2d30be1415ba03bc348901f3ff1cc0df6a733e60c3"
1653
dependencies = [
1654
"async-trait",
1655
"byteorder",
···
1672
]
1673
1674
[[package]]
0
0
0
0
0
0
0
0
0
0
0
1675
name = "tokio-tungstenite"
1676
+
version = "0.21.0"
1677
source = "registry+https://github.com/rust-lang/crates.io-index"
1678
+
checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38"
1679
dependencies = [
1680
"futures-util",
1681
"log",
···
1685
1686
[[package]]
1687
name = "tokio-util"
1688
+
version = "0.7.11"
1689
source = "registry+https://github.com/rust-lang/crates.io-index"
1690
+
checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
1691
dependencies = [
1692
"bytes",
1693
"futures-core",
1694
"futures-sink",
1695
"pin-project-lite",
1696
"tokio",
0
1697
]
1698
1699
[[package]]
1700
name = "toml"
1701
+
version = "0.8.19"
1702
source = "registry+https://github.com/rust-lang/crates.io-index"
1703
+
checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"
1704
dependencies = [
1705
"serde",
1706
"serde_spanned",
···
1710
1711
[[package]]
1712
name = "toml_datetime"
1713
+
version = "0.6.8"
1714
source = "registry+https://github.com/rust-lang/crates.io-index"
1715
+
checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"
1716
dependencies = [
1717
"serde",
1718
]
1719
1720
[[package]]
1721
name = "toml_edit"
1722
+
version = "0.22.20"
1723
source = "registry+https://github.com/rust-lang/crates.io-index"
1724
+
checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d"
1725
dependencies = [
1726
"indexmap",
1727
"serde",
···
1764
1765
[[package]]
1766
name = "tungstenite"
1767
+
version = "0.21.0"
1768
source = "registry+https://github.com/rust-lang/crates.io-index"
1769
+
checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1"
1770
dependencies = [
1771
"byteorder",
1772
"bytes",
1773
"data-encoding",
1774
+
"http 1.1.0",
1775
"httparse",
1776
"log",
1777
"rand",
···
1798
1799
[[package]]
1800
name = "unicode-bidi"
1801
+
version = "0.3.15"
1802
source = "registry+https://github.com/rust-lang/crates.io-index"
1803
+
checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
1804
1805
[[package]]
1806
name = "unicode-ident"
···
1810
1811
[[package]]
1812
name = "unicode-normalization"
1813
+
version = "0.1.23"
1814
source = "registry+https://github.com/rust-lang/crates.io-index"
1815
+
checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
1816
dependencies = [
1817
"tinyvec",
1818
]
1819
1820
[[package]]
1821
+
name = "unicode-properties"
1822
+
version = "0.1.1"
1823
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1824
+
checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291"
1825
+
1826
+
[[package]]
1827
name = "url"
1828
+
version = "2.5.2"
1829
source = "registry+https://github.com/rust-lang/crates.io-index"
1830
+
checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c"
1831
dependencies = [
1832
"form_urlencoded",
1833
"idna",
···
1842
1843
[[package]]
1844
name = "utf8parse"
1845
+
version = "0.2.2"
1846
source = "registry+https://github.com/rust-lang/crates.io-index"
1847
+
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
1848
1849
[[package]]
1850
name = "vcpkg"
···
1854
1855
[[package]]
1856
name = "version_check"
1857
+
version = "0.9.5"
1858
source = "registry+https://github.com/rust-lang/crates.io-index"
1859
+
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
1860
1861
[[package]]
1862
name = "want"
···
1869
1870
[[package]]
1871
name = "warp"
1872
+
version = "0.3.7"
1873
source = "registry+https://github.com/rust-lang/crates.io-index"
1874
+
checksum = "4378d202ff965b011c64817db11d5829506d3404edeadb61f190d111da3f231c"
1875
dependencies = [
1876
"bytes",
1877
"futures-channel",
1878
"futures-util",
1879
"headers",
1880
+
"http 0.2.12",
1881
"hyper",
1882
"log",
1883
"mime",
···
1885
"multer",
1886
"percent-encoding",
1887
"pin-project",
0
1888
"scoped-tls",
1889
"serde",
1890
"serde_json",
1891
"serde_urlencoded",
1892
"tokio",
0
1893
"tokio-tungstenite",
1894
"tokio-util",
1895
"tower-service",
···
1903
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
1904
1905
[[package]]
1906
+
name = "wasite"
1907
+
version = "0.1.0"
1908
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1909
+
checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
1910
+
1911
+
[[package]]
1912
name = "wasm-bindgen"
1913
+
version = "0.2.93"
1914
source = "registry+https://github.com/rust-lang/crates.io-index"
1915
+
checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5"
1916
dependencies = [
1917
"cfg-if",
1918
+
"once_cell",
1919
"wasm-bindgen-macro",
1920
]
1921
1922
[[package]]
1923
name = "wasm-bindgen-backend"
1924
+
version = "0.2.93"
1925
source = "registry+https://github.com/rust-lang/crates.io-index"
1926
+
checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b"
1927
dependencies = [
1928
"bumpalo",
1929
"log",
···
1936
1937
[[package]]
1938
name = "wasm-bindgen-macro"
1939
+
version = "0.2.93"
1940
source = "registry+https://github.com/rust-lang/crates.io-index"
1941
+
checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf"
1942
dependencies = [
1943
"quote",
1944
"wasm-bindgen-macro-support",
···
1946
1947
[[package]]
1948
name = "wasm-bindgen-macro-support"
1949
+
version = "0.2.93"
1950
source = "registry+https://github.com/rust-lang/crates.io-index"
1951
+
checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
1952
dependencies = [
1953
"proc-macro2",
1954
"quote",
···
1959
1960
[[package]]
1961
name = "wasm-bindgen-shared"
1962
+
version = "0.2.93"
1963
source = "registry+https://github.com/rust-lang/crates.io-index"
1964
+
checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484"
1965
1966
[[package]]
1967
name = "web-sys"
1968
+
version = "0.3.70"
1969
source = "registry+https://github.com/rust-lang/crates.io-index"
1970
+
checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0"
1971
dependencies = [
1972
"js-sys",
1973
"wasm-bindgen",
···
1975
1976
[[package]]
1977
name = "whoami"
1978
+
version = "1.5.1"
1979
source = "registry+https://github.com/rust-lang/crates.io-index"
1980
+
checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9"
1981
dependencies = [
1982
+
"redox_syscall 0.4.1",
1983
+
"wasite",
1984
"web-sys",
1985
]
1986
1987
[[package]]
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1988
name = "winapi-util"
1989
+
version = "0.1.9"
1990
source = "registry+https://github.com/rust-lang/crates.io-index"
1991
+
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
1992
dependencies = [
1993
+
"windows-sys 0.59.0",
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1994
]
1995
1996
[[package]]
···
1999
source = "registry+https://github.com/rust-lang/crates.io-index"
2000
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
2001
dependencies = [
2002
+
"windows-targets",
2003
]
2004
2005
[[package]]
2006
+
name = "windows-sys"
2007
+
version = "0.59.0"
2008
source = "registry+https://github.com/rust-lang/crates.io-index"
2009
+
checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
2010
dependencies = [
2011
+
"windows-targets",
0
0
0
0
0
0
2012
]
2013
2014
[[package]]
2015
name = "windows-targets"
2016
+
version = "0.52.6"
2017
source = "registry+https://github.com/rust-lang/crates.io-index"
2018
+
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
2019
dependencies = [
2020
+
"windows_aarch64_gnullvm",
2021
+
"windows_aarch64_msvc",
2022
+
"windows_i686_gnu",
2023
+
"windows_i686_gnullvm",
2024
+
"windows_i686_msvc",
2025
+
"windows_x86_64_gnu",
2026
+
"windows_x86_64_gnullvm",
2027
+
"windows_x86_64_msvc",
2028
]
2029
2030
[[package]]
2031
name = "windows_aarch64_gnullvm"
2032
+
version = "0.52.6"
2033
source = "registry+https://github.com/rust-lang/crates.io-index"
2034
+
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
0
0
0
0
0
0
2035
2036
[[package]]
2037
name = "windows_aarch64_msvc"
2038
+
version = "0.52.6"
2039
source = "registry+https://github.com/rust-lang/crates.io-index"
2040
+
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
0
0
0
0
0
0
2041
2042
[[package]]
2043
name = "windows_i686_gnu"
2044
+
version = "0.52.6"
2045
source = "registry+https://github.com/rust-lang/crates.io-index"
2046
+
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
2047
2048
[[package]]
2049
+
name = "windows_i686_gnullvm"
2050
+
version = "0.52.6"
2051
source = "registry+https://github.com/rust-lang/crates.io-index"
2052
+
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
2053
2054
[[package]]
2055
name = "windows_i686_msvc"
2056
+
version = "0.52.6"
2057
source = "registry+https://github.com/rust-lang/crates.io-index"
2058
+
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
0
0
0
0
0
0
2059
2060
[[package]]
2061
name = "windows_x86_64_gnu"
2062
+
version = "0.52.6"
2063
source = "registry+https://github.com/rust-lang/crates.io-index"
2064
+
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
0
0
0
0
0
0
2065
2066
[[package]]
2067
name = "windows_x86_64_gnullvm"
2068
+
version = "0.52.6"
2069
source = "registry+https://github.com/rust-lang/crates.io-index"
2070
+
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
2071
2072
[[package]]
2073
+
name = "windows_x86_64_msvc"
2074
+
version = "0.52.6"
2075
source = "registry+https://github.com/rust-lang/crates.io-index"
2076
+
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
2077
2078
[[package]]
2079
+
name = "winnow"
2080
+
version = "0.6.18"
2081
source = "registry+https://github.com/rust-lang/crates.io-index"
2082
+
checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f"
2083
+
dependencies = [
2084
+
"memchr",
2085
+
]
2086
2087
[[package]]
2088
+
name = "zerocopy"
2089
+
version = "0.7.35"
2090
source = "registry+https://github.com/rust-lang/crates.io-index"
2091
+
checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
2092
+
dependencies = [
2093
+
"byteorder",
2094
+
"zerocopy-derive",
2095
+
]
2096
2097
[[package]]
2098
+
name = "zerocopy-derive"
2099
+
version = "0.7.35"
2100
source = "registry+https://github.com/rust-lang/crates.io-index"
2101
+
checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
2102
dependencies = [
2103
+
"proc-macro2",
2104
+
"quote",
2105
+
"syn",
2106
]
+4
-4
Dockerfile
···
1
-
FROM rust:1.74.1-slim-buster
2
ARG DEBIAN_FRONTEND=noninteractive
3
RUN apt-get update && apt-get install -y --no-install-recommends --no-install-suggests ca-certificates pkg-config libssl-dev libpq-dev
4
ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse
5
6
RUN --mount=type=cache,target=$CARGO_HOME/registry \
7
-
cargo install diesel_cli --version 2.1.1 --no-default-features --features postgres
8
9
COPY common /lumen/common
10
COPY lumen /lumen/lumen
11
COPY Cargo.toml /lumen/
12
RUN --mount=type=cache,target=$CARGO_HOME/registry,target=/lumen/target \
13
-
cd /lumen && cargo build --release && cp /lumen/target/release/lumen /root/
14
15
FROM debian:buster-slim
16
ARG DEBIAN_FRONTEND=noninteractive
17
RUN apt-get update && apt-get install -y --no-install-recommends --no-install-suggests openssl libpq5 && \
18
-
sed -i -e 's,\[ v3_req \],\[ v3_req \]\nextendedKeyUsage = serverAuth,' /etc/ssl/openssl.cnf
19
RUN mkdir /usr/lib/lumen/
20
21
COPY --from=0 /usr/local/cargo/bin/diesel /usr/bin/diesel
···
1
+
FROM rust:1.80.1-slim
2
ARG DEBIAN_FRONTEND=noninteractive
3
RUN apt-get update && apt-get install -y --no-install-recommends --no-install-suggests ca-certificates pkg-config libssl-dev libpq-dev
4
ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse
5
6
RUN --mount=type=cache,target=$CARGO_HOME/registry \
7
+
cargo install diesel_cli --version 2.2.1 --no-default-features --features postgres
8
9
COPY common /lumen/common
10
COPY lumen /lumen/lumen
11
COPY Cargo.toml /lumen/
12
RUN --mount=type=cache,target=$CARGO_HOME/registry,target=/lumen/target \
13
+
cd /lumen && cargo build --release && cp /lumen/target/release/lumen /root/
14
15
FROM debian:buster-slim
16
ARG DEBIAN_FRONTEND=noninteractive
17
RUN apt-get update && apt-get install -y --no-install-recommends --no-install-suggests openssl libpq5 && \
18
+
sed -i -e 's,\[ v3_req \],\[ v3_req \]\nextendedKeyUsage = serverAuth,' /etc/ssl/openssl.cnf
19
RUN mkdir /usr/lib/lumen/
20
21
COPY --from=0 /usr/local/cargo/bin/diesel /usr/bin/diesel
+26
-12
common/Cargo.toml
···
7
publish = false
8
9
[dependencies]
10
-
tokio = {version = "1.32", features = ["full"], optional = true}
11
-
log = {version = "0.4", features = ["release_max_level_debug"]}
12
-
serde = {version = "1.0", features = ["derive"]}
13
-
postgres-native-tls = {version = "0.5", optional = true}
14
-
native-tls = {version = "0.2", optional = true}
15
futures-util = "0.3"
16
toml = "0.8"
17
-
warp = {version = "0.3", optional = true}
18
binascii = "0.1"
19
20
-
tokio-postgres = {version = "0.7", default-features = false, optional = true}
21
-
diesel = {version = "2.1", optional = true, default-features = false, features = ["postgres_backend", "time"]}
22
-
time = {version = "0.3.31", optional = true}
23
-
diesel-async = {version = "0.4.1", optional = true, features = ["postgres", "bb8"]}
0
0
0
0
0
0
24
anyhow = "1.0"
25
-
prometheus-client = "0.22.0"
26
27
[features]
28
default = ["web", "db"]
29
web = ["warp"]
30
-
db = ["tokio", "postgres-native-tls", "native-tls", "diesel", "diesel-async", "tokio-postgres", "time"]
0
0
0
0
0
0
0
0
···
7
publish = false
8
9
[dependencies]
10
+
tokio = { version = "1.39", features = ["full"], optional = true }
11
+
log = { version = "0.4", features = ["release_max_level_debug"] }
12
+
serde = { version = "1.0", features = ["derive"] }
13
+
postgres-native-tls = { version = "0.5", optional = true }
14
+
native-tls = { version = "0.2", optional = true }
15
futures-util = "0.3"
16
toml = "0.8"
17
+
warp = { version = "0.3", optional = true }
18
binascii = "0.1"
19
20
+
tokio-postgres = { version = "0.7", default-features = false, optional = true }
21
+
diesel = { version = "2.2", optional = true, default-features = false, features = [
22
+
"postgres_backend",
23
+
"time",
24
+
] }
25
+
time = { version = "0.3.36", optional = true }
26
+
diesel-async = { version = "0.5", optional = true, features = [
27
+
"postgres",
28
+
"bb8",
29
+
] }
30
anyhow = "1.0"
31
+
prometheus-client = "0.22"
32
33
[features]
34
default = ["web", "db"]
35
web = ["warp"]
36
+
db = [
37
+
"tokio",
38
+
"postgres-native-tls",
39
+
"native-tls",
40
+
"diesel",
41
+
"diesel-async",
42
+
"tokio-postgres",
43
+
"time",
44
+
]
-2
common/migrations/2024-03-22-062826_func-ea64s/down.sql
···
1
-
ALTER TABLE funcs
2
-
DROP COLUMN ea;
···
0
0
-2
common/migrations/2024-03-22-062826_func-ea64s/up.sql
···
1
-
ALTER TABLE funcs
2
-
ADD COLUMN ea bigint DEFAULT NULL;
···
0
0
+7
-7
common/src/db/mod.rs
···
135
}
136
137
pub async fn get_funcs(
138
-
&self, funcs: &[crate::rpc::PatternId<'_>],
139
) -> Result<Vec<Option<FunctionInfo>>, anyhow::Error> {
140
-
let chksums: Vec<&[u8]> = funcs.iter().map(|v| v.data).collect();
141
142
let rows: Vec<(String, i32, Vec<u8>, Vec<u8>)> = {
143
let conn = &mut self.diesel.get().await?;
···
218
) -> Result<i32, anyhow::Error> {
219
use schema::files::{chksum, id, table as files};
220
221
-
let hash = &funcs.input_md5[..];
222
223
let conn = &mut self.diesel.get().await?;
224
···
265
dbs.select(db_id)
266
.filter(db_user.eq(user_id))
267
.filter(db_file_id.eq(file_id))
268
-
.filter(file_path.eq(funcs.input_path))
269
.filter(idb_path.eq(funcs.idb_path))
270
};
271
···
279
.values(vec![(
280
db_user.eq(user_id),
281
db_file_id.eq(file_id),
282
-
file_path.eq(funcs.input_path),
283
idb_path.eq(funcs.idb_path),
284
)])
285
.returning(db_id)
···
315
for (idx, (func, &score)) in funcs.funcs.iter().zip(scores.iter()).enumerate() {
316
let name = func.name;
317
let len = func.func_len as i32;
318
-
let chksum = func.pattern_id.data;
319
let md = func.func_data;
320
let score = score as i32;
321
···
418
) -> Result<(), anyhow::Error> {
419
use schema::funcs::{chksum, table as funcs};
420
421
-
let chksums = req.calcrel_hashes.iter().map(|v| v.as_slice()).collect::<Vec<_>>();
422
423
let conn = &mut self.diesel.get().await?;
424
let rows_modified =
···
135
}
136
137
pub async fn get_funcs(
138
+
&self, funcs: &[crate::rpc::PullMetadataFunc<'_>],
139
) -> Result<Vec<Option<FunctionInfo>>, anyhow::Error> {
140
+
let chksums: Vec<&[u8]> = funcs.iter().map(|v| v.mb_hash).collect();
141
142
let rows: Vec<(String, i32, Vec<u8>, Vec<u8>)> = {
143
let conn = &mut self.diesel.get().await?;
···
218
) -> Result<i32, anyhow::Error> {
219
use schema::files::{chksum, id, table as files};
220
221
+
let hash = &funcs.md5[..];
222
223
let conn = &mut self.diesel.get().await?;
224
···
265
dbs.select(db_id)
266
.filter(db_user.eq(user_id))
267
.filter(db_file_id.eq(file_id))
268
+
.filter(file_path.eq(funcs.file_path))
269
.filter(idb_path.eq(funcs.idb_path))
270
};
271
···
279
.values(vec![(
280
db_user.eq(user_id),
281
db_file_id.eq(file_id),
282
+
file_path.eq(funcs.file_path),
283
idb_path.eq(funcs.idb_path),
284
)])
285
.returning(db_id)
···
315
for (idx, (func, &score)) in funcs.funcs.iter().zip(scores.iter()).enumerate() {
316
let name = func.name;
317
let len = func.func_len as i32;
318
+
let chksum = func.hash;
319
let md = func.func_data;
320
let score = score as i32;
321
···
418
) -> Result<(), anyhow::Error> {
419
use schema::funcs::{chksum, table as funcs};
420
421
+
let chksums = req.funcs.iter().map(|v| v.as_slice()).collect::<Vec<_>>();
422
423
let conn = &mut self.diesel.get().await?;
424
let rows_modified =
+1
-10
common/src/db/schema_auto.rs
···
3
diesel::table! {
4
dbs (id) {
5
id -> Int4,
6
-
#[max_length = 260]
7
file_path -> Nullable<Varchar>,
8
-
#[max_length = 260]
9
idb_path -> Nullable<Varchar>,
10
file_id -> Nullable<Int4>,
11
user_id -> Nullable<Int4>,
···
30
rank -> Nullable<Int4>,
31
push_dt -> Nullable<Timestamptz>,
32
update_dt -> Nullable<Timestamptz>,
33
-
ea -> Nullable<Int8>,
34
}
35
}
36
···
39
id -> Int4,
40
lic_id -> Nullable<Bytea>,
41
lic_data -> Nullable<Bytea>,
42
-
#[max_length = 260]
43
hostname -> Nullable<Varchar>,
44
first_seen -> Nullable<Timestamptz>,
45
}
···
49
diesel::joinable!(dbs -> users (user_id));
50
diesel::joinable!(funcs -> dbs (db_id));
51
52
-
diesel::allow_tables_to_appear_in_same_query!(
53
-
dbs,
54
-
files,
55
-
funcs,
56
-
users,
57
-
);
···
3
diesel::table! {
4
dbs (id) {
5
id -> Int4,
0
6
file_path -> Nullable<Varchar>,
0
7
idb_path -> Nullable<Varchar>,
8
file_id -> Nullable<Int4>,
9
user_id -> Nullable<Int4>,
···
28
rank -> Nullable<Int4>,
29
push_dt -> Nullable<Timestamptz>,
30
update_dt -> Nullable<Timestamptz>,
0
31
}
32
}
33
···
36
id -> Int4,
37
lic_id -> Nullable<Bytea>,
38
lic_data -> Nullable<Bytea>,
0
39
hostname -> Nullable<Varchar>,
40
first_seen -> Nullable<Timestamptz>,
41
}
···
45
diesel::joinable!(dbs -> users (user_id));
46
diesel::joinable!(funcs -> dbs (db_id));
47
48
+
diesel::allow_tables_to_appear_in_same_query!(dbs, files, funcs, users,);
0
0
0
0
0
+38
-35
common/src/rpc/messages.rs
···
3
4
#[derive(Deserialize, Serialize)]
5
pub struct RpcFail<'a> {
6
-
pub result: u32,
7
-
pub error: &'a str,
8
}
9
10
#[derive(Serialize, Deserialize)]
11
pub struct RpcNotify<'a> {
12
-
pub ty: u32,
13
-
pub text: &'a str,
14
}
15
16
#[derive(Serialize, Deserialize, Debug)]
···
21
22
#[derive(Serialize, Deserialize)]
23
pub struct RpcHello<'a> {
24
-
pub client_version: u32,
25
pub license_data: &'a [u8],
26
pub lic_number: [u8; 6],
27
-
pub record_conv: u32,
28
}
29
30
#[derive(Debug, Deserialize, Serialize, Clone)]
31
-
pub struct PatternId<'a> {
32
-
pub ty: u32,
33
-
pub data: &'a [u8],
34
}
35
36
#[derive(Deserialize, Serialize)]
37
pub struct PullMetadata<'a> {
38
-
pub flags: u32,
39
-
pub keys: Cow<'a, [u32]>,
40
41
#[serde(borrow)]
42
-
pub pattern_ids: Cow<'a, [PatternId<'a>]>,
43
}
44
45
#[derive(Deserialize, Serialize, Clone)]
···
52
53
#[derive(Deserialize, Serialize)]
54
pub struct PullMetadataResult<'a> {
55
-
pub codes: Cow<'a, [u32]>,
56
#[serde(borrow)]
57
pub funcs: Cow<'a, [PullMetadataResultFunc<'a>]>,
58
}
···
62
pub name: &'a str,
63
pub func_len: u32,
64
pub func_data: &'a [u8],
65
-
pub pattern_id: PatternId<'a>,
0
0
0
66
}
67
68
#[derive(Deserialize, Serialize)]
69
pub struct PushMetadata<'a> {
70
-
pub flags: u32,
71
pub idb_path: &'a str,
72
-
pub input_path: &'a str,
73
-
pub input_md5: [u8; 16],
74
pub hostname: &'a str,
75
pub funcs: Cow<'a, [PushMetadataFunc<'a>]>,
76
-
pub ea64s: Cow<'a, [u64]>,
77
}
78
79
#[derive(Deserialize, Serialize)]
···
84
85
#[derive(Debug, Deserialize, Serialize)]
86
pub struct DelHistory<'a> {
87
-
pub flags: u32, // =0x08
88
-
pub license_ids: Cow<'a, [Cow<'a, str>]>,
89
-
pub time_ranges: Cow<'a, [[u64; 2]]>,
90
-
pub history_id_ranges: Cow<'a, [[u64; 2]]>,
91
-
pub idbs: Cow<'a, [Cow<'a, str>]>,
92
-
pub inputs: Cow<'a, [Cow<'a, str>]>,
93
-
pub funcs: Cow<'a, [Cow<'a, str>]>, // funcs
94
-
pub usernames: Cow<'a, [Cow<'a, str>]>,
95
-
pub input_hashes: Cow<'a, [Cow<'a, [u8; 16]>]>,
96
-
pub calcrel_hashes: Cow<'a, [Cow<'a, [u8; 16]>]>,
97
-
pub push_id_ranges: Cow<'a, [[u64; 2]]>,
98
-
pub max_entries: u64,
99
}
100
101
#[derive(Deserialize, Serialize)]
102
pub struct DelHistoryResult {
103
-
pub ndeleted: u32,
104
}
105
106
#[derive(Debug, Deserialize, Serialize, Default)]
···
122
#[derive(Debug, Deserialize, Serialize)]
123
pub struct GetFuncHistories<'a> {
124
#[serde(borrow)]
125
-
pub funcs: Cow<'a, [PatternId<'a>]>,
126
-
pub flags: u32,
127
}
128
129
#[derive(Debug, Deserialize, Serialize, Clone)]
···
148
pub status: Cow<'a, [u32]>,
149
#[serde(borrow)]
150
pub funcs: Cow<'a, [FunctionHistories<'a>]>,
151
-
pub authors: Cow<'a, [Cow<'a, str>]>,
152
-
pub idb_paths: Cow<'a, [Cow<'a, str>]>,
153
}
···
3
4
#[derive(Deserialize, Serialize)]
5
pub struct RpcFail<'a> {
6
+
pub code: u32,
7
+
pub message: &'a str,
8
}
9
10
#[derive(Serialize, Deserialize)]
11
pub struct RpcNotify<'a> {
12
+
pub code: u32,
13
+
pub msg: &'a str,
14
}
15
16
#[derive(Serialize, Deserialize, Debug)]
···
21
22
#[derive(Serialize, Deserialize)]
23
pub struct RpcHello<'a> {
24
+
pub protocol_version: u32,
25
pub license_data: &'a [u8],
26
pub lic_number: [u8; 6],
27
+
pub unk2: u32,
28
}
29
30
#[derive(Debug, Deserialize, Serialize, Clone)]
31
+
pub struct PullMetadataFunc<'a> {
32
+
pub unk0: u32,
33
+
pub mb_hash: &'a [u8],
34
}
35
36
#[derive(Deserialize, Serialize)]
37
pub struct PullMetadata<'a> {
38
+
pub unk0: u32,
39
+
pub unk1: Cow<'a, [u32]>,
40
41
#[serde(borrow)]
42
+
pub funcs: Cow<'a, [PullMetadataFunc<'a>]>,
43
}
44
45
#[derive(Deserialize, Serialize, Clone)]
···
52
53
#[derive(Deserialize, Serialize)]
54
pub struct PullMetadataResult<'a> {
55
+
pub unk0: Cow<'a, [u32]>,
56
#[serde(borrow)]
57
pub funcs: Cow<'a, [PullMetadataResultFunc<'a>]>,
58
}
···
62
pub name: &'a str,
63
pub func_len: u32,
64
pub func_data: &'a [u8],
65
+
66
+
// PullMetadata's fields (tuple 'unk2') are similar to these two
67
+
pub unk2: u32,
68
+
pub hash: &'a [u8],
69
}
70
71
#[derive(Deserialize, Serialize)]
72
pub struct PushMetadata<'a> {
73
+
pub unk0: u32,
74
pub idb_path: &'a str,
75
+
pub file_path: &'a str,
76
+
pub md5: [u8; 16],
77
pub hostname: &'a str,
78
pub funcs: Cow<'a, [PushMetadataFunc<'a>]>,
79
+
pub unk1: Cow<'a, [u64]>,
80
}
81
82
#[derive(Deserialize, Serialize)]
···
87
88
#[derive(Debug, Deserialize, Serialize)]
89
pub struct DelHistory<'a> {
90
+
pub unk0: u32, // =0x08
91
+
pub unk1: Cow<'a, [Cow<'a, str>]>,
92
+
pub unk2: Cow<'a, [[u64; 2]]>,
93
+
pub unk3: Cow<'a, [[u64; 2]]>,
94
+
pub unk4: Cow<'a, [Cow<'a, str>]>,
95
+
pub unk5: Cow<'a, [Cow<'a, str>]>,
96
+
pub unk6: Cow<'a, [Cow<'a, str>]>,
97
+
pub unk7: Cow<'a, [Cow<'a, str>]>,
98
+
pub unk8: Cow<'a, [Cow<'a, [u8; 16]>]>,
99
+
pub funcs: Cow<'a, [Cow<'a, [u8; 16]>]>,
100
+
pub unk10: Cow<'a, [[u64; 2]]>,
101
+
pub unk11: u64,
102
}
103
104
#[derive(Deserialize, Serialize)]
105
pub struct DelHistoryResult {
106
+
pub deleted_mds: u32,
107
}
108
109
#[derive(Debug, Deserialize, Serialize, Default)]
···
125
#[derive(Debug, Deserialize, Serialize)]
126
pub struct GetFuncHistories<'a> {
127
#[serde(borrow)]
128
+
pub funcs: Cow<'a, [PullMetadataFunc<'a>]>,
129
+
pub unk0: u32,
130
}
131
132
#[derive(Debug, Deserialize, Serialize, Clone)]
···
151
pub status: Cow<'a, [u32]>,
152
#[serde(borrow)]
153
pub funcs: Cow<'a, [FunctionHistories<'a>]>,
154
+
pub users: Cow<'a, [Cow<'a, str>]>,
155
+
pub dbs: Cow<'a, [Cow<'a, str>]>,
156
}
+2
-2
common/src/rpc/mod.rs
···
193
0x0c => RpcMessage::Notify(Self::deserialize_check(payload)?),
194
0x0d => {
195
let (hello, consumed) = de::from_slice::<messages::RpcHello>(payload)?;
196
-
let creds = if payload.len() > consumed && hello.client_version > 2 {
197
let payload = &payload[consumed..];
198
let (creds, consumed) = de::from_slice::<Creds>(payload)?;
199
if payload.len() != consumed {
···
201
}
202
Some(creds)
203
} else {
204
-
if hello.client_version > 2 || payload.len() != consumed {
205
trace!("Unexpected Hello msg: {payload:02x?}");
206
}
207
None
···
193
0x0c => RpcMessage::Notify(Self::deserialize_check(payload)?),
194
0x0d => {
195
let (hello, consumed) = de::from_slice::<messages::RpcHello>(payload)?;
196
+
let creds = if payload.len() > consumed && hello.protocol_version > 2 {
197
let payload = &payload[consumed..];
198
let (creds, consumed) = de::from_slice::<Creds>(payload)?;
199
if payload.len() != consumed {
···
201
}
202
Some(creds)
203
} else {
204
+
if hello.protocol_version > 2 || payload.len() != consumed {
205
trace!("Unexpected Hello msg: {payload:02x?}");
206
}
207
None
+1
-1
common/src/web/api.rs
···
111
in_files: &'a [Md5],
112
}
113
114
-
let funcs = [crate::rpc::PatternId { ty: 1, data: &md5.0 }];
115
116
let files_with = state.db.get_files_with_func(&md5.0[..]);
117
let files_info = state.db.get_funcs(&funcs);
···
111
in_files: &'a [Md5],
112
}
113
114
+
let funcs = [crate::rpc::PullMetadataFunc { unk0: 1, mb_hash: &md5.0 }];
115
116
let files_with = state.db.get_files_with_func(&md5.0[..]);
117
let files_info = state.db.get_funcs(&funcs);
+6
-6
lumen/Cargo.toml
···
7
publish = false
8
9
[dependencies]
10
-
common = {path = "../common"}
11
-
tokio = {version = "1.32", features = ["full"]}
12
-
log = {version = "0.4", features = ["release_max_level_debug"]}
13
pretty_env_logger = "0.5"
14
-
clap = "4.3"
15
tokio-native-tls = "0.3"
16
-
native-tls = {version = "0.2"}
17
warp = "0.3"
18
-
prometheus-client = "0.22.0"
···
7
publish = false
8
9
[dependencies]
10
+
common = { path = "../common" }
11
+
tokio = { version = "1.39", features = ["full"] }
12
+
log = { version = "0.4", features = ["release_max_level_debug"] }
13
pretty_env_logger = "0.5"
14
+
clap = "4.5"
15
tokio-native-tls = "0.3"
16
+
native-tls = { version = "0.2" }
17
warp = "0.3"
18
+
prometheus-client = "0.22"
+36
-36
lumen/src/server.rs
···
40
},
41
Err(_) => {
42
_ = RpcMessage::Fail(RpcFail {
43
-
result: 0,
44
-
error: &format!("{server_name} client idle for too long.\n"),
45
})
46
.async_write(&mut stream)
47
.await;
···
55
warn!("bad message: \n{}\n", make_pretty_hex(&req));
56
error!("failed to process rpc message: {}", err);
57
let resp = rpc::RpcFail {
58
-
result: 0,
59
-
error: &format!("{server_name}: error: invalid data.\n"),
60
};
61
let resp = RpcMessage::Fail(resp);
62
resp.async_write(&mut stream).await?;
···
67
match req {
68
RpcMessage::PullMetadata(md) => {
69
let start = Instant::now();
70
-
let funcs = match timeout(Duration::from_secs(4 * 60), db.get_funcs(&md.pattern_ids))
71
-
.await
72
-
{
73
Ok(r) => match r {
74
Ok(v) => v,
75
Err(e) => {
76
error!("pull failed, db: {}", e);
77
rpc::RpcMessage::Fail(rpc::RpcFail {
78
-
result: 0,
79
-
error: &format!("{server_name}: db error; please try again later..\n"),
0
0
80
})
81
.async_write(&mut stream)
82
.await?;
···
85
},
86
Err(_) => {
87
RpcMessage::Fail(RpcFail {
88
-
result: 0,
89
-
error: &format!("{server_name}: query took too long to execute.\n"),
90
})
91
.async_write(&mut stream)
92
.await?;
···
96
};
97
let pulled_funcs = funcs.iter().filter(|v| v.is_some()).count();
98
state.metrics.pulls.inc_by(pulled_funcs as _);
99
-
state.metrics.queried_funcs.inc_by(md.pattern_ids.len() as _);
100
debug!(
101
"pull {pulled_funcs}/{} funcs ended after {:?}",
102
-
md.pattern_ids.len(),
103
start.elapsed()
104
);
105
···
116
.collect();
117
118
RpcMessage::PullMetadataResult(rpc::PullMetadataResult {
119
-
codes: Cow::Owned(statuses),
120
funcs: Cow::Owned(found),
121
})
122
.async_write(&mut stream)
···
132
Err(err) => {
133
log::error!("push failed, db: {}", err);
134
rpc::RpcMessage::Fail(rpc::RpcFail {
135
-
result: 0,
136
-
error: &format!("{server_name}: db error; please try again later.\n"),
137
})
138
.async_write(&mut stream)
139
.await?;
···
158
let is_delete_allowed = state.config.lumina.allow_deletes.unwrap_or(false);
159
if !is_delete_allowed {
160
RpcMessage::Fail(rpc::RpcFail {
161
-
result: 2,
162
-
error: &format!("{server_name}: Delete command is disabled on this server."),
163
})
164
.async_write(&mut stream)
165
.await?;
···
167
if let Err(err) = db.delete_metadata(&req).await {
168
error!("delete failed. db: {err}");
169
RpcMessage::Fail(rpc::RpcFail {
170
-
result: 3,
171
-
error: &format!("{server_name}: db error, please try again later."),
172
})
173
.async_write(&mut stream)
174
.await?;
175
return Ok(());
176
}
177
RpcMessage::DelHistoryResult(rpc::DelHistoryResult {
178
-
ndeleted: req.calcrel_hashes.len() as u32,
179
})
180
.async_write(&mut stream)
181
.await?;
···
186
187
if limit == 0 {
188
RpcMessage::Fail(rpc::RpcFail {
189
-
result: 4,
190
-
error: &format!(
191
"{server_name}: function histories are disabled on this server."
192
),
193
})
···
198
199
let mut statuses = vec![];
200
let mut res = vec![];
201
-
for chksum in req.funcs.iter().map(|v| v.data) {
202
let history = match db.get_func_histories(chksum, limit).await {
203
Ok(v) => v,
204
Err(err) => {
205
error!("failed to get function histories: {err:?}");
206
RpcMessage::Fail(rpc::RpcFail {
207
-
result: 3,
208
-
error: &format!("{server_name}: db error, please try again later."),
209
})
210
.async_write(&mut stream)
211
.await?;
···
237
RpcMessage::GetFuncHistoriesResult(rpc::GetFuncHistoriesResult {
238
status: statuses.into(),
239
funcs: Cow::Owned(res),
240
-
authors: vec![].into(),
241
-
idb_paths: vec![].into(),
242
})
243
.async_write(&mut stream)
244
.await?;
245
},
246
_ => {
247
RpcMessage::Fail(rpc::RpcFail {
248
-
result: 0,
249
-
error: &format!("{server_name}: invalid data.\n"),
250
})
251
.async_write(&mut stream)
252
.await?;
···
269
270
let (hello, creds) = match RpcMessage::deserialize(&hello) {
271
Ok(RpcMessage::Hello(v, creds)) => {
272
-
debug!("hello protocol={}, login creds: {creds:?}", v.client_version);
273
(v, creds)
274
},
275
_ => {
276
// send error
277
error!("got bad hello message");
278
279
-
let resp = rpc::RpcFail { result: 0, error: &format!("{server_name}: bad sequence.") };
280
let resp = rpc::RpcMessage::Fail(resp);
281
resp.async_write(&mut stream).await?;
282
···
286
state
287
.metrics
288
.lumina_version
289
-
.get_or_create(&LuminaVersion { protocol_version: hello.client_version })
290
.inc();
291
292
if let Some(ref creds) = creds {
293
if creds.username != "guest" {
294
// Only allow "guest" to connect for now.
295
rpc::RpcMessage::Fail(rpc::RpcFail {
296
-
result: 1,
297
-
error: &format!("{server_name}: invalid username or password. Try logging in with `guest` instead."),
298
}).async_write(&mut stream).await?;
299
return Ok(());
300
}
301
}
302
303
-
let resp = match hello.client_version {
304
0..=4 => rpc::RpcMessage::Ok(()),
305
306
// starting IDA 8.3
···
40
},
41
Err(_) => {
42
_ = RpcMessage::Fail(RpcFail {
43
+
code: 0,
44
+
message: &format!("{server_name} client idle for too long.\n"),
45
})
46
.async_write(&mut stream)
47
.await;
···
55
warn!("bad message: \n{}\n", make_pretty_hex(&req));
56
error!("failed to process rpc message: {}", err);
57
let resp = rpc::RpcFail {
58
+
code: 0,
59
+
message: &format!("{server_name}: error: invalid data.\n"),
60
};
61
let resp = RpcMessage::Fail(resp);
62
resp.async_write(&mut stream).await?;
···
67
match req {
68
RpcMessage::PullMetadata(md) => {
69
let start = Instant::now();
70
+
let funcs = match timeout(Duration::from_secs(4 * 60), db.get_funcs(&md.funcs)).await {
0
0
71
Ok(r) => match r {
72
Ok(v) => v,
73
Err(e) => {
74
error!("pull failed, db: {}", e);
75
rpc::RpcMessage::Fail(rpc::RpcFail {
76
+
code: 0,
77
+
message: &format!(
78
+
"{server_name}: db error; please try again later..\n"
79
+
),
80
})
81
.async_write(&mut stream)
82
.await?;
···
85
},
86
Err(_) => {
87
RpcMessage::Fail(RpcFail {
88
+
code: 0,
89
+
message: &format!("{server_name}: query took too long to execute.\n"),
90
})
91
.async_write(&mut stream)
92
.await?;
···
96
};
97
let pulled_funcs = funcs.iter().filter(|v| v.is_some()).count();
98
state.metrics.pulls.inc_by(pulled_funcs as _);
99
+
state.metrics.queried_funcs.inc_by(md.funcs.len() as _);
100
debug!(
101
"pull {pulled_funcs}/{} funcs ended after {:?}",
102
+
md.funcs.len(),
103
start.elapsed()
104
);
105
···
116
.collect();
117
118
RpcMessage::PullMetadataResult(rpc::PullMetadataResult {
119
+
unk0: Cow::Owned(statuses),
120
funcs: Cow::Owned(found),
121
})
122
.async_write(&mut stream)
···
132
Err(err) => {
133
log::error!("push failed, db: {}", err);
134
rpc::RpcMessage::Fail(rpc::RpcFail {
135
+
code: 0,
136
+
message: &format!("{server_name}: db error; please try again later.\n"),
137
})
138
.async_write(&mut stream)
139
.await?;
···
158
let is_delete_allowed = state.config.lumina.allow_deletes.unwrap_or(false);
159
if !is_delete_allowed {
160
RpcMessage::Fail(rpc::RpcFail {
161
+
code: 2,
162
+
message: &format!("{server_name}: Delete command is disabled on this server."),
163
})
164
.async_write(&mut stream)
165
.await?;
···
167
if let Err(err) = db.delete_metadata(&req).await {
168
error!("delete failed. db: {err}");
169
RpcMessage::Fail(rpc::RpcFail {
170
+
code: 3,
171
+
message: &format!("{server_name}: db error, please try again later."),
172
})
173
.async_write(&mut stream)
174
.await?;
175
return Ok(());
176
}
177
RpcMessage::DelHistoryResult(rpc::DelHistoryResult {
178
+
deleted_mds: req.funcs.len() as u32,
179
})
180
.async_write(&mut stream)
181
.await?;
···
186
187
if limit == 0 {
188
RpcMessage::Fail(rpc::RpcFail {
189
+
code: 4,
190
+
message: &format!(
191
"{server_name}: function histories are disabled on this server."
192
),
193
})
···
198
199
let mut statuses = vec![];
200
let mut res = vec![];
201
+
for chksum in req.funcs.iter().map(|v| v.mb_hash) {
202
let history = match db.get_func_histories(chksum, limit).await {
203
Ok(v) => v,
204
Err(err) => {
205
error!("failed to get function histories: {err:?}");
206
RpcMessage::Fail(rpc::RpcFail {
207
+
code: 3,
208
+
message: &format!("{server_name}: db error, please try again later."),
209
})
210
.async_write(&mut stream)
211
.await?;
···
237
RpcMessage::GetFuncHistoriesResult(rpc::GetFuncHistoriesResult {
238
status: statuses.into(),
239
funcs: Cow::Owned(res),
240
+
users: vec![].into(),
241
+
dbs: vec![].into(),
242
})
243
.async_write(&mut stream)
244
.await?;
245
},
246
_ => {
247
RpcMessage::Fail(rpc::RpcFail {
248
+
code: 0,
249
+
message: &format!("{server_name}: invalid data.\n"),
250
})
251
.async_write(&mut stream)
252
.await?;
···
269
270
let (hello, creds) = match RpcMessage::deserialize(&hello) {
271
Ok(RpcMessage::Hello(v, creds)) => {
272
+
debug!("hello protocol={}, login creds: {creds:?}", v.protocol_version);
273
(v, creds)
274
},
275
_ => {
276
// send error
277
error!("got bad hello message");
278
279
+
let resp = rpc::RpcFail { code: 0, message: &format!("{server_name}: bad sequence.") };
280
let resp = rpc::RpcMessage::Fail(resp);
281
resp.async_write(&mut stream).await?;
282
···
286
state
287
.metrics
288
.lumina_version
289
+
.get_or_create(&LuminaVersion { protocol_version: hello.protocol_version })
290
.inc();
291
292
if let Some(ref creds) = creds {
293
if creds.username != "guest" {
294
// Only allow "guest" to connect for now.
295
rpc::RpcMessage::Fail(rpc::RpcFail {
296
+
code: 1,
297
+
message: &format!("{server_name}: invalid username or password. Try logging in with `guest` instead."),
298
}).async_write(&mut stream).await?;
299
return Ok(());
300
}
301
}
302
303
+
let resp = match hello.protocol_version {
304
0..=4 => rpc::RpcMessage::Ok(()),
305
306
// starting IDA 8.3