tangled
alpha
login
or
join now
ptr.pet
/
aturlist
0
fork
atom
aturi indexer with listRecords and countRecords endpoints
0
fork
atom
overview
issues
pulls
pipelines
initial impl
ptr.pet
1 month ago
34de0548
8c99eabc
verified
This commit was signed with the committer's
known signature
.
ptr.pet
SSH Key Fingerprint:
SHA256:Abmvag+juovVufZTxyWY8KcVgrznxvBjQpJesv071Aw=
+2721
7 changed files
expand all
collapse all
unified
split
.gitignore
Cargo.lock
Cargo.toml
default.nix
flake.nix
src
main.rs
verify_pds.nu
+5
.gitignore
···
2
.envrc
3
result
4
target
0
0
0
0
0
···
2
.envrc
3
result
4
target
5
+
.scratchpad
6
+
aturlist_fjall
7
+
aturlist.log
8
+
tap.log
9
+
tap.db
+2259
Cargo.lock
···
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
# This file is automatically @generated by Cargo.
2
+
# It is not intended for manual editing.
3
+
version = 4
4
+
5
+
[[package]]
6
+
name = "android_system_properties"
7
+
version = "0.1.5"
8
+
source = "registry+https://github.com/rust-lang/crates.io-index"
9
+
checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
10
+
dependencies = [
11
+
"libc",
12
+
]
13
+
14
+
[[package]]
15
+
name = "anyhow"
16
+
version = "1.0.100"
17
+
source = "registry+https://github.com/rust-lang/crates.io-index"
18
+
checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61"
19
+
20
+
[[package]]
21
+
name = "async-trait"
22
+
version = "0.1.89"
23
+
source = "registry+https://github.com/rust-lang/crates.io-index"
24
+
checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb"
25
+
dependencies = [
26
+
"proc-macro2",
27
+
"quote",
28
+
"syn",
29
+
]
30
+
31
+
[[package]]
32
+
name = "atomic-waker"
33
+
version = "1.1.2"
34
+
source = "registry+https://github.com/rust-lang/crates.io-index"
35
+
checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
36
+
37
+
[[package]]
38
+
name = "aturlist"
39
+
version = "0.1.0"
40
+
dependencies = [
41
+
"anyhow",
42
+
"axum",
43
+
"chrono",
44
+
"fjall",
45
+
"futures",
46
+
"serde",
47
+
"serde_json",
48
+
"tapped",
49
+
"tokio",
50
+
"tracing",
51
+
"tracing-subscriber",
52
+
]
53
+
54
+
[[package]]
55
+
name = "autocfg"
56
+
version = "1.5.0"
57
+
source = "registry+https://github.com/rust-lang/crates.io-index"
58
+
checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
59
+
60
+
[[package]]
61
+
name = "axum"
62
+
version = "0.7.9"
63
+
source = "registry+https://github.com/rust-lang/crates.io-index"
64
+
checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f"
65
+
dependencies = [
66
+
"async-trait",
67
+
"axum-core",
68
+
"bytes",
69
+
"futures-util",
70
+
"http",
71
+
"http-body",
72
+
"http-body-util",
73
+
"hyper",
74
+
"hyper-util",
75
+
"itoa",
76
+
"matchit",
77
+
"memchr",
78
+
"mime",
79
+
"percent-encoding",
80
+
"pin-project-lite",
81
+
"rustversion",
82
+
"serde",
83
+
"serde_json",
84
+
"serde_path_to_error",
85
+
"serde_urlencoded",
86
+
"sync_wrapper",
87
+
"tokio",
88
+
"tower",
89
+
"tower-layer",
90
+
"tower-service",
91
+
"tracing",
92
+
]
93
+
94
+
[[package]]
95
+
name = "axum-core"
96
+
version = "0.4.5"
97
+
source = "registry+https://github.com/rust-lang/crates.io-index"
98
+
checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199"
99
+
dependencies = [
100
+
"async-trait",
101
+
"bytes",
102
+
"futures-util",
103
+
"http",
104
+
"http-body",
105
+
"http-body-util",
106
+
"mime",
107
+
"pin-project-lite",
108
+
"rustversion",
109
+
"sync_wrapper",
110
+
"tower-layer",
111
+
"tower-service",
112
+
"tracing",
113
+
]
114
+
115
+
[[package]]
116
+
name = "base64"
117
+
version = "0.22.1"
118
+
source = "registry+https://github.com/rust-lang/crates.io-index"
119
+
checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
120
+
121
+
[[package]]
122
+
name = "bitflags"
123
+
version = "2.10.0"
124
+
source = "registry+https://github.com/rust-lang/crates.io-index"
125
+
checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3"
126
+
127
+
[[package]]
128
+
name = "block-buffer"
129
+
version = "0.10.4"
130
+
source = "registry+https://github.com/rust-lang/crates.io-index"
131
+
checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
132
+
dependencies = [
133
+
"generic-array",
134
+
]
135
+
136
+
[[package]]
137
+
name = "bumpalo"
138
+
version = "3.19.1"
139
+
source = "registry+https://github.com/rust-lang/crates.io-index"
140
+
checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
141
+
142
+
[[package]]
143
+
name = "byteorder-lite"
144
+
version = "0.1.0"
145
+
source = "registry+https://github.com/rust-lang/crates.io-index"
146
+
checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495"
147
+
148
+
[[package]]
149
+
name = "bytes"
150
+
version = "1.11.0"
151
+
source = "registry+https://github.com/rust-lang/crates.io-index"
152
+
checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3"
153
+
154
+
[[package]]
155
+
name = "byteview"
156
+
version = "0.10.0"
157
+
source = "registry+https://github.com/rust-lang/crates.io-index"
158
+
checksum = "dda4398f387cc6395a3e93b3867cd9abda914c97a0b344d1eefb2e5c51785fca"
159
+
160
+
[[package]]
161
+
name = "cc"
162
+
version = "1.2.53"
163
+
source = "registry+https://github.com/rust-lang/crates.io-index"
164
+
checksum = "755d2fce177175ffca841e9a06afdb2c4ab0f593d53b4dee48147dfaade85932"
165
+
dependencies = [
166
+
"find-msvc-tools",
167
+
"shlex",
168
+
]
169
+
170
+
[[package]]
171
+
name = "cfg-if"
172
+
version = "1.0.4"
173
+
source = "registry+https://github.com/rust-lang/crates.io-index"
174
+
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
175
+
176
+
[[package]]
177
+
name = "cfg_aliases"
178
+
version = "0.2.1"
179
+
source = "registry+https://github.com/rust-lang/crates.io-index"
180
+
checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
181
+
182
+
[[package]]
183
+
name = "chrono"
184
+
version = "0.4.43"
185
+
source = "registry+https://github.com/rust-lang/crates.io-index"
186
+
checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118"
187
+
dependencies = [
188
+
"iana-time-zone",
189
+
"js-sys",
190
+
"num-traits",
191
+
"wasm-bindgen",
192
+
"windows-link",
193
+
]
194
+
195
+
[[package]]
196
+
name = "compare"
197
+
version = "0.0.6"
198
+
source = "registry+https://github.com/rust-lang/crates.io-index"
199
+
checksum = "ea0095f6103c2a8b44acd6fd15960c801dafebf02e21940360833e0673f48ba7"
200
+
201
+
[[package]]
202
+
name = "core-foundation"
203
+
version = "0.10.1"
204
+
source = "registry+https://github.com/rust-lang/crates.io-index"
205
+
checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6"
206
+
dependencies = [
207
+
"core-foundation-sys",
208
+
"libc",
209
+
]
210
+
211
+
[[package]]
212
+
name = "core-foundation-sys"
213
+
version = "0.8.7"
214
+
source = "registry+https://github.com/rust-lang/crates.io-index"
215
+
checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
216
+
217
+
[[package]]
218
+
name = "cpufeatures"
219
+
version = "0.2.17"
220
+
source = "registry+https://github.com/rust-lang/crates.io-index"
221
+
checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
222
+
dependencies = [
223
+
"libc",
224
+
]
225
+
226
+
[[package]]
227
+
name = "crossbeam-epoch"
228
+
version = "0.9.18"
229
+
source = "registry+https://github.com/rust-lang/crates.io-index"
230
+
checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
231
+
dependencies = [
232
+
"crossbeam-utils",
233
+
]
234
+
235
+
[[package]]
236
+
name = "crossbeam-skiplist"
237
+
version = "0.1.3"
238
+
source = "registry+https://github.com/rust-lang/crates.io-index"
239
+
checksum = "df29de440c58ca2cc6e587ec3d22347551a32435fbde9d2bff64e78a9ffa151b"
240
+
dependencies = [
241
+
"crossbeam-epoch",
242
+
"crossbeam-utils",
243
+
]
244
+
245
+
[[package]]
246
+
name = "crossbeam-utils"
247
+
version = "0.8.21"
248
+
source = "registry+https://github.com/rust-lang/crates.io-index"
249
+
checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
250
+
251
+
[[package]]
252
+
name = "crypto-common"
253
+
version = "0.1.7"
254
+
source = "registry+https://github.com/rust-lang/crates.io-index"
255
+
checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
256
+
dependencies = [
257
+
"generic-array",
258
+
"typenum",
259
+
]
260
+
261
+
[[package]]
262
+
name = "dashmap"
263
+
version = "6.1.0"
264
+
source = "registry+https://github.com/rust-lang/crates.io-index"
265
+
checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf"
266
+
dependencies = [
267
+
"cfg-if",
268
+
"crossbeam-utils",
269
+
"hashbrown 0.14.5",
270
+
"lock_api",
271
+
"once_cell",
272
+
"parking_lot_core",
273
+
]
274
+
275
+
[[package]]
276
+
name = "data-encoding"
277
+
version = "2.10.0"
278
+
source = "registry+https://github.com/rust-lang/crates.io-index"
279
+
checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea"
280
+
281
+
[[package]]
282
+
name = "digest"
283
+
version = "0.10.7"
284
+
source = "registry+https://github.com/rust-lang/crates.io-index"
285
+
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
286
+
dependencies = [
287
+
"block-buffer",
288
+
"crypto-common",
289
+
]
290
+
291
+
[[package]]
292
+
name = "displaydoc"
293
+
version = "0.2.5"
294
+
source = "registry+https://github.com/rust-lang/crates.io-index"
295
+
checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
296
+
dependencies = [
297
+
"proc-macro2",
298
+
"quote",
299
+
"syn",
300
+
]
301
+
302
+
[[package]]
303
+
name = "enum_dispatch"
304
+
version = "0.3.13"
305
+
source = "registry+https://github.com/rust-lang/crates.io-index"
306
+
checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd"
307
+
dependencies = [
308
+
"once_cell",
309
+
"proc-macro2",
310
+
"quote",
311
+
"syn",
312
+
]
313
+
314
+
[[package]]
315
+
name = "equivalent"
316
+
version = "1.0.2"
317
+
source = "registry+https://github.com/rust-lang/crates.io-index"
318
+
checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
319
+
320
+
[[package]]
321
+
name = "errno"
322
+
version = "0.3.14"
323
+
source = "registry+https://github.com/rust-lang/crates.io-index"
324
+
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
325
+
dependencies = [
326
+
"libc",
327
+
"windows-sys 0.61.2",
328
+
]
329
+
330
+
[[package]]
331
+
name = "fastrand"
332
+
version = "2.3.0"
333
+
source = "registry+https://github.com/rust-lang/crates.io-index"
334
+
checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
335
+
336
+
[[package]]
337
+
name = "find-msvc-tools"
338
+
version = "0.1.8"
339
+
source = "registry+https://github.com/rust-lang/crates.io-index"
340
+
checksum = "8591b0bcc8a98a64310a2fae1bb3e9b8564dd10e381e6e28010fde8e8e8568db"
341
+
342
+
[[package]]
343
+
name = "fjall"
344
+
version = "3.0.1"
345
+
source = "registry+https://github.com/rust-lang/crates.io-index"
346
+
checksum = "4f69637c02d38ad1b0f003101d0195a60368130aa17d9ef78b1557d265a22093"
347
+
dependencies = [
348
+
"byteorder-lite",
349
+
"byteview",
350
+
"dashmap",
351
+
"flume",
352
+
"log",
353
+
"lsm-tree",
354
+
"lz4_flex",
355
+
"tempfile",
356
+
"xxhash-rust",
357
+
]
358
+
359
+
[[package]]
360
+
name = "flume"
361
+
version = "0.12.0"
362
+
source = "registry+https://github.com/rust-lang/crates.io-index"
363
+
checksum = "5e139bc46ca777eb5efaf62df0ab8cc5fd400866427e56c68b22e414e53bd3be"
364
+
dependencies = [
365
+
"spin",
366
+
]
367
+
368
+
[[package]]
369
+
name = "form_urlencoded"
370
+
version = "1.2.2"
371
+
source = "registry+https://github.com/rust-lang/crates.io-index"
372
+
checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"
373
+
dependencies = [
374
+
"percent-encoding",
375
+
]
376
+
377
+
[[package]]
378
+
name = "futures"
379
+
version = "0.3.31"
380
+
source = "registry+https://github.com/rust-lang/crates.io-index"
381
+
checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876"
382
+
dependencies = [
383
+
"futures-channel",
384
+
"futures-core",
385
+
"futures-executor",
386
+
"futures-io",
387
+
"futures-sink",
388
+
"futures-task",
389
+
"futures-util",
390
+
]
391
+
392
+
[[package]]
393
+
name = "futures-channel"
394
+
version = "0.3.31"
395
+
source = "registry+https://github.com/rust-lang/crates.io-index"
396
+
checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10"
397
+
dependencies = [
398
+
"futures-core",
399
+
"futures-sink",
400
+
]
401
+
402
+
[[package]]
403
+
name = "futures-core"
404
+
version = "0.3.31"
405
+
source = "registry+https://github.com/rust-lang/crates.io-index"
406
+
checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
407
+
408
+
[[package]]
409
+
name = "futures-executor"
410
+
version = "0.3.31"
411
+
source = "registry+https://github.com/rust-lang/crates.io-index"
412
+
checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f"
413
+
dependencies = [
414
+
"futures-core",
415
+
"futures-task",
416
+
"futures-util",
417
+
]
418
+
419
+
[[package]]
420
+
name = "futures-io"
421
+
version = "0.3.31"
422
+
source = "registry+https://github.com/rust-lang/crates.io-index"
423
+
checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
424
+
425
+
[[package]]
426
+
name = "futures-macro"
427
+
version = "0.3.31"
428
+
source = "registry+https://github.com/rust-lang/crates.io-index"
429
+
checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
430
+
dependencies = [
431
+
"proc-macro2",
432
+
"quote",
433
+
"syn",
434
+
]
435
+
436
+
[[package]]
437
+
name = "futures-sink"
438
+
version = "0.3.31"
439
+
source = "registry+https://github.com/rust-lang/crates.io-index"
440
+
checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7"
441
+
442
+
[[package]]
443
+
name = "futures-task"
444
+
version = "0.3.31"
445
+
source = "registry+https://github.com/rust-lang/crates.io-index"
446
+
checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
447
+
448
+
[[package]]
449
+
name = "futures-util"
450
+
version = "0.3.31"
451
+
source = "registry+https://github.com/rust-lang/crates.io-index"
452
+
checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
453
+
dependencies = [
454
+
"futures-channel",
455
+
"futures-core",
456
+
"futures-io",
457
+
"futures-macro",
458
+
"futures-sink",
459
+
"futures-task",
460
+
"memchr",
461
+
"pin-project-lite",
462
+
"pin-utils",
463
+
"slab",
464
+
]
465
+
466
+
[[package]]
467
+
name = "generic-array"
468
+
version = "0.14.7"
469
+
source = "registry+https://github.com/rust-lang/crates.io-index"
470
+
checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
471
+
dependencies = [
472
+
"typenum",
473
+
"version_check",
474
+
]
475
+
476
+
[[package]]
477
+
name = "getrandom"
478
+
version = "0.2.17"
479
+
source = "registry+https://github.com/rust-lang/crates.io-index"
480
+
checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
481
+
dependencies = [
482
+
"cfg-if",
483
+
"js-sys",
484
+
"libc",
485
+
"wasi",
486
+
"wasm-bindgen",
487
+
]
488
+
489
+
[[package]]
490
+
name = "getrandom"
491
+
version = "0.3.4"
492
+
source = "registry+https://github.com/rust-lang/crates.io-index"
493
+
checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
494
+
dependencies = [
495
+
"cfg-if",
496
+
"js-sys",
497
+
"libc",
498
+
"r-efi",
499
+
"wasip2",
500
+
"wasm-bindgen",
501
+
]
502
+
503
+
[[package]]
504
+
name = "hashbrown"
505
+
version = "0.14.5"
506
+
source = "registry+https://github.com/rust-lang/crates.io-index"
507
+
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
508
+
509
+
[[package]]
510
+
name = "hashbrown"
511
+
version = "0.16.1"
512
+
source = "registry+https://github.com/rust-lang/crates.io-index"
513
+
checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
514
+
515
+
[[package]]
516
+
name = "http"
517
+
version = "1.4.0"
518
+
source = "registry+https://github.com/rust-lang/crates.io-index"
519
+
checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a"
520
+
dependencies = [
521
+
"bytes",
522
+
"itoa",
523
+
]
524
+
525
+
[[package]]
526
+
name = "http-body"
527
+
version = "1.0.1"
528
+
source = "registry+https://github.com/rust-lang/crates.io-index"
529
+
checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184"
530
+
dependencies = [
531
+
"bytes",
532
+
"http",
533
+
]
534
+
535
+
[[package]]
536
+
name = "http-body-util"
537
+
version = "0.1.3"
538
+
source = "registry+https://github.com/rust-lang/crates.io-index"
539
+
checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a"
540
+
dependencies = [
541
+
"bytes",
542
+
"futures-core",
543
+
"http",
544
+
"http-body",
545
+
"pin-project-lite",
546
+
]
547
+
548
+
[[package]]
549
+
name = "httparse"
550
+
version = "1.10.1"
551
+
source = "registry+https://github.com/rust-lang/crates.io-index"
552
+
checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
553
+
554
+
[[package]]
555
+
name = "httpdate"
556
+
version = "1.0.3"
557
+
source = "registry+https://github.com/rust-lang/crates.io-index"
558
+
checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
559
+
560
+
[[package]]
561
+
name = "hyper"
562
+
version = "1.8.1"
563
+
source = "registry+https://github.com/rust-lang/crates.io-index"
564
+
checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11"
565
+
dependencies = [
566
+
"atomic-waker",
567
+
"bytes",
568
+
"futures-channel",
569
+
"futures-core",
570
+
"http",
571
+
"http-body",
572
+
"httparse",
573
+
"httpdate",
574
+
"itoa",
575
+
"pin-project-lite",
576
+
"pin-utils",
577
+
"smallvec",
578
+
"tokio",
579
+
"want",
580
+
]
581
+
582
+
[[package]]
583
+
name = "hyper-rustls"
584
+
version = "0.27.7"
585
+
source = "registry+https://github.com/rust-lang/crates.io-index"
586
+
checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58"
587
+
dependencies = [
588
+
"http",
589
+
"hyper",
590
+
"hyper-util",
591
+
"rustls",
592
+
"rustls-pki-types",
593
+
"tokio",
594
+
"tokio-rustls",
595
+
"tower-service",
596
+
"webpki-roots",
597
+
]
598
+
599
+
[[package]]
600
+
name = "hyper-util"
601
+
version = "0.1.19"
602
+
source = "registry+https://github.com/rust-lang/crates.io-index"
603
+
checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f"
604
+
dependencies = [
605
+
"base64",
606
+
"bytes",
607
+
"futures-channel",
608
+
"futures-core",
609
+
"futures-util",
610
+
"http",
611
+
"http-body",
612
+
"hyper",
613
+
"ipnet",
614
+
"libc",
615
+
"percent-encoding",
616
+
"pin-project-lite",
617
+
"socket2",
618
+
"tokio",
619
+
"tower-service",
620
+
"tracing",
621
+
]
622
+
623
+
[[package]]
624
+
name = "iana-time-zone"
625
+
version = "0.1.64"
626
+
source = "registry+https://github.com/rust-lang/crates.io-index"
627
+
checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb"
628
+
dependencies = [
629
+
"android_system_properties",
630
+
"core-foundation-sys",
631
+
"iana-time-zone-haiku",
632
+
"js-sys",
633
+
"log",
634
+
"wasm-bindgen",
635
+
"windows-core",
636
+
]
637
+
638
+
[[package]]
639
+
name = "iana-time-zone-haiku"
640
+
version = "0.1.2"
641
+
source = "registry+https://github.com/rust-lang/crates.io-index"
642
+
checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
643
+
dependencies = [
644
+
"cc",
645
+
]
646
+
647
+
[[package]]
648
+
name = "icu_collections"
649
+
version = "2.1.1"
650
+
source = "registry+https://github.com/rust-lang/crates.io-index"
651
+
checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43"
652
+
dependencies = [
653
+
"displaydoc",
654
+
"potential_utf",
655
+
"yoke",
656
+
"zerofrom",
657
+
"zerovec",
658
+
]
659
+
660
+
[[package]]
661
+
name = "icu_locale_core"
662
+
version = "2.1.1"
663
+
source = "registry+https://github.com/rust-lang/crates.io-index"
664
+
checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6"
665
+
dependencies = [
666
+
"displaydoc",
667
+
"litemap",
668
+
"tinystr",
669
+
"writeable",
670
+
"zerovec",
671
+
]
672
+
673
+
[[package]]
674
+
name = "icu_normalizer"
675
+
version = "2.1.1"
676
+
source = "registry+https://github.com/rust-lang/crates.io-index"
677
+
checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599"
678
+
dependencies = [
679
+
"icu_collections",
680
+
"icu_normalizer_data",
681
+
"icu_properties",
682
+
"icu_provider",
683
+
"smallvec",
684
+
"zerovec",
685
+
]
686
+
687
+
[[package]]
688
+
name = "icu_normalizer_data"
689
+
version = "2.1.1"
690
+
source = "registry+https://github.com/rust-lang/crates.io-index"
691
+
checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a"
692
+
693
+
[[package]]
694
+
name = "icu_properties"
695
+
version = "2.1.2"
696
+
source = "registry+https://github.com/rust-lang/crates.io-index"
697
+
checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec"
698
+
dependencies = [
699
+
"icu_collections",
700
+
"icu_locale_core",
701
+
"icu_properties_data",
702
+
"icu_provider",
703
+
"zerotrie",
704
+
"zerovec",
705
+
]
706
+
707
+
[[package]]
708
+
name = "icu_properties_data"
709
+
version = "2.1.2"
710
+
source = "registry+https://github.com/rust-lang/crates.io-index"
711
+
checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af"
712
+
713
+
[[package]]
714
+
name = "icu_provider"
715
+
version = "2.1.1"
716
+
source = "registry+https://github.com/rust-lang/crates.io-index"
717
+
checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614"
718
+
dependencies = [
719
+
"displaydoc",
720
+
"icu_locale_core",
721
+
"writeable",
722
+
"yoke",
723
+
"zerofrom",
724
+
"zerotrie",
725
+
"zerovec",
726
+
]
727
+
728
+
[[package]]
729
+
name = "idna"
730
+
version = "1.1.0"
731
+
source = "registry+https://github.com/rust-lang/crates.io-index"
732
+
checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de"
733
+
dependencies = [
734
+
"idna_adapter",
735
+
"smallvec",
736
+
"utf8_iter",
737
+
]
738
+
739
+
[[package]]
740
+
name = "idna_adapter"
741
+
version = "1.2.1"
742
+
source = "registry+https://github.com/rust-lang/crates.io-index"
743
+
checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344"
744
+
dependencies = [
745
+
"icu_normalizer",
746
+
"icu_properties",
747
+
]
748
+
749
+
[[package]]
750
+
name = "interval-heap"
751
+
version = "0.0.5"
752
+
source = "registry+https://github.com/rust-lang/crates.io-index"
753
+
checksum = "11274e5e8e89b8607cfedc2910b6626e998779b48a019151c7604d0adcb86ac6"
754
+
dependencies = [
755
+
"compare",
756
+
]
757
+
758
+
[[package]]
759
+
name = "ipnet"
760
+
version = "2.11.0"
761
+
source = "registry+https://github.com/rust-lang/crates.io-index"
762
+
checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130"
763
+
764
+
[[package]]
765
+
name = "iri-string"
766
+
version = "0.7.10"
767
+
source = "registry+https://github.com/rust-lang/crates.io-index"
768
+
checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a"
769
+
dependencies = [
770
+
"memchr",
771
+
"serde",
772
+
]
773
+
774
+
[[package]]
775
+
name = "itoa"
776
+
version = "1.0.17"
777
+
source = "registry+https://github.com/rust-lang/crates.io-index"
778
+
checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
779
+
780
+
[[package]]
781
+
name = "js-sys"
782
+
version = "0.3.85"
783
+
source = "registry+https://github.com/rust-lang/crates.io-index"
784
+
checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3"
785
+
dependencies = [
786
+
"once_cell",
787
+
"wasm-bindgen",
788
+
]
789
+
790
+
[[package]]
791
+
name = "lazy_static"
792
+
version = "1.5.0"
793
+
source = "registry+https://github.com/rust-lang/crates.io-index"
794
+
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
795
+
796
+
[[package]]
797
+
name = "libc"
798
+
version = "0.2.180"
799
+
source = "registry+https://github.com/rust-lang/crates.io-index"
800
+
checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc"
801
+
802
+
[[package]]
803
+
name = "linux-raw-sys"
804
+
version = "0.11.0"
805
+
source = "registry+https://github.com/rust-lang/crates.io-index"
806
+
checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039"
807
+
808
+
[[package]]
809
+
name = "litemap"
810
+
version = "0.8.1"
811
+
source = "registry+https://github.com/rust-lang/crates.io-index"
812
+
checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77"
813
+
814
+
[[package]]
815
+
name = "lock_api"
816
+
version = "0.4.14"
817
+
source = "registry+https://github.com/rust-lang/crates.io-index"
818
+
checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
819
+
dependencies = [
820
+
"scopeguard",
821
+
]
822
+
823
+
[[package]]
824
+
name = "log"
825
+
version = "0.4.29"
826
+
source = "registry+https://github.com/rust-lang/crates.io-index"
827
+
checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
828
+
829
+
[[package]]
830
+
name = "lru-slab"
831
+
version = "0.1.2"
832
+
source = "registry+https://github.com/rust-lang/crates.io-index"
833
+
checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154"
834
+
835
+
[[package]]
836
+
name = "lsm-tree"
837
+
version = "3.0.1"
838
+
source = "registry+https://github.com/rust-lang/crates.io-index"
839
+
checksum = "b875f1dfe14f557f805b167fb9b0fc54c5560c7a4bd6ae02535b2846f276a8cb"
840
+
dependencies = [
841
+
"byteorder-lite",
842
+
"byteview",
843
+
"crossbeam-skiplist",
844
+
"enum_dispatch",
845
+
"interval-heap",
846
+
"log",
847
+
"lz4_flex",
848
+
"quick_cache",
849
+
"rustc-hash",
850
+
"self_cell",
851
+
"sfa",
852
+
"tempfile",
853
+
"varint-rs",
854
+
"xxhash-rust",
855
+
]
856
+
857
+
[[package]]
858
+
name = "lz4_flex"
859
+
version = "0.11.5"
860
+
source = "registry+https://github.com/rust-lang/crates.io-index"
861
+
checksum = "08ab2867e3eeeca90e844d1940eab391c9dc5228783db2ed999acbc0a9ed375a"
862
+
dependencies = [
863
+
"twox-hash",
864
+
]
865
+
866
+
[[package]]
867
+
name = "matchit"
868
+
version = "0.7.3"
869
+
source = "registry+https://github.com/rust-lang/crates.io-index"
870
+
checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
871
+
872
+
[[package]]
873
+
name = "memchr"
874
+
version = "2.7.6"
875
+
source = "registry+https://github.com/rust-lang/crates.io-index"
876
+
checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
877
+
878
+
[[package]]
879
+
name = "mime"
880
+
version = "0.3.17"
881
+
source = "registry+https://github.com/rust-lang/crates.io-index"
882
+
checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
883
+
884
+
[[package]]
885
+
name = "mio"
886
+
version = "1.1.1"
887
+
source = "registry+https://github.com/rust-lang/crates.io-index"
888
+
checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc"
889
+
dependencies = [
890
+
"libc",
891
+
"wasi",
892
+
"windows-sys 0.61.2",
893
+
]
894
+
895
+
[[package]]
896
+
name = "nu-ansi-term"
897
+
version = "0.50.3"
898
+
source = "registry+https://github.com/rust-lang/crates.io-index"
899
+
checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
900
+
dependencies = [
901
+
"windows-sys 0.61.2",
902
+
]
903
+
904
+
[[package]]
905
+
name = "num-traits"
906
+
version = "0.2.19"
907
+
source = "registry+https://github.com/rust-lang/crates.io-index"
908
+
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
909
+
dependencies = [
910
+
"autocfg",
911
+
]
912
+
913
+
[[package]]
914
+
name = "once_cell"
915
+
version = "1.21.3"
916
+
source = "registry+https://github.com/rust-lang/crates.io-index"
917
+
checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
918
+
919
+
[[package]]
920
+
name = "openssl-probe"
921
+
version = "0.2.0"
922
+
source = "registry+https://github.com/rust-lang/crates.io-index"
923
+
checksum = "9f50d9b3dabb09ecd771ad0aa242ca6894994c130308ca3d7684634df8037391"
924
+
925
+
[[package]]
926
+
name = "parking_lot"
927
+
version = "0.12.5"
928
+
source = "registry+https://github.com/rust-lang/crates.io-index"
929
+
checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
930
+
dependencies = [
931
+
"lock_api",
932
+
"parking_lot_core",
933
+
]
934
+
935
+
[[package]]
936
+
name = "parking_lot_core"
937
+
version = "0.9.12"
938
+
source = "registry+https://github.com/rust-lang/crates.io-index"
939
+
checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
940
+
dependencies = [
941
+
"cfg-if",
942
+
"libc",
943
+
"redox_syscall",
944
+
"smallvec",
945
+
"windows-link",
946
+
]
947
+
948
+
[[package]]
949
+
name = "percent-encoding"
950
+
version = "2.3.2"
951
+
source = "registry+https://github.com/rust-lang/crates.io-index"
952
+
checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
953
+
954
+
[[package]]
955
+
name = "pin-project-lite"
956
+
version = "0.2.16"
957
+
source = "registry+https://github.com/rust-lang/crates.io-index"
958
+
checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
959
+
960
+
[[package]]
961
+
name = "pin-utils"
962
+
version = "0.1.0"
963
+
source = "registry+https://github.com/rust-lang/crates.io-index"
964
+
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
965
+
966
+
[[package]]
967
+
name = "potential_utf"
968
+
version = "0.1.4"
969
+
source = "registry+https://github.com/rust-lang/crates.io-index"
970
+
checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77"
971
+
dependencies = [
972
+
"zerovec",
973
+
]
974
+
975
+
[[package]]
976
+
name = "ppv-lite86"
977
+
version = "0.2.21"
978
+
source = "registry+https://github.com/rust-lang/crates.io-index"
979
+
checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
980
+
dependencies = [
981
+
"zerocopy",
982
+
]
983
+
984
+
[[package]]
985
+
name = "proc-macro2"
986
+
version = "1.0.105"
987
+
source = "registry+https://github.com/rust-lang/crates.io-index"
988
+
checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7"
989
+
dependencies = [
990
+
"unicode-ident",
991
+
]
992
+
993
+
[[package]]
994
+
name = "quick_cache"
995
+
version = "0.6.18"
996
+
source = "registry+https://github.com/rust-lang/crates.io-index"
997
+
checksum = "7ada44a88ef953a3294f6eb55d2007ba44646015e18613d2f213016379203ef3"
998
+
dependencies = [
999
+
"equivalent",
1000
+
"hashbrown 0.16.1",
1001
+
]
1002
+
1003
+
[[package]]
1004
+
name = "quinn"
1005
+
version = "0.11.9"
1006
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1007
+
checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20"
1008
+
dependencies = [
1009
+
"bytes",
1010
+
"cfg_aliases",
1011
+
"pin-project-lite",
1012
+
"quinn-proto",
1013
+
"quinn-udp",
1014
+
"rustc-hash",
1015
+
"rustls",
1016
+
"socket2",
1017
+
"thiserror",
1018
+
"tokio",
1019
+
"tracing",
1020
+
"web-time",
1021
+
]
1022
+
1023
+
[[package]]
1024
+
name = "quinn-proto"
1025
+
version = "0.11.13"
1026
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1027
+
checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31"
1028
+
dependencies = [
1029
+
"bytes",
1030
+
"getrandom 0.3.4",
1031
+
"lru-slab",
1032
+
"rand",
1033
+
"ring",
1034
+
"rustc-hash",
1035
+
"rustls",
1036
+
"rustls-pki-types",
1037
+
"slab",
1038
+
"thiserror",
1039
+
"tinyvec",
1040
+
"tracing",
1041
+
"web-time",
1042
+
]
1043
+
1044
+
[[package]]
1045
+
name = "quinn-udp"
1046
+
version = "0.5.14"
1047
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1048
+
checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd"
1049
+
dependencies = [
1050
+
"cfg_aliases",
1051
+
"libc",
1052
+
"once_cell",
1053
+
"socket2",
1054
+
"tracing",
1055
+
"windows-sys 0.60.2",
1056
+
]
1057
+
1058
+
[[package]]
1059
+
name = "quote"
1060
+
version = "1.0.43"
1061
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1062
+
checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a"
1063
+
dependencies = [
1064
+
"proc-macro2",
1065
+
]
1066
+
1067
+
[[package]]
1068
+
name = "r-efi"
1069
+
version = "5.3.0"
1070
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1071
+
checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
1072
+
1073
+
[[package]]
1074
+
name = "rand"
1075
+
version = "0.9.2"
1076
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1077
+
checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1"
1078
+
dependencies = [
1079
+
"rand_chacha",
1080
+
"rand_core",
1081
+
]
1082
+
1083
+
[[package]]
1084
+
name = "rand_chacha"
1085
+
version = "0.9.0"
1086
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1087
+
checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb"
1088
+
dependencies = [
1089
+
"ppv-lite86",
1090
+
"rand_core",
1091
+
]
1092
+
1093
+
[[package]]
1094
+
name = "rand_core"
1095
+
version = "0.9.5"
1096
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1097
+
checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c"
1098
+
dependencies = [
1099
+
"getrandom 0.3.4",
1100
+
]
1101
+
1102
+
[[package]]
1103
+
name = "redox_syscall"
1104
+
version = "0.5.18"
1105
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1106
+
checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
1107
+
dependencies = [
1108
+
"bitflags",
1109
+
]
1110
+
1111
+
[[package]]
1112
+
name = "reqwest"
1113
+
version = "0.12.28"
1114
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1115
+
checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147"
1116
+
dependencies = [
1117
+
"base64",
1118
+
"bytes",
1119
+
"futures-core",
1120
+
"http",
1121
+
"http-body",
1122
+
"http-body-util",
1123
+
"hyper",
1124
+
"hyper-rustls",
1125
+
"hyper-util",
1126
+
"js-sys",
1127
+
"log",
1128
+
"percent-encoding",
1129
+
"pin-project-lite",
1130
+
"quinn",
1131
+
"rustls",
1132
+
"rustls-pki-types",
1133
+
"serde",
1134
+
"serde_json",
1135
+
"serde_urlencoded",
1136
+
"sync_wrapper",
1137
+
"tokio",
1138
+
"tokio-rustls",
1139
+
"tower",
1140
+
"tower-http",
1141
+
"tower-service",
1142
+
"url",
1143
+
"wasm-bindgen",
1144
+
"wasm-bindgen-futures",
1145
+
"web-sys",
1146
+
"webpki-roots",
1147
+
]
1148
+
1149
+
[[package]]
1150
+
name = "ring"
1151
+
version = "0.17.14"
1152
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1153
+
checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7"
1154
+
dependencies = [
1155
+
"cc",
1156
+
"cfg-if",
1157
+
"getrandom 0.2.17",
1158
+
"libc",
1159
+
"untrusted",
1160
+
"windows-sys 0.52.0",
1161
+
]
1162
+
1163
+
[[package]]
1164
+
name = "rustc-hash"
1165
+
version = "2.1.1"
1166
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1167
+
checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
1168
+
1169
+
[[package]]
1170
+
name = "rustix"
1171
+
version = "1.1.3"
1172
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1173
+
checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34"
1174
+
dependencies = [
1175
+
"bitflags",
1176
+
"errno",
1177
+
"libc",
1178
+
"linux-raw-sys",
1179
+
"windows-sys 0.61.2",
1180
+
]
1181
+
1182
+
[[package]]
1183
+
name = "rustls"
1184
+
version = "0.23.36"
1185
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1186
+
checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b"
1187
+
dependencies = [
1188
+
"once_cell",
1189
+
"ring",
1190
+
"rustls-pki-types",
1191
+
"rustls-webpki",
1192
+
"subtle",
1193
+
"zeroize",
1194
+
]
1195
+
1196
+
[[package]]
1197
+
name = "rustls-native-certs"
1198
+
version = "0.8.3"
1199
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1200
+
checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63"
1201
+
dependencies = [
1202
+
"openssl-probe",
1203
+
"rustls-pki-types",
1204
+
"schannel",
1205
+
"security-framework",
1206
+
]
1207
+
1208
+
[[package]]
1209
+
name = "rustls-pki-types"
1210
+
version = "1.14.0"
1211
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1212
+
checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd"
1213
+
dependencies = [
1214
+
"web-time",
1215
+
"zeroize",
1216
+
]
1217
+
1218
+
[[package]]
1219
+
name = "rustls-webpki"
1220
+
version = "0.103.9"
1221
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1222
+
checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53"
1223
+
dependencies = [
1224
+
"ring",
1225
+
"rustls-pki-types",
1226
+
"untrusted",
1227
+
]
1228
+
1229
+
[[package]]
1230
+
name = "rustversion"
1231
+
version = "1.0.22"
1232
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1233
+
checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
1234
+
1235
+
[[package]]
1236
+
name = "ryu"
1237
+
version = "1.0.22"
1238
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1239
+
checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984"
1240
+
1241
+
[[package]]
1242
+
name = "schannel"
1243
+
version = "0.1.28"
1244
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1245
+
checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1"
1246
+
dependencies = [
1247
+
"windows-sys 0.61.2",
1248
+
]
1249
+
1250
+
[[package]]
1251
+
name = "scopeguard"
1252
+
version = "1.2.0"
1253
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1254
+
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
1255
+
1256
+
[[package]]
1257
+
name = "security-framework"
1258
+
version = "3.5.1"
1259
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1260
+
checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef"
1261
+
dependencies = [
1262
+
"bitflags",
1263
+
"core-foundation",
1264
+
"core-foundation-sys",
1265
+
"libc",
1266
+
"security-framework-sys",
1267
+
]
1268
+
1269
+
[[package]]
1270
+
name = "security-framework-sys"
1271
+
version = "2.15.0"
1272
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1273
+
checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0"
1274
+
dependencies = [
1275
+
"core-foundation-sys",
1276
+
"libc",
1277
+
]
1278
+
1279
+
[[package]]
1280
+
name = "self_cell"
1281
+
version = "1.2.2"
1282
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1283
+
checksum = "b12e76d157a900eb52e81bc6e9f3069344290341720e9178cde2407113ac8d89"
1284
+
1285
+
[[package]]
1286
+
name = "serde"
1287
+
version = "1.0.228"
1288
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1289
+
checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
1290
+
dependencies = [
1291
+
"serde_core",
1292
+
"serde_derive",
1293
+
]
1294
+
1295
+
[[package]]
1296
+
name = "serde_core"
1297
+
version = "1.0.228"
1298
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1299
+
checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
1300
+
dependencies = [
1301
+
"serde_derive",
1302
+
]
1303
+
1304
+
[[package]]
1305
+
name = "serde_derive"
1306
+
version = "1.0.228"
1307
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1308
+
checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
1309
+
dependencies = [
1310
+
"proc-macro2",
1311
+
"quote",
1312
+
"syn",
1313
+
]
1314
+
1315
+
[[package]]
1316
+
name = "serde_json"
1317
+
version = "1.0.149"
1318
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1319
+
checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
1320
+
dependencies = [
1321
+
"itoa",
1322
+
"memchr",
1323
+
"serde",
1324
+
"serde_core",
1325
+
"zmij",
1326
+
]
1327
+
1328
+
[[package]]
1329
+
name = "serde_path_to_error"
1330
+
version = "0.1.20"
1331
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1332
+
checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457"
1333
+
dependencies = [
1334
+
"itoa",
1335
+
"serde",
1336
+
"serde_core",
1337
+
]
1338
+
1339
+
[[package]]
1340
+
name = "serde_urlencoded"
1341
+
version = "0.7.1"
1342
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1343
+
checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
1344
+
dependencies = [
1345
+
"form_urlencoded",
1346
+
"itoa",
1347
+
"ryu",
1348
+
"serde",
1349
+
]
1350
+
1351
+
[[package]]
1352
+
name = "sfa"
1353
+
version = "1.0.0"
1354
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1355
+
checksum = "a1296838937cab56cd6c4eeeb8718ec777383700c33f060e2869867bd01d1175"
1356
+
dependencies = [
1357
+
"byteorder-lite",
1358
+
"log",
1359
+
"xxhash-rust",
1360
+
]
1361
+
1362
+
[[package]]
1363
+
name = "sha1"
1364
+
version = "0.10.6"
1365
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1366
+
checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
1367
+
dependencies = [
1368
+
"cfg-if",
1369
+
"cpufeatures",
1370
+
"digest",
1371
+
]
1372
+
1373
+
[[package]]
1374
+
name = "sharded-slab"
1375
+
version = "0.1.7"
1376
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1377
+
checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
1378
+
dependencies = [
1379
+
"lazy_static",
1380
+
]
1381
+
1382
+
[[package]]
1383
+
name = "shlex"
1384
+
version = "1.3.0"
1385
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1386
+
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
1387
+
1388
+
[[package]]
1389
+
name = "signal-hook-registry"
1390
+
version = "1.4.8"
1391
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1392
+
checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b"
1393
+
dependencies = [
1394
+
"errno",
1395
+
"libc",
1396
+
]
1397
+
1398
+
[[package]]
1399
+
name = "slab"
1400
+
version = "0.4.11"
1401
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1402
+
checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589"
1403
+
1404
+
[[package]]
1405
+
name = "smallvec"
1406
+
version = "1.15.1"
1407
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1408
+
checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
1409
+
1410
+
[[package]]
1411
+
name = "socket2"
1412
+
version = "0.6.1"
1413
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1414
+
checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881"
1415
+
dependencies = [
1416
+
"libc",
1417
+
"windows-sys 0.60.2",
1418
+
]
1419
+
1420
+
[[package]]
1421
+
name = "spin"
1422
+
version = "0.9.8"
1423
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1424
+
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
1425
+
dependencies = [
1426
+
"lock_api",
1427
+
]
1428
+
1429
+
[[package]]
1430
+
name = "stable_deref_trait"
1431
+
version = "1.2.1"
1432
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1433
+
checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
1434
+
1435
+
[[package]]
1436
+
name = "subtle"
1437
+
version = "2.6.1"
1438
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1439
+
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
1440
+
1441
+
[[package]]
1442
+
name = "syn"
1443
+
version = "2.0.114"
1444
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1445
+
checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a"
1446
+
dependencies = [
1447
+
"proc-macro2",
1448
+
"quote",
1449
+
"unicode-ident",
1450
+
]
1451
+
1452
+
[[package]]
1453
+
name = "sync_wrapper"
1454
+
version = "1.0.2"
1455
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1456
+
checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263"
1457
+
dependencies = [
1458
+
"futures-core",
1459
+
]
1460
+
1461
+
[[package]]
1462
+
name = "synstructure"
1463
+
version = "0.13.2"
1464
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1465
+
checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
1466
+
dependencies = [
1467
+
"proc-macro2",
1468
+
"quote",
1469
+
"syn",
1470
+
]
1471
+
1472
+
[[package]]
1473
+
name = "tapped"
1474
+
version = "0.1.0"
1475
+
source = "git+https://github.com/thombles/tapped#c7f38d365901218d35489175f711ce5495512ef7"
1476
+
dependencies = [
1477
+
"base64",
1478
+
"futures-util",
1479
+
"libc",
1480
+
"reqwest",
1481
+
"serde",
1482
+
"serde_json",
1483
+
"thiserror",
1484
+
"tokio",
1485
+
"tokio-tungstenite",
1486
+
"tracing",
1487
+
"url",
1488
+
]
1489
+
1490
+
[[package]]
1491
+
name = "tempfile"
1492
+
version = "3.24.0"
1493
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1494
+
checksum = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c"
1495
+
dependencies = [
1496
+
"fastrand",
1497
+
"getrandom 0.3.4",
1498
+
"once_cell",
1499
+
"rustix",
1500
+
"windows-sys 0.61.2",
1501
+
]
1502
+
1503
+
[[package]]
1504
+
name = "thiserror"
1505
+
version = "2.0.18"
1506
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1507
+
checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
1508
+
dependencies = [
1509
+
"thiserror-impl",
1510
+
]
1511
+
1512
+
[[package]]
1513
+
name = "thiserror-impl"
1514
+
version = "2.0.18"
1515
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1516
+
checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
1517
+
dependencies = [
1518
+
"proc-macro2",
1519
+
"quote",
1520
+
"syn",
1521
+
]
1522
+
1523
+
[[package]]
1524
+
name = "thread_local"
1525
+
version = "1.1.9"
1526
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1527
+
checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185"
1528
+
dependencies = [
1529
+
"cfg-if",
1530
+
]
1531
+
1532
+
[[package]]
1533
+
name = "tinystr"
1534
+
version = "0.8.2"
1535
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1536
+
checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869"
1537
+
dependencies = [
1538
+
"displaydoc",
1539
+
"zerovec",
1540
+
]
1541
+
1542
+
[[package]]
1543
+
name = "tinyvec"
1544
+
version = "1.10.0"
1545
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1546
+
checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa"
1547
+
dependencies = [
1548
+
"tinyvec_macros",
1549
+
]
1550
+
1551
+
[[package]]
1552
+
name = "tinyvec_macros"
1553
+
version = "0.1.1"
1554
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1555
+
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
1556
+
1557
+
[[package]]
1558
+
name = "tokio"
1559
+
version = "1.49.0"
1560
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1561
+
checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86"
1562
+
dependencies = [
1563
+
"bytes",
1564
+
"libc",
1565
+
"mio",
1566
+
"parking_lot",
1567
+
"pin-project-lite",
1568
+
"signal-hook-registry",
1569
+
"socket2",
1570
+
"tokio-macros",
1571
+
"windows-sys 0.61.2",
1572
+
]
1573
+
1574
+
[[package]]
1575
+
name = "tokio-macros"
1576
+
version = "2.6.0"
1577
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1578
+
checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5"
1579
+
dependencies = [
1580
+
"proc-macro2",
1581
+
"quote",
1582
+
"syn",
1583
+
]
1584
+
1585
+
[[package]]
1586
+
name = "tokio-rustls"
1587
+
version = "0.26.4"
1588
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1589
+
checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61"
1590
+
dependencies = [
1591
+
"rustls",
1592
+
"tokio",
1593
+
]
1594
+
1595
+
[[package]]
1596
+
name = "tokio-tungstenite"
1597
+
version = "0.26.2"
1598
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1599
+
checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084"
1600
+
dependencies = [
1601
+
"futures-util",
1602
+
"log",
1603
+
"rustls",
1604
+
"rustls-native-certs",
1605
+
"rustls-pki-types",
1606
+
"tokio",
1607
+
"tokio-rustls",
1608
+
"tungstenite",
1609
+
]
1610
+
1611
+
[[package]]
1612
+
name = "tower"
1613
+
version = "0.5.3"
1614
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1615
+
checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4"
1616
+
dependencies = [
1617
+
"futures-core",
1618
+
"futures-util",
1619
+
"pin-project-lite",
1620
+
"sync_wrapper",
1621
+
"tokio",
1622
+
"tower-layer",
1623
+
"tower-service",
1624
+
"tracing",
1625
+
]
1626
+
1627
+
[[package]]
1628
+
name = "tower-http"
1629
+
version = "0.6.8"
1630
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1631
+
checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8"
1632
+
dependencies = [
1633
+
"bitflags",
1634
+
"bytes",
1635
+
"futures-util",
1636
+
"http",
1637
+
"http-body",
1638
+
"iri-string",
1639
+
"pin-project-lite",
1640
+
"tower",
1641
+
"tower-layer",
1642
+
"tower-service",
1643
+
]
1644
+
1645
+
[[package]]
1646
+
name = "tower-layer"
1647
+
version = "0.3.3"
1648
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1649
+
checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e"
1650
+
1651
+
[[package]]
1652
+
name = "tower-service"
1653
+
version = "0.3.3"
1654
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1655
+
checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
1656
+
1657
+
[[package]]
1658
+
name = "tracing"
1659
+
version = "0.1.44"
1660
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1661
+
checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
1662
+
dependencies = [
1663
+
"log",
1664
+
"pin-project-lite",
1665
+
"tracing-attributes",
1666
+
"tracing-core",
1667
+
]
1668
+
1669
+
[[package]]
1670
+
name = "tracing-attributes"
1671
+
version = "0.1.31"
1672
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1673
+
checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
1674
+
dependencies = [
1675
+
"proc-macro2",
1676
+
"quote",
1677
+
"syn",
1678
+
]
1679
+
1680
+
[[package]]
1681
+
name = "tracing-core"
1682
+
version = "0.1.36"
1683
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1684
+
checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
1685
+
dependencies = [
1686
+
"once_cell",
1687
+
"valuable",
1688
+
]
1689
+
1690
+
[[package]]
1691
+
name = "tracing-log"
1692
+
version = "0.2.0"
1693
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1694
+
checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
1695
+
dependencies = [
1696
+
"log",
1697
+
"once_cell",
1698
+
"tracing-core",
1699
+
]
1700
+
1701
+
[[package]]
1702
+
name = "tracing-subscriber"
1703
+
version = "0.3.22"
1704
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1705
+
checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e"
1706
+
dependencies = [
1707
+
"nu-ansi-term",
1708
+
"sharded-slab",
1709
+
"smallvec",
1710
+
"thread_local",
1711
+
"tracing-core",
1712
+
"tracing-log",
1713
+
]
1714
+
1715
+
[[package]]
1716
+
name = "try-lock"
1717
+
version = "0.2.5"
1718
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1719
+
checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
1720
+
1721
+
[[package]]
1722
+
name = "tungstenite"
1723
+
version = "0.26.2"
1724
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1725
+
checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13"
1726
+
dependencies = [
1727
+
"bytes",
1728
+
"data-encoding",
1729
+
"http",
1730
+
"httparse",
1731
+
"log",
1732
+
"rand",
1733
+
"rustls",
1734
+
"rustls-pki-types",
1735
+
"sha1",
1736
+
"thiserror",
1737
+
"utf-8",
1738
+
]
1739
+
1740
+
[[package]]
1741
+
name = "twox-hash"
1742
+
version = "2.1.2"
1743
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1744
+
checksum = "9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c"
1745
+
1746
+
[[package]]
1747
+
name = "typenum"
1748
+
version = "1.19.0"
1749
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1750
+
checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
1751
+
1752
+
[[package]]
1753
+
name = "unicode-ident"
1754
+
version = "1.0.22"
1755
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1756
+
checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
1757
+
1758
+
[[package]]
1759
+
name = "untrusted"
1760
+
version = "0.9.0"
1761
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1762
+
checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
1763
+
1764
+
[[package]]
1765
+
name = "url"
1766
+
version = "2.5.8"
1767
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1768
+
checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed"
1769
+
dependencies = [
1770
+
"form_urlencoded",
1771
+
"idna",
1772
+
"percent-encoding",
1773
+
"serde",
1774
+
"serde_derive",
1775
+
]
1776
+
1777
+
[[package]]
1778
+
name = "utf-8"
1779
+
version = "0.7.6"
1780
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1781
+
checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
1782
+
1783
+
[[package]]
1784
+
name = "utf8_iter"
1785
+
version = "1.0.4"
1786
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1787
+
checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
1788
+
1789
+
[[package]]
1790
+
name = "valuable"
1791
+
version = "0.1.1"
1792
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1793
+
checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"
1794
+
1795
+
[[package]]
1796
+
name = "varint-rs"
1797
+
version = "2.2.0"
1798
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1799
+
checksum = "8f54a172d0620933a27a4360d3db3e2ae0dd6cceae9730751a036bbf182c4b23"
1800
+
1801
+
[[package]]
1802
+
name = "version_check"
1803
+
version = "0.9.5"
1804
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1805
+
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
1806
+
1807
+
[[package]]
1808
+
name = "want"
1809
+
version = "0.3.1"
1810
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1811
+
checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
1812
+
dependencies = [
1813
+
"try-lock",
1814
+
]
1815
+
1816
+
[[package]]
1817
+
name = "wasi"
1818
+
version = "0.11.1+wasi-snapshot-preview1"
1819
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1820
+
checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
1821
+
1822
+
[[package]]
1823
+
name = "wasip2"
1824
+
version = "1.0.2+wasi-0.2.9"
1825
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1826
+
checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
1827
+
dependencies = [
1828
+
"wit-bindgen",
1829
+
]
1830
+
1831
+
[[package]]
1832
+
name = "wasm-bindgen"
1833
+
version = "0.2.108"
1834
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1835
+
checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566"
1836
+
dependencies = [
1837
+
"cfg-if",
1838
+
"once_cell",
1839
+
"rustversion",
1840
+
"wasm-bindgen-macro",
1841
+
"wasm-bindgen-shared",
1842
+
]
1843
+
1844
+
[[package]]
1845
+
name = "wasm-bindgen-futures"
1846
+
version = "0.4.58"
1847
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1848
+
checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f"
1849
+
dependencies = [
1850
+
"cfg-if",
1851
+
"futures-util",
1852
+
"js-sys",
1853
+
"once_cell",
1854
+
"wasm-bindgen",
1855
+
"web-sys",
1856
+
]
1857
+
1858
+
[[package]]
1859
+
name = "wasm-bindgen-macro"
1860
+
version = "0.2.108"
1861
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1862
+
checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608"
1863
+
dependencies = [
1864
+
"quote",
1865
+
"wasm-bindgen-macro-support",
1866
+
]
1867
+
1868
+
[[package]]
1869
+
name = "wasm-bindgen-macro-support"
1870
+
version = "0.2.108"
1871
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1872
+
checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55"
1873
+
dependencies = [
1874
+
"bumpalo",
1875
+
"proc-macro2",
1876
+
"quote",
1877
+
"syn",
1878
+
"wasm-bindgen-shared",
1879
+
]
1880
+
1881
+
[[package]]
1882
+
name = "wasm-bindgen-shared"
1883
+
version = "0.2.108"
1884
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1885
+
checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12"
1886
+
dependencies = [
1887
+
"unicode-ident",
1888
+
]
1889
+
1890
+
[[package]]
1891
+
name = "web-sys"
1892
+
version = "0.3.85"
1893
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1894
+
checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598"
1895
+
dependencies = [
1896
+
"js-sys",
1897
+
"wasm-bindgen",
1898
+
]
1899
+
1900
+
[[package]]
1901
+
name = "web-time"
1902
+
version = "1.1.0"
1903
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1904
+
checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"
1905
+
dependencies = [
1906
+
"js-sys",
1907
+
"wasm-bindgen",
1908
+
]
1909
+
1910
+
[[package]]
1911
+
name = "webpki-roots"
1912
+
version = "1.0.5"
1913
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1914
+
checksum = "12bed680863276c63889429bfd6cab3b99943659923822de1c8a39c49e4d722c"
1915
+
dependencies = [
1916
+
"rustls-pki-types",
1917
+
]
1918
+
1919
+
[[package]]
1920
+
name = "windows-core"
1921
+
version = "0.62.2"
1922
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1923
+
checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb"
1924
+
dependencies = [
1925
+
"windows-implement",
1926
+
"windows-interface",
1927
+
"windows-link",
1928
+
"windows-result",
1929
+
"windows-strings",
1930
+
]
1931
+
1932
+
[[package]]
1933
+
name = "windows-implement"
1934
+
version = "0.60.2"
1935
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1936
+
checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
1937
+
dependencies = [
1938
+
"proc-macro2",
1939
+
"quote",
1940
+
"syn",
1941
+
]
1942
+
1943
+
[[package]]
1944
+
name = "windows-interface"
1945
+
version = "0.59.3"
1946
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1947
+
checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
1948
+
dependencies = [
1949
+
"proc-macro2",
1950
+
"quote",
1951
+
"syn",
1952
+
]
1953
+
1954
+
[[package]]
1955
+
name = "windows-link"
1956
+
version = "0.2.1"
1957
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1958
+
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
1959
+
1960
+
[[package]]
1961
+
name = "windows-result"
1962
+
version = "0.4.1"
1963
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1964
+
checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5"
1965
+
dependencies = [
1966
+
"windows-link",
1967
+
]
1968
+
1969
+
[[package]]
1970
+
name = "windows-strings"
1971
+
version = "0.5.1"
1972
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1973
+
checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091"
1974
+
dependencies = [
1975
+
"windows-link",
1976
+
]
1977
+
1978
+
[[package]]
1979
+
name = "windows-sys"
1980
+
version = "0.52.0"
1981
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1982
+
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
1983
+
dependencies = [
1984
+
"windows-targets 0.52.6",
1985
+
]
1986
+
1987
+
[[package]]
1988
+
name = "windows-sys"
1989
+
version = "0.60.2"
1990
+
source = "registry+https://github.com/rust-lang/crates.io-index"
1991
+
checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb"
1992
+
dependencies = [
1993
+
"windows-targets 0.53.5",
1994
+
]
1995
+
1996
+
[[package]]
1997
+
name = "windows-sys"
1998
+
version = "0.61.2"
1999
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2000
+
checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
2001
+
dependencies = [
2002
+
"windows-link",
2003
+
]
2004
+
2005
+
[[package]]
2006
+
name = "windows-targets"
2007
+
version = "0.52.6"
2008
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2009
+
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
2010
+
dependencies = [
2011
+
"windows_aarch64_gnullvm 0.52.6",
2012
+
"windows_aarch64_msvc 0.52.6",
2013
+
"windows_i686_gnu 0.52.6",
2014
+
"windows_i686_gnullvm 0.52.6",
2015
+
"windows_i686_msvc 0.52.6",
2016
+
"windows_x86_64_gnu 0.52.6",
2017
+
"windows_x86_64_gnullvm 0.52.6",
2018
+
"windows_x86_64_msvc 0.52.6",
2019
+
]
2020
+
2021
+
[[package]]
2022
+
name = "windows-targets"
2023
+
version = "0.53.5"
2024
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2025
+
checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3"
2026
+
dependencies = [
2027
+
"windows-link",
2028
+
"windows_aarch64_gnullvm 0.53.1",
2029
+
"windows_aarch64_msvc 0.53.1",
2030
+
"windows_i686_gnu 0.53.1",
2031
+
"windows_i686_gnullvm 0.53.1",
2032
+
"windows_i686_msvc 0.53.1",
2033
+
"windows_x86_64_gnu 0.53.1",
2034
+
"windows_x86_64_gnullvm 0.53.1",
2035
+
"windows_x86_64_msvc 0.53.1",
2036
+
]
2037
+
2038
+
[[package]]
2039
+
name = "windows_aarch64_gnullvm"
2040
+
version = "0.52.6"
2041
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2042
+
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
2043
+
2044
+
[[package]]
2045
+
name = "windows_aarch64_gnullvm"
2046
+
version = "0.53.1"
2047
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2048
+
checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53"
2049
+
2050
+
[[package]]
2051
+
name = "windows_aarch64_msvc"
2052
+
version = "0.52.6"
2053
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2054
+
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
2055
+
2056
+
[[package]]
2057
+
name = "windows_aarch64_msvc"
2058
+
version = "0.53.1"
2059
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2060
+
checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006"
2061
+
2062
+
[[package]]
2063
+
name = "windows_i686_gnu"
2064
+
version = "0.52.6"
2065
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2066
+
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
2067
+
2068
+
[[package]]
2069
+
name = "windows_i686_gnu"
2070
+
version = "0.53.1"
2071
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2072
+
checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3"
2073
+
2074
+
[[package]]
2075
+
name = "windows_i686_gnullvm"
2076
+
version = "0.52.6"
2077
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2078
+
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
2079
+
2080
+
[[package]]
2081
+
name = "windows_i686_gnullvm"
2082
+
version = "0.53.1"
2083
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2084
+
checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c"
2085
+
2086
+
[[package]]
2087
+
name = "windows_i686_msvc"
2088
+
version = "0.52.6"
2089
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2090
+
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
2091
+
2092
+
[[package]]
2093
+
name = "windows_i686_msvc"
2094
+
version = "0.53.1"
2095
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2096
+
checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2"
2097
+
2098
+
[[package]]
2099
+
name = "windows_x86_64_gnu"
2100
+
version = "0.52.6"
2101
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2102
+
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
2103
+
2104
+
[[package]]
2105
+
name = "windows_x86_64_gnu"
2106
+
version = "0.53.1"
2107
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2108
+
checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499"
2109
+
2110
+
[[package]]
2111
+
name = "windows_x86_64_gnullvm"
2112
+
version = "0.52.6"
2113
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2114
+
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
2115
+
2116
+
[[package]]
2117
+
name = "windows_x86_64_gnullvm"
2118
+
version = "0.53.1"
2119
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2120
+
checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1"
2121
+
2122
+
[[package]]
2123
+
name = "windows_x86_64_msvc"
2124
+
version = "0.52.6"
2125
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2126
+
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
2127
+
2128
+
[[package]]
2129
+
name = "windows_x86_64_msvc"
2130
+
version = "0.53.1"
2131
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2132
+
checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650"
2133
+
2134
+
[[package]]
2135
+
name = "wit-bindgen"
2136
+
version = "0.51.0"
2137
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2138
+
checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
2139
+
2140
+
[[package]]
2141
+
name = "writeable"
2142
+
version = "0.6.2"
2143
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2144
+
checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9"
2145
+
2146
+
[[package]]
2147
+
name = "xxhash-rust"
2148
+
version = "0.8.15"
2149
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2150
+
checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3"
2151
+
2152
+
[[package]]
2153
+
name = "yoke"
2154
+
version = "0.8.1"
2155
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2156
+
checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954"
2157
+
dependencies = [
2158
+
"stable_deref_trait",
2159
+
"yoke-derive",
2160
+
"zerofrom",
2161
+
]
2162
+
2163
+
[[package]]
2164
+
name = "yoke-derive"
2165
+
version = "0.8.1"
2166
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2167
+
checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d"
2168
+
dependencies = [
2169
+
"proc-macro2",
2170
+
"quote",
2171
+
"syn",
2172
+
"synstructure",
2173
+
]
2174
+
2175
+
[[package]]
2176
+
name = "zerocopy"
2177
+
version = "0.8.33"
2178
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2179
+
checksum = "668f5168d10b9ee831de31933dc111a459c97ec93225beb307aed970d1372dfd"
2180
+
dependencies = [
2181
+
"zerocopy-derive",
2182
+
]
2183
+
2184
+
[[package]]
2185
+
name = "zerocopy-derive"
2186
+
version = "0.8.33"
2187
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2188
+
checksum = "2c7962b26b0a8685668b671ee4b54d007a67d4eaf05fda79ac0ecf41e32270f1"
2189
+
dependencies = [
2190
+
"proc-macro2",
2191
+
"quote",
2192
+
"syn",
2193
+
]
2194
+
2195
+
[[package]]
2196
+
name = "zerofrom"
2197
+
version = "0.1.6"
2198
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2199
+
checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5"
2200
+
dependencies = [
2201
+
"zerofrom-derive",
2202
+
]
2203
+
2204
+
[[package]]
2205
+
name = "zerofrom-derive"
2206
+
version = "0.1.6"
2207
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2208
+
checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
2209
+
dependencies = [
2210
+
"proc-macro2",
2211
+
"quote",
2212
+
"syn",
2213
+
"synstructure",
2214
+
]
2215
+
2216
+
[[package]]
2217
+
name = "zeroize"
2218
+
version = "1.8.2"
2219
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2220
+
checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0"
2221
+
2222
+
[[package]]
2223
+
name = "zerotrie"
2224
+
version = "0.2.3"
2225
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2226
+
checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851"
2227
+
dependencies = [
2228
+
"displaydoc",
2229
+
"yoke",
2230
+
"zerofrom",
2231
+
]
2232
+
2233
+
[[package]]
2234
+
name = "zerovec"
2235
+
version = "0.11.5"
2236
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2237
+
checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002"
2238
+
dependencies = [
2239
+
"yoke",
2240
+
"zerofrom",
2241
+
"zerovec-derive",
2242
+
]
2243
+
2244
+
[[package]]
2245
+
name = "zerovec-derive"
2246
+
version = "0.11.2"
2247
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2248
+
checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3"
2249
+
dependencies = [
2250
+
"proc-macro2",
2251
+
"quote",
2252
+
"syn",
2253
+
]
2254
+
2255
+
[[package]]
2256
+
name = "zmij"
2257
+
version = "1.0.16"
2258
+
source = "registry+https://github.com/rust-lang/crates.io-index"
2259
+
checksum = "dfcd145825aace48cff44a8844de64bf75feec3080e0aa5cdbde72961ae51a65"
+17
Cargo.toml
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
[package]
2
+
name = "aturlist"
3
+
version = "0.1.0"
4
+
edition = "2021"
5
+
6
+
[dependencies]
7
+
tapped = { git = "https://github.com/thombles/tapped" }
8
+
tokio = { version = "1", features = ["full"] }
9
+
axum = "0.7"
10
+
serde = { version = "1", features = ["derive"] }
11
+
serde_json = "1"
12
+
anyhow = "1"
13
+
fjall = "3.0.1"
14
+
tracing = "0.1"
15
+
tracing-subscriber = "0.3"
16
+
futures = "0.3"
17
+
chrono = "0.4"
+23
default.nix
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
{
2
+
lib,
3
+
rustPlatform,
4
+
...
5
+
}:
6
+
rustPlatform.buildRustPackage {
7
+
pname = "aturlist";
8
+
version = "main";
9
+
10
+
src = lib.fileset.toSource {
11
+
root = ./.;
12
+
fileset = lib.fileset.unions [
13
+
./src ./Cargo.toml ./Cargo.lock
14
+
];
15
+
};
16
+
17
+
cargoLock = {
18
+
lockFile = ./Cargo.lock;
19
+
outputHashes = {
20
+
"tapped-0.1.0" = "sha256-hhmlyR9BomcyZMTQAoJWLmTF9cyuVEjU4yceQFmHi9I=";
21
+
};
22
+
};
23
+
}
+3
flake.nix
···
13
...
14
}:
15
{
0
16
devShells = {
17
default = pkgs.mkShell {
18
buildInputs = with pkgs; [
19
rust-analyzer
20
cargo
0
0
21
];
22
};
23
};
···
13
...
14
}:
15
{
16
+
packages.default = pkgs.callPackage ./default.nix {};
17
devShells = {
18
default = pkgs.mkShell {
19
buildInputs = with pkgs; [
20
rust-analyzer
21
cargo
22
+
gemini-cli
23
+
go
24
];
25
};
26
};
+303
src/main.rs
···
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
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
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
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
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
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
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
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
use axum::{
2
+
extract::{Query, State},
3
+
routing::get,
4
+
Json, Router,
5
+
};
6
+
use serde::{Deserialize, Serialize};
7
+
use tracing::{info, error, warn};
8
+
use tapped::{TapClient, Event, RecordAction, RecordEvent};
9
+
use fjall::{Database, Keyspace, KeyspaceCreateOptions};
10
+
11
+
#[derive(Clone)]
12
+
struct AppState {
13
+
db: Database,
14
+
counts: Keyspace,
15
+
}
16
+
17
+
#[tokio::main]
18
+
async fn main() -> anyhow::Result<()> {
19
+
tracing_subscriber::fmt::init();
20
+
21
+
let db = Database::builder("aturlist_fjall").open()?;
22
+
// open keyspaces
23
+
let counts = db.keyspace("counts", || KeyspaceCreateOptions::default())?;
24
+
25
+
let state = AppState {
26
+
db: db.clone(),
27
+
counts: counts.clone(),
28
+
};
29
+
30
+
// start tap consumer
31
+
let db_clone = state.db.clone();
32
+
let counts_clone = state.counts.clone();
33
+
tokio::spawn(async move {
34
+
run_tap_consumer(db_clone, counts_clone).await;
35
+
});
36
+
37
+
let app = Router::new()
38
+
.route("/xrpc/systems.gaze.aturlist.listRecords", get(list_records))
39
+
.route("/xrpc/systems.gaze.aturlist.countRecords", get(count_records))
40
+
.with_state(state);
41
+
42
+
let listener = tokio::net::TcpListener::bind("0.0.0.0:7155").await?;
43
+
info!("listening on {}", listener.local_addr()?);
44
+
axum::serve(listener, app).await?;
45
+
46
+
Ok(())
47
+
}
48
+
49
+
async fn run_tap_consumer(db: Database, counts: Keyspace) {
50
+
let tap_url = "http://localhost:2480";
51
+
52
+
loop {
53
+
info!("connecting to tap at {}", tap_url);
54
+
match TapClient::new(tap_url) {
55
+
Ok(client) => {
56
+
if let Err(e) = client.health().await {
57
+
warn!("tap health check failed: {}", e);
58
+
tokio::time::sleep(std::time::Duration::from_secs(5)).await;
59
+
continue;
60
+
}
61
+
62
+
match client.channel().await {
63
+
Ok(mut receiver) => {
64
+
info!("connected to tap firehose");
65
+
while let Ok(event) = receiver.recv().await {
66
+
if let Event::Record(rec) = &*event {
67
+
if let Err(e) = handle_record(&db, &counts, rec) {
68
+
error!("error handling record: {}", e);
69
+
}
70
+
}
71
+
}
72
+
warn!("tap channel closed");
73
+
}
74
+
Err(e) => {
75
+
warn!("failed to subscribe to channel: {}", e);
76
+
}
77
+
}
78
+
}
79
+
Err(e) => {
80
+
warn!("failed to create tap client: {}", e);
81
+
}
82
+
}
83
+
tokio::time::sleep(std::time::Duration::from_secs(5)).await;
84
+
}
85
+
}
86
+
87
+
fn strip_did_prefix(did: &str) -> &str {
88
+
did.strip_prefix("did:").unwrap_or(did)
89
+
}
90
+
91
+
fn handle_record(db: &Database, counts: &Keyspace, rec: &RecordEvent) -> anyhow::Result<()> {
92
+
// partition by collection
93
+
let records = db.keyspace(&rec.collection, KeyspaceCreateOptions::default)?;
94
+
95
+
// index everything, no filter.
96
+
// key: strip_did(did)|rkey
97
+
let key = make_key(strip_did_prefix(&rec.did), &rec.rkey);
98
+
99
+
// logic to maintain counts:
100
+
// create: insert and increment.
101
+
// update: insert (overwrite). no count change.
102
+
// delete: remove and decrement.
103
+
104
+
match rec.action {
105
+
RecordAction::Create => {
106
+
info!("creating {} {} {}", rec.did, rec.collection, rec.rkey);
107
+
records.insert(&key, &[])?;
108
+
increment_count(counts, strip_did_prefix(&rec.did), &rec.collection)?;
109
+
}
110
+
RecordAction::Update => {
111
+
info!("updating {} {} {}", rec.did, rec.collection, rec.rkey);
112
+
records.insert(&key, &[])?;
113
+
}
114
+
RecordAction::Delete => {
115
+
info!("deleting {} {} {}", rec.did, rec.collection, rec.rkey);
116
+
records.remove(&key)?;
117
+
decrement_count(counts, strip_did_prefix(&rec.did), &rec.collection)?;
118
+
}
119
+
_ => {}
120
+
}
121
+
Ok(())
122
+
}
123
+
124
+
fn make_key(repo_stripped: &str, rkey: &str) -> Vec<u8> {
125
+
format!("{}|{}", repo_stripped, rkey).into_bytes()
126
+
}
127
+
128
+
fn make_count_key(repo_stripped: &str, collection: &str) -> Vec<u8> {
129
+
format!("{}|{}", repo_stripped, collection).into_bytes()
130
+
}
131
+
132
+
fn increment_count(counts: &Keyspace, repo_stripped: &str, collection: &str) -> anyhow::Result<()> {
133
+
let key = make_count_key(repo_stripped, collection);
134
+
let mut current = 0u64;
135
+
if let Some(val) = counts.get(&key)? {
136
+
if val.len() == 8 {
137
+
current = u64::from_le_bytes(val[..].try_into().unwrap());
138
+
}
139
+
}
140
+
current += 1;
141
+
counts.insert(&key, current.to_le_bytes())?;
142
+
Ok(())
143
+
}
144
+
145
+
fn decrement_count(counts: &Keyspace, repo_stripped: &str, collection: &str) -> anyhow::Result<()> {
146
+
let key = make_count_key(repo_stripped, collection);
147
+
let mut current = 0u64;
148
+
if let Some(val) = counts.get(&key)? {
149
+
if val.len() == 8 {
150
+
current = u64::from_le_bytes(val[..].try_into().unwrap());
151
+
}
152
+
}
153
+
if current > 0 {
154
+
current -= 1;
155
+
counts.insert(&key, current.to_le_bytes())?;
156
+
}
157
+
Ok(())
158
+
}
159
+
160
+
// handlers
161
+
162
+
#[derive(Deserialize)]
163
+
struct ListRecordsParams {
164
+
repo: String,
165
+
collection: String,
166
+
cursor: Option<String>,
167
+
reverse: Option<bool>,
168
+
limit: Option<usize>,
169
+
}
170
+
171
+
#[derive(Serialize)]
172
+
struct ListRecordsResponse {
173
+
aturis: Vec<String>,
174
+
// count field is usually empty in listRecords but we can leave it 0
175
+
count: usize,
176
+
#[serde(skip_serializing_if = "Option::is_none")]
177
+
cursor: Option<String>,
178
+
}
179
+
180
+
async fn list_records(
181
+
State(state): State<AppState>,
182
+
Query(params): Query<ListRecordsParams>,
183
+
) -> Json<ListRecordsResponse> {
184
+
let records = match state.db.keyspace(¶ms.collection, || KeyspaceCreateOptions::default()) {
185
+
Ok(p) => p,
186
+
Err(_) => {
187
+
return Json(ListRecordsResponse {
188
+
aturis: Vec::new(),
189
+
count: 0,
190
+
cursor: None,
191
+
});
192
+
}
193
+
};
194
+
195
+
let repo_stripped = strip_did_prefix(¶ms.repo);
196
+
let prefix_str = format!("{}|", repo_stripped);
197
+
let prefix = prefix_str.as_bytes();
198
+
199
+
// default to descending (newest first) -> reverse=false means descending.
200
+
// reverse=true means ascending.
201
+
let ascending = params.reverse.unwrap_or(false);
202
+
let limit = params.limit.unwrap_or(50).min(500);
203
+
204
+
let mut aturis = Vec::new();
205
+
let mut last_rkey = None;
206
+
207
+
let start_bound = if ascending {
208
+
if let Some(c) = ¶ms.cursor {
209
+
let mut k = make_key(repo_stripped, c);
210
+
k.push(0); // start after cursor
211
+
k
212
+
} else {
213
+
prefix.to_vec()
214
+
}
215
+
} else {
216
+
// descending
217
+
prefix.to_vec()
218
+
};
219
+
220
+
let end_bound = if ascending {
221
+
let mut p = prefix.to_vec();
222
+
p.push(0xFF);
223
+
p
224
+
} else {
225
+
// descending
226
+
if let Some(c) = ¶ms.cursor {
227
+
make_key(repo_stripped, c)
228
+
} else {
229
+
let mut p = prefix.to_vec();
230
+
p.push(0xFF);
231
+
p
232
+
}
233
+
};
234
+
235
+
let range = records.range(start_bound..end_bound);
236
+
237
+
let mut process_key = |k: &[u8]| {
238
+
let k_str = String::from_utf8_lossy(k);
239
+
let parts: Vec<&str> = k_str.split('|').collect();
240
+
// key format: repo_stripped|rkey
241
+
if parts.len() == 2 {
242
+
let rkey = parts[1];
243
+
aturis.push(format!("at://{}/{}/{}", params.repo, params.collection, rkey));
244
+
last_rkey = Some(rkey.to_string());
245
+
}
246
+
};
247
+
248
+
if ascending {
249
+
for item in range.take(limit) {
250
+
if let Ok(k) = item.key() {
251
+
process_key(&k);
252
+
}
253
+
}
254
+
} else {
255
+
for item in range.rev().take(limit) {
256
+
if let Ok(k) = item.key() {
257
+
process_key(&k);
258
+
}
259
+
}
260
+
}
261
+
262
+
let count = aturis.len();
263
+
264
+
Json(ListRecordsResponse {
265
+
aturis,
266
+
count,
267
+
cursor: last_rkey,
268
+
})
269
+
}
270
+
271
+
#[derive(Deserialize)]
272
+
struct CountRecordsParams {
273
+
repo: String,
274
+
collection: String,
275
+
}
276
+
277
+
#[derive(Serialize)]
278
+
struct CountRecordsResponse {
279
+
repo: String,
280
+
collection: String,
281
+
count: u64,
282
+
}
283
+
284
+
async fn count_records(
285
+
State(state): State<AppState>,
286
+
Query(params): Query<CountRecordsParams>,
287
+
) -> Json<CountRecordsResponse> {
288
+
let repo_stripped = strip_did_prefix(¶ms.repo);
289
+
let key = make_count_key(repo_stripped, ¶ms.collection);
290
+
let mut count = 0u64;
291
+
292
+
if let Ok(Some(val)) = state.counts.get(&key) {
293
+
if val.len() == 8 {
294
+
count = u64::from_le_bytes(val[..].try_into().unwrap());
295
+
}
296
+
}
297
+
298
+
Json(CountRecordsResponse {
299
+
repo: params.repo,
300
+
collection: params.collection,
301
+
count,
302
+
})
303
+
}
+111
verify_pds.nu
···
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
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
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
0
0
0
0
0
0
···
1
+
#!/usr/bin/env nu
2
+
3
+
let did = "did:plc:dfl62fgb7wtjj3fcbb72naae"
4
+
let pds_host = "https://zwsp.xyz"
5
+
6
+
# wait for indexing
7
+
print "waiting for services to stabilize..."
8
+
sleep 5sec
9
+
10
+
# add dids to tap
11
+
let dids = ["did:plc:dfl62fgb7wtjj3fcbb72naae", "did:plc:dumbmutt4po52ept2tczimje"]
12
+
try {
13
+
let body = {dids: $dids} | to json
14
+
http post --content-type application/json "http://127.0.0.1:2480/repos/add" $body
15
+
} catch {
16
+
print "tap add repos failed (maybe already running)"
17
+
}
18
+
19
+
sleep 5sec
20
+
21
+
# 1. test app.bsky.actor.profile (single record)
22
+
let collection = "app.bsky.actor.profile"
23
+
print $"verifying ($collection) for ($did)..."
24
+
25
+
let atur_url = $"http://127.0.0.1:7155/xrpc/systems.gaze.aturlist.listRecords?repo=($did)&collection=($collection)"
26
+
print $"aturlist url: ($atur_url)"
27
+
let atur_res = (http get $atur_url)
28
+
let atur_uris = ($atur_res.aturis | sort)
29
+
30
+
let pds_url = $"($pds_host)/xrpc/com.atproto.repo.listRecords?repo=($did)&collection=($collection)"
31
+
print $"pds url: ($pds_url)"
32
+
let pds_res = (http get $pds_url)
33
+
let pds_uris = ($pds_res.records | each {|r| $r.uri } | sort)
34
+
35
+
if ($atur_uris == $pds_uris) {
36
+
print "success: profile matches."
37
+
} else {
38
+
print "failure: profile mismatch."
39
+
print "aturlist: " $atur_uris
40
+
print "pds: " $pds_uris
41
+
exit 1
42
+
}
43
+
44
+
# 2. test app.bsky.feed.like (multiple records)
45
+
let collection = "app.bsky.feed.like"
46
+
let limit = 20
47
+
48
+
# ascending check (oldest)
49
+
print $"\nverifying ($collection) ascending \(oldest\)..."
50
+
# aturlist: reverse=true -> ascending
51
+
let atur_url_asc = $"http://127.0.0.1:7155/xrpc/systems.gaze.aturlist.listRecords?repo=($did)&collection=($collection)&reverse=true"
52
+
print $"aturlist asc url: ($atur_url_asc)"
53
+
let atur_res_asc = (http get $atur_url_asc)
54
+
let atur_uris_asc = ($atur_res_asc.aturis | first $limit)
55
+
56
+
# pds: reverse=true -> ascending
57
+
let pds_url_asc = $"($pds_host)/xrpc/com.atproto.repo.listRecords?repo=($did)&collection=($collection)&limit=($limit)&reverse=true"
58
+
print $"pds asc url: ($pds_url_asc)"
59
+
let pds_res_asc = (http get $pds_url_asc)
60
+
let pds_uris_asc = ($pds_res_asc.records | each {|r| $r.uri })
61
+
62
+
if ($atur_uris_asc == $pds_uris_asc) {
63
+
print "success: ascending (oldest) matches."
64
+
} else {
65
+
print "failure: ascending mismatch."
66
+
print "aturlist:" $atur_uris_asc
67
+
print "pds:" $pds_uris_asc
68
+
exit 1
69
+
}
70
+
71
+
# descending check (newest)
72
+
print $"\nverifying ($collection) descending \(newest\)..."
73
+
# aturlist: reverse=false (default) -> descending
74
+
let atur_url_desc = $"http://127.0.0.1:7155/xrpc/systems.gaze.aturlist.listRecords?repo=($did)&collection=($collection)&reverse=false"
75
+
print $"aturlist desc url: ($atur_url_desc)"
76
+
let atur_res_desc = (http get $atur_url_desc)
77
+
let atur_uris_desc = ($atur_res_desc.aturis | first $limit)
78
+
79
+
# pds: reverse=false (default) -> descending
80
+
let pds_url_desc = $"($pds_host)/xrpc/com.atproto.repo.listRecords?repo=($did)&collection=($collection)&limit=($limit)&reverse=false"
81
+
print $"pds desc url: ($pds_url_desc)"
82
+
let pds_res_desc = (http get $pds_url_desc)
83
+
let pds_uris_desc = ($pds_res_desc.records | each {|r| $r.uri })
84
+
85
+
if ($atur_uris_desc == $pds_uris_desc) {
86
+
print "success: descending (newest) matches perfectly."
87
+
} else {
88
+
# check for lag consistency
89
+
let head = ($atur_uris_desc | first)
90
+
if ($head in $pds_uris_desc) {
91
+
print "warning: lag detected, but consistent."
92
+
} else {
93
+
print "failure: descending mismatch (and head not found in pds top 20)."
94
+
exit 1
95
+
}
96
+
}
97
+
98
+
# 3. test countrecords
99
+
print $"\nverifying countrecords for ($collection)..."
100
+
let atur_count_url = $"http://127.0.0.1:7155/xrpc/systems.gaze.aturlist.countRecords?repo=($did)&collection=($collection)"
101
+
print $"aturlist count url: ($atur_count_url)"
102
+
let atur_count_res = (http get $atur_count_url)
103
+
print $"aturlist count: ($atur_count_res.count)"
104
+
105
+
if ($atur_count_res.count > 0) {
106
+
print "success: count is positive."
107
+
} else {
108
+
print "warning: count is 0 (expected if db was reused without migration/reindex)."
109
+
}
110
+
111
+
print "\nverification summary: success."