├── .github └── workflows │ └── release.yml ├── .gitignore ├── .vscode └── launch.json ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── assets └── showcase.gif └── src ├── action.rs ├── api.rs ├── app.rs ├── main.rs ├── model.rs ├── pages ├── detail.rs ├── home.rs └── mod.rs └── time.rs /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | push: 5 | tags: 6 | - "v*" 7 | 8 | permissions: 9 | contents: write 10 | 11 | jobs: 12 | build-and-release: 13 | name: Build and Release 14 | runs-on: ${{ matrix.os }} 15 | strategy: 16 | matrix: 17 | include: 18 | - os: ubuntu-latest 19 | target: x86_64-unknown-linux-gnu 20 | artifact_name: lazyv2ex 21 | asset_name: lazyv2ex-linux-amd64 22 | # Temporarily disable ARM64 Linux build due to OpenSSL issues 23 | # - os: ubuntu-latest 24 | # target: aarch64-unknown-linux-gnu 25 | # artifact_name: lazyv2ex 26 | # asset_name: lazyv2ex-linux-arm64 27 | - os: macos-latest 28 | target: x86_64-apple-darwin 29 | artifact_name: lazyv2ex 30 | asset_name: lazyv2ex-macos-amd64 31 | - os: macos-latest 32 | target: aarch64-apple-darwin 33 | artifact_name: lazyv2ex 34 | asset_name: lazyv2ex-macos-arm64 35 | 36 | steps: 37 | - name: Checkout code 38 | uses: actions/checkout@v4 39 | 40 | - name: Install Rust toolchain 41 | uses: actions-rs/toolchain@v1 42 | with: 43 | profile: minimal 44 | toolchain: stable 45 | target: ${{ matrix.target }} 46 | override: true 47 | 48 | # Skip ARM64 Linux build for now as it requires more complex setup 49 | - name: Skip ARM64 Linux build 50 | if: matrix.target == 'aarch64-unknown-linux-gnu' 51 | run: echo "Skipping ARM64 Linux build for now" 52 | 53 | - name: Build binary 54 | if: matrix.target != 'aarch64-unknown-linux-gnu' 55 | run: cargo build --release --target ${{ matrix.target }} 56 | 57 | - name: Prepare binary for upload 58 | if: matrix.target != 'aarch64-unknown-linux-gnu' 59 | run: | 60 | # Create a directory for the renamed binaries 61 | mkdir -p artifacts 62 | # Copy and rename the binary to avoid conflicts 63 | cp target/${{ matrix.target }}/release/${{ matrix.artifact_name }} artifacts/${{ matrix.asset_name }} 64 | 65 | - name: Upload binary to release 66 | if: matrix.target != 'aarch64-unknown-linux-gnu' 67 | uses: svenstaro/upload-release-action@v2 68 | with: 69 | repo_token: ${{ secrets.GITHUB_TOKEN }} 70 | file: artifacts/${{ matrix.asset_name }} 71 | asset_name: ${{ matrix.asset_name }} 72 | tag: ${{ github.ref }} 73 | overwrite: true 74 | 75 | create-release: 76 | name: Create GitHub Release 77 | runs-on: ubuntu-latest 78 | needs: build-and-release 79 | steps: 80 | - name: Checkout code 81 | uses: actions/checkout@v4 82 | 83 | - name: Extract version from tag 84 | id: extract_version 85 | run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV 86 | 87 | - name: Create Release 88 | uses: softprops/action-gh-release@v1 89 | with: 90 | token: ${{ secrets.GITHUB_TOKEN }} 91 | name: Release v${{ env.VERSION }} 92 | draft: false 93 | prerelease: false 94 | generate_release_notes: true 95 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "type": "lldb", 9 | "request": "launch", 10 | "name": "Debug executable 'lazyv2ex'", 11 | "cargo": { 12 | "args": ["build", "--bin=lazyv2ex", "--package=lazyv2ex"], 13 | "filter": { 14 | "name": "lazyv2ex", 15 | "kind": "bin" 16 | } 17 | }, 18 | "args": [], 19 | "cwd": "${workspaceFolder}" 20 | }, 21 | { 22 | "type": "lldb", 23 | "request": "launch", 24 | "name": "Debug unit tests in executable 'lazyv2ex'", 25 | "cargo": { 26 | "args": ["test", "--no-run", "--bin=lazyv2ex", "--package=lazyv2ex"], 27 | "filter": { 28 | "name": "lazyv2ex", 29 | "kind": "bin" 30 | } 31 | }, 32 | "args": [], 33 | "cwd": "${workspaceFolder}" 34 | } 35 | ] 36 | } 37 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 4 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 | ] 13 | 14 | [[package]] 15 | name = "adler" 16 | version = "1.0.2" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 19 | 20 | [[package]] 21 | name = "ahash" 22 | version = "0.8.11" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" 25 | dependencies = [ 26 | "cfg-if", 27 | "getrandom", 28 | "once_cell", 29 | "version_check", 30 | "zerocopy", 31 | ] 32 | 33 | [[package]] 34 | name = "allocator-api2" 35 | version = "0.2.21" 36 | source = "registry+https://github.com/rust-lang/crates.io-index" 37 | checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" 38 | 39 | [[package]] 40 | name = "android-tzdata" 41 | version = "0.1.1" 42 | source = "registry+https://github.com/rust-lang/crates.io-index" 43 | checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" 44 | 45 | [[package]] 46 | name = "android_system_properties" 47 | version = "0.1.5" 48 | source = "registry+https://github.com/rust-lang/crates.io-index" 49 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 50 | dependencies = [ 51 | "libc", 52 | ] 53 | 54 | [[package]] 55 | name = "anstream" 56 | version = "0.6.18" 57 | source = "registry+https://github.com/rust-lang/crates.io-index" 58 | checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" 59 | dependencies = [ 60 | "anstyle", 61 | "anstyle-parse", 62 | "anstyle-query", 63 | "anstyle-wincon", 64 | "colorchoice", 65 | "is_terminal_polyfill", 66 | "utf8parse", 67 | ] 68 | 69 | [[package]] 70 | name = "anstyle" 71 | version = "1.0.10" 72 | source = "registry+https://github.com/rust-lang/crates.io-index" 73 | checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" 74 | 75 | [[package]] 76 | name = "anstyle-parse" 77 | version = "0.2.6" 78 | source = "registry+https://github.com/rust-lang/crates.io-index" 79 | checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" 80 | dependencies = [ 81 | "utf8parse", 82 | ] 83 | 84 | [[package]] 85 | name = "anstyle-query" 86 | version = "1.1.2" 87 | source = "registry+https://github.com/rust-lang/crates.io-index" 88 | checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" 89 | dependencies = [ 90 | "windows-sys 0.59.0", 91 | ] 92 | 93 | [[package]] 94 | name = "anstyle-wincon" 95 | version = "3.0.7" 96 | source = "registry+https://github.com/rust-lang/crates.io-index" 97 | checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" 98 | dependencies = [ 99 | "anstyle", 100 | "once_cell", 101 | "windows-sys 0.59.0", 102 | ] 103 | 104 | [[package]] 105 | name = "atom_syndication" 106 | version = "0.12.6" 107 | source = "registry+https://github.com/rust-lang/crates.io-index" 108 | checksum = "ec03a6e158ee0f38bfba811976ae909bc2505a4a2f4049c7e8df47df3497b119" 109 | dependencies = [ 110 | "chrono", 111 | "derive_builder", 112 | "diligent-date-parser", 113 | "never", 114 | "quick-xml 0.37.2", 115 | ] 116 | 117 | [[package]] 118 | name = "atomic-waker" 119 | version = "1.1.2" 120 | source = "registry+https://github.com/rust-lang/crates.io-index" 121 | checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 122 | 123 | [[package]] 124 | name = "autocfg" 125 | version = "1.4.0" 126 | source = "registry+https://github.com/rust-lang/crates.io-index" 127 | checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" 128 | 129 | [[package]] 130 | name = "backtrace" 131 | version = "0.3.71" 132 | source = "registry+https://github.com/rust-lang/crates.io-index" 133 | checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" 134 | dependencies = [ 135 | "addr2line", 136 | "cc", 137 | "cfg-if", 138 | "libc", 139 | "miniz_oxide", 140 | "object", 141 | "rustc-demangle", 142 | ] 143 | 144 | [[package]] 145 | name = "base64" 146 | version = "0.22.1" 147 | source = "registry+https://github.com/rust-lang/crates.io-index" 148 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 149 | 150 | [[package]] 151 | name = "bitflags" 152 | version = "2.6.0" 153 | source = "registry+https://github.com/rust-lang/crates.io-index" 154 | checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" 155 | 156 | [[package]] 157 | name = "bumpalo" 158 | version = "3.16.0" 159 | source = "registry+https://github.com/rust-lang/crates.io-index" 160 | checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" 161 | 162 | [[package]] 163 | name = "byteorder" 164 | version = "1.5.0" 165 | source = "registry+https://github.com/rust-lang/crates.io-index" 166 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 167 | 168 | [[package]] 169 | name = "bytes" 170 | version = "1.9.0" 171 | source = "registry+https://github.com/rust-lang/crates.io-index" 172 | checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" 173 | 174 | [[package]] 175 | name = "cassowary" 176 | version = "0.3.0" 177 | source = "registry+https://github.com/rust-lang/crates.io-index" 178 | checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" 179 | 180 | [[package]] 181 | name = "castaway" 182 | version = "0.2.3" 183 | source = "registry+https://github.com/rust-lang/crates.io-index" 184 | checksum = "0abae9be0aaf9ea96a3b1b8b1b55c602ca751eba1b1500220cea4ecbafe7c0d5" 185 | dependencies = [ 186 | "rustversion", 187 | ] 188 | 189 | [[package]] 190 | name = "cc" 191 | version = "1.2.7" 192 | source = "registry+https://github.com/rust-lang/crates.io-index" 193 | checksum = "a012a0df96dd6d06ba9a1b29d6402d1a5d77c6befd2566afdc26e10603dc93d7" 194 | dependencies = [ 195 | "shlex", 196 | ] 197 | 198 | [[package]] 199 | name = "cfg-if" 200 | version = "1.0.0" 201 | source = "registry+https://github.com/rust-lang/crates.io-index" 202 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 203 | 204 | [[package]] 205 | name = "chrono" 206 | version = "0.4.39" 207 | source = "registry+https://github.com/rust-lang/crates.io-index" 208 | checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" 209 | dependencies = [ 210 | "android-tzdata", 211 | "iana-time-zone", 212 | "js-sys", 213 | "num-traits", 214 | "wasm-bindgen", 215 | "windows-targets", 216 | ] 217 | 218 | [[package]] 219 | name = "clap" 220 | version = "4.5.32" 221 | source = "registry+https://github.com/rust-lang/crates.io-index" 222 | checksum = "6088f3ae8c3608d19260cd7445411865a485688711b78b5be70d78cd96136f83" 223 | dependencies = [ 224 | "clap_builder", 225 | "clap_derive", 226 | ] 227 | 228 | [[package]] 229 | name = "clap_builder" 230 | version = "4.5.32" 231 | source = "registry+https://github.com/rust-lang/crates.io-index" 232 | checksum = "22a7ef7f676155edfb82daa97f99441f3ebf4a58d5e32f295a56259f1b6facc8" 233 | dependencies = [ 234 | "anstream", 235 | "anstyle", 236 | "clap_lex", 237 | "strsim", 238 | ] 239 | 240 | [[package]] 241 | name = "clap_derive" 242 | version = "4.5.32" 243 | source = "registry+https://github.com/rust-lang/crates.io-index" 244 | checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" 245 | dependencies = [ 246 | "heck", 247 | "proc-macro2", 248 | "quote", 249 | "syn 2.0.95", 250 | ] 251 | 252 | [[package]] 253 | name = "clap_lex" 254 | version = "0.7.4" 255 | source = "registry+https://github.com/rust-lang/crates.io-index" 256 | checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" 257 | 258 | [[package]] 259 | name = "color-eyre" 260 | version = "0.6.3" 261 | source = "registry+https://github.com/rust-lang/crates.io-index" 262 | checksum = "55146f5e46f237f7423d74111267d4597b59b0dad0ffaf7303bce9945d843ad5" 263 | dependencies = [ 264 | "backtrace", 265 | "color-spantrace", 266 | "eyre", 267 | "indenter", 268 | "once_cell", 269 | "owo-colors", 270 | "tracing-error", 271 | ] 272 | 273 | [[package]] 274 | name = "color-spantrace" 275 | version = "0.2.1" 276 | source = "registry+https://github.com/rust-lang/crates.io-index" 277 | checksum = "cd6be1b2a7e382e2b98b43b2adcca6bb0e465af0bdd38123873ae61eb17a72c2" 278 | dependencies = [ 279 | "once_cell", 280 | "owo-colors", 281 | "tracing-core", 282 | "tracing-error", 283 | ] 284 | 285 | [[package]] 286 | name = "colorchoice" 287 | version = "1.0.3" 288 | source = "registry+https://github.com/rust-lang/crates.io-index" 289 | checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" 290 | 291 | [[package]] 292 | name = "compact_str" 293 | version = "0.8.1" 294 | source = "registry+https://github.com/rust-lang/crates.io-index" 295 | checksum = "3b79c4069c6cad78e2e0cdfcbd26275770669fb39fd308a752dc110e83b9af32" 296 | dependencies = [ 297 | "castaway", 298 | "cfg-if", 299 | "itoa", 300 | "rustversion", 301 | "ryu", 302 | "static_assertions", 303 | ] 304 | 305 | [[package]] 306 | name = "core-foundation" 307 | version = "0.9.4" 308 | source = "registry+https://github.com/rust-lang/crates.io-index" 309 | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 310 | dependencies = [ 311 | "core-foundation-sys", 312 | "libc", 313 | ] 314 | 315 | [[package]] 316 | name = "core-foundation-sys" 317 | version = "0.8.7" 318 | source = "registry+https://github.com/rust-lang/crates.io-index" 319 | checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 320 | 321 | [[package]] 322 | name = "crossterm" 323 | version = "0.28.1" 324 | source = "registry+https://github.com/rust-lang/crates.io-index" 325 | checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" 326 | dependencies = [ 327 | "bitflags", 328 | "crossterm_winapi", 329 | "mio", 330 | "parking_lot", 331 | "rustix", 332 | "signal-hook", 333 | "signal-hook-mio", 334 | "winapi", 335 | ] 336 | 337 | [[package]] 338 | name = "crossterm_winapi" 339 | version = "0.9.1" 340 | source = "registry+https://github.com/rust-lang/crates.io-index" 341 | checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" 342 | dependencies = [ 343 | "winapi", 344 | ] 345 | 346 | [[package]] 347 | name = "cssparser" 348 | version = "0.31.2" 349 | source = "registry+https://github.com/rust-lang/crates.io-index" 350 | checksum = "5b3df4f93e5fbbe73ec01ec8d3f68bba73107993a5b1e7519273c32db9b0d5be" 351 | dependencies = [ 352 | "cssparser-macros", 353 | "dtoa-short", 354 | "itoa", 355 | "phf 0.11.3", 356 | "smallvec", 357 | ] 358 | 359 | [[package]] 360 | name = "cssparser-macros" 361 | version = "0.6.1" 362 | source = "registry+https://github.com/rust-lang/crates.io-index" 363 | checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" 364 | dependencies = [ 365 | "quote", 366 | "syn 2.0.95", 367 | ] 368 | 369 | [[package]] 370 | name = "darling" 371 | version = "0.20.10" 372 | source = "registry+https://github.com/rust-lang/crates.io-index" 373 | checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" 374 | dependencies = [ 375 | "darling_core", 376 | "darling_macro", 377 | ] 378 | 379 | [[package]] 380 | name = "darling_core" 381 | version = "0.20.10" 382 | source = "registry+https://github.com/rust-lang/crates.io-index" 383 | checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" 384 | dependencies = [ 385 | "fnv", 386 | "ident_case", 387 | "proc-macro2", 388 | "quote", 389 | "strsim", 390 | "syn 2.0.95", 391 | ] 392 | 393 | [[package]] 394 | name = "darling_macro" 395 | version = "0.20.10" 396 | source = "registry+https://github.com/rust-lang/crates.io-index" 397 | checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" 398 | dependencies = [ 399 | "darling_core", 400 | "quote", 401 | "syn 2.0.95", 402 | ] 403 | 404 | [[package]] 405 | name = "derive_builder" 406 | version = "0.20.2" 407 | source = "registry+https://github.com/rust-lang/crates.io-index" 408 | checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" 409 | dependencies = [ 410 | "derive_builder_macro", 411 | ] 412 | 413 | [[package]] 414 | name = "derive_builder_core" 415 | version = "0.20.2" 416 | source = "registry+https://github.com/rust-lang/crates.io-index" 417 | checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" 418 | dependencies = [ 419 | "darling", 420 | "proc-macro2", 421 | "quote", 422 | "syn 2.0.95", 423 | ] 424 | 425 | [[package]] 426 | name = "derive_builder_macro" 427 | version = "0.20.2" 428 | source = "registry+https://github.com/rust-lang/crates.io-index" 429 | checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" 430 | dependencies = [ 431 | "derive_builder_core", 432 | "syn 2.0.95", 433 | ] 434 | 435 | [[package]] 436 | name = "derive_more" 437 | version = "0.99.19" 438 | source = "registry+https://github.com/rust-lang/crates.io-index" 439 | checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f" 440 | dependencies = [ 441 | "proc-macro2", 442 | "quote", 443 | "syn 2.0.95", 444 | ] 445 | 446 | [[package]] 447 | name = "diligent-date-parser" 448 | version = "0.1.5" 449 | source = "registry+https://github.com/rust-lang/crates.io-index" 450 | checksum = "c8ede7d79366f419921e2e2f67889c12125726692a313bffb474bd5f37a581e9" 451 | dependencies = [ 452 | "chrono", 453 | ] 454 | 455 | [[package]] 456 | name = "displaydoc" 457 | version = "0.2.5" 458 | source = "registry+https://github.com/rust-lang/crates.io-index" 459 | checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 460 | dependencies = [ 461 | "proc-macro2", 462 | "quote", 463 | "syn 2.0.95", 464 | ] 465 | 466 | [[package]] 467 | name = "dtoa" 468 | version = "1.0.9" 469 | source = "registry+https://github.com/rust-lang/crates.io-index" 470 | checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" 471 | 472 | [[package]] 473 | name = "dtoa-short" 474 | version = "0.3.5" 475 | source = "registry+https://github.com/rust-lang/crates.io-index" 476 | checksum = "cd1511a7b6a56299bd043a9c167a6d2bfb37bf84a6dfceaba651168adfb43c87" 477 | dependencies = [ 478 | "dtoa", 479 | ] 480 | 481 | [[package]] 482 | name = "ego-tree" 483 | version = "0.6.3" 484 | source = "registry+https://github.com/rust-lang/crates.io-index" 485 | checksum = "12a0bb14ac04a9fcf170d0bbbef949b44cc492f4452bd20c095636956f653642" 486 | 487 | [[package]] 488 | name = "either" 489 | version = "1.13.0" 490 | source = "registry+https://github.com/rust-lang/crates.io-index" 491 | checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" 492 | 493 | [[package]] 494 | name = "encoding_rs" 495 | version = "0.8.35" 496 | source = "registry+https://github.com/rust-lang/crates.io-index" 497 | checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" 498 | dependencies = [ 499 | "cfg-if", 500 | ] 501 | 502 | [[package]] 503 | name = "equivalent" 504 | version = "1.0.1" 505 | source = "registry+https://github.com/rust-lang/crates.io-index" 506 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 507 | 508 | [[package]] 509 | name = "errno" 510 | version = "0.3.10" 511 | source = "registry+https://github.com/rust-lang/crates.io-index" 512 | checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" 513 | dependencies = [ 514 | "libc", 515 | "windows-sys 0.59.0", 516 | ] 517 | 518 | [[package]] 519 | name = "eyre" 520 | version = "0.6.12" 521 | source = "registry+https://github.com/rust-lang/crates.io-index" 522 | checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" 523 | dependencies = [ 524 | "indenter", 525 | "once_cell", 526 | ] 527 | 528 | [[package]] 529 | name = "fastrand" 530 | version = "2.3.0" 531 | source = "registry+https://github.com/rust-lang/crates.io-index" 532 | checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 533 | 534 | [[package]] 535 | name = "fnv" 536 | version = "1.0.7" 537 | source = "registry+https://github.com/rust-lang/crates.io-index" 538 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 539 | 540 | [[package]] 541 | name = "foldhash" 542 | version = "0.1.4" 543 | source = "registry+https://github.com/rust-lang/crates.io-index" 544 | checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" 545 | 546 | [[package]] 547 | name = "foreign-types" 548 | version = "0.3.2" 549 | source = "registry+https://github.com/rust-lang/crates.io-index" 550 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 551 | dependencies = [ 552 | "foreign-types-shared", 553 | ] 554 | 555 | [[package]] 556 | name = "foreign-types-shared" 557 | version = "0.1.1" 558 | source = "registry+https://github.com/rust-lang/crates.io-index" 559 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 560 | 561 | [[package]] 562 | name = "form_urlencoded" 563 | version = "1.2.1" 564 | source = "registry+https://github.com/rust-lang/crates.io-index" 565 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 566 | dependencies = [ 567 | "percent-encoding", 568 | ] 569 | 570 | [[package]] 571 | name = "futf" 572 | version = "0.1.5" 573 | source = "registry+https://github.com/rust-lang/crates.io-index" 574 | checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843" 575 | dependencies = [ 576 | "mac", 577 | "new_debug_unreachable", 578 | ] 579 | 580 | [[package]] 581 | name = "futures-channel" 582 | version = "0.3.31" 583 | source = "registry+https://github.com/rust-lang/crates.io-index" 584 | checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 585 | dependencies = [ 586 | "futures-core", 587 | "futures-sink", 588 | ] 589 | 590 | [[package]] 591 | name = "futures-core" 592 | version = "0.3.31" 593 | source = "registry+https://github.com/rust-lang/crates.io-index" 594 | checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 595 | 596 | [[package]] 597 | name = "futures-io" 598 | version = "0.3.31" 599 | source = "registry+https://github.com/rust-lang/crates.io-index" 600 | checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 601 | 602 | [[package]] 603 | name = "futures-sink" 604 | version = "0.3.31" 605 | source = "registry+https://github.com/rust-lang/crates.io-index" 606 | checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 607 | 608 | [[package]] 609 | name = "futures-task" 610 | version = "0.3.31" 611 | source = "registry+https://github.com/rust-lang/crates.io-index" 612 | checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 613 | 614 | [[package]] 615 | name = "futures-util" 616 | version = "0.3.31" 617 | source = "registry+https://github.com/rust-lang/crates.io-index" 618 | checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 619 | dependencies = [ 620 | "futures-core", 621 | "futures-io", 622 | "futures-sink", 623 | "futures-task", 624 | "memchr", 625 | "pin-project-lite", 626 | "pin-utils", 627 | "slab", 628 | ] 629 | 630 | [[package]] 631 | name = "fxhash" 632 | version = "0.2.1" 633 | source = "registry+https://github.com/rust-lang/crates.io-index" 634 | checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" 635 | dependencies = [ 636 | "byteorder", 637 | ] 638 | 639 | [[package]] 640 | name = "getopts" 641 | version = "0.2.21" 642 | source = "registry+https://github.com/rust-lang/crates.io-index" 643 | checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5" 644 | dependencies = [ 645 | "unicode-width 0.1.14", 646 | ] 647 | 648 | [[package]] 649 | name = "getrandom" 650 | version = "0.2.15" 651 | source = "registry+https://github.com/rust-lang/crates.io-index" 652 | checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 653 | dependencies = [ 654 | "cfg-if", 655 | "libc", 656 | "wasi", 657 | ] 658 | 659 | [[package]] 660 | name = "gimli" 661 | version = "0.28.1" 662 | source = "registry+https://github.com/rust-lang/crates.io-index" 663 | checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" 664 | 665 | [[package]] 666 | name = "h2" 667 | version = "0.4.7" 668 | source = "registry+https://github.com/rust-lang/crates.io-index" 669 | checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" 670 | dependencies = [ 671 | "atomic-waker", 672 | "bytes", 673 | "fnv", 674 | "futures-core", 675 | "futures-sink", 676 | "http", 677 | "indexmap", 678 | "slab", 679 | "tokio", 680 | "tokio-util", 681 | "tracing", 682 | ] 683 | 684 | [[package]] 685 | name = "hashbrown" 686 | version = "0.15.2" 687 | source = "registry+https://github.com/rust-lang/crates.io-index" 688 | checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" 689 | dependencies = [ 690 | "allocator-api2", 691 | "equivalent", 692 | "foldhash", 693 | ] 694 | 695 | [[package]] 696 | name = "heck" 697 | version = "0.5.0" 698 | source = "registry+https://github.com/rust-lang/crates.io-index" 699 | checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 700 | 701 | [[package]] 702 | name = "html5ever" 703 | version = "0.26.0" 704 | source = "registry+https://github.com/rust-lang/crates.io-index" 705 | checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" 706 | dependencies = [ 707 | "log", 708 | "mac", 709 | "markup5ever", 710 | "proc-macro2", 711 | "quote", 712 | "syn 1.0.109", 713 | ] 714 | 715 | [[package]] 716 | name = "http" 717 | version = "1.2.0" 718 | source = "registry+https://github.com/rust-lang/crates.io-index" 719 | checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" 720 | dependencies = [ 721 | "bytes", 722 | "fnv", 723 | "itoa", 724 | ] 725 | 726 | [[package]] 727 | name = "http-body" 728 | version = "1.0.1" 729 | source = "registry+https://github.com/rust-lang/crates.io-index" 730 | checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" 731 | dependencies = [ 732 | "bytes", 733 | "http", 734 | ] 735 | 736 | [[package]] 737 | name = "http-body-util" 738 | version = "0.1.2" 739 | source = "registry+https://github.com/rust-lang/crates.io-index" 740 | checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" 741 | dependencies = [ 742 | "bytes", 743 | "futures-util", 744 | "http", 745 | "http-body", 746 | "pin-project-lite", 747 | ] 748 | 749 | [[package]] 750 | name = "httparse" 751 | version = "1.9.5" 752 | source = "registry+https://github.com/rust-lang/crates.io-index" 753 | checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" 754 | 755 | [[package]] 756 | name = "hyper" 757 | version = "1.5.2" 758 | source = "registry+https://github.com/rust-lang/crates.io-index" 759 | checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" 760 | dependencies = [ 761 | "bytes", 762 | "futures-channel", 763 | "futures-util", 764 | "h2", 765 | "http", 766 | "http-body", 767 | "httparse", 768 | "itoa", 769 | "pin-project-lite", 770 | "smallvec", 771 | "tokio", 772 | "want", 773 | ] 774 | 775 | [[package]] 776 | name = "hyper-rustls" 777 | version = "0.27.5" 778 | source = "registry+https://github.com/rust-lang/crates.io-index" 779 | checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" 780 | dependencies = [ 781 | "futures-util", 782 | "http", 783 | "hyper", 784 | "hyper-util", 785 | "rustls", 786 | "rustls-pki-types", 787 | "tokio", 788 | "tokio-rustls", 789 | "tower-service", 790 | ] 791 | 792 | [[package]] 793 | name = "hyper-tls" 794 | version = "0.6.0" 795 | source = "registry+https://github.com/rust-lang/crates.io-index" 796 | checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" 797 | dependencies = [ 798 | "bytes", 799 | "http-body-util", 800 | "hyper", 801 | "hyper-util", 802 | "native-tls", 803 | "tokio", 804 | "tokio-native-tls", 805 | "tower-service", 806 | ] 807 | 808 | [[package]] 809 | name = "hyper-util" 810 | version = "0.1.10" 811 | source = "registry+https://github.com/rust-lang/crates.io-index" 812 | checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" 813 | dependencies = [ 814 | "bytes", 815 | "futures-channel", 816 | "futures-util", 817 | "http", 818 | "http-body", 819 | "hyper", 820 | "pin-project-lite", 821 | "socket2", 822 | "tokio", 823 | "tower-service", 824 | "tracing", 825 | ] 826 | 827 | [[package]] 828 | name = "iana-time-zone" 829 | version = "0.1.61" 830 | source = "registry+https://github.com/rust-lang/crates.io-index" 831 | checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" 832 | dependencies = [ 833 | "android_system_properties", 834 | "core-foundation-sys", 835 | "iana-time-zone-haiku", 836 | "js-sys", 837 | "wasm-bindgen", 838 | "windows-core", 839 | ] 840 | 841 | [[package]] 842 | name = "iana-time-zone-haiku" 843 | version = "0.1.2" 844 | source = "registry+https://github.com/rust-lang/crates.io-index" 845 | checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 846 | dependencies = [ 847 | "cc", 848 | ] 849 | 850 | [[package]] 851 | name = "icu_collections" 852 | version = "1.5.0" 853 | source = "registry+https://github.com/rust-lang/crates.io-index" 854 | checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" 855 | dependencies = [ 856 | "displaydoc", 857 | "yoke", 858 | "zerofrom", 859 | "zerovec", 860 | ] 861 | 862 | [[package]] 863 | name = "icu_locid" 864 | version = "1.5.0" 865 | source = "registry+https://github.com/rust-lang/crates.io-index" 866 | checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" 867 | dependencies = [ 868 | "displaydoc", 869 | "litemap", 870 | "tinystr", 871 | "writeable", 872 | "zerovec", 873 | ] 874 | 875 | [[package]] 876 | name = "icu_locid_transform" 877 | version = "1.5.0" 878 | source = "registry+https://github.com/rust-lang/crates.io-index" 879 | checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" 880 | dependencies = [ 881 | "displaydoc", 882 | "icu_locid", 883 | "icu_locid_transform_data", 884 | "icu_provider", 885 | "tinystr", 886 | "zerovec", 887 | ] 888 | 889 | [[package]] 890 | name = "icu_locid_transform_data" 891 | version = "1.5.0" 892 | source = "registry+https://github.com/rust-lang/crates.io-index" 893 | checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" 894 | 895 | [[package]] 896 | name = "icu_normalizer" 897 | version = "1.5.0" 898 | source = "registry+https://github.com/rust-lang/crates.io-index" 899 | checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" 900 | dependencies = [ 901 | "displaydoc", 902 | "icu_collections", 903 | "icu_normalizer_data", 904 | "icu_properties", 905 | "icu_provider", 906 | "smallvec", 907 | "utf16_iter", 908 | "utf8_iter", 909 | "write16", 910 | "zerovec", 911 | ] 912 | 913 | [[package]] 914 | name = "icu_normalizer_data" 915 | version = "1.5.0" 916 | source = "registry+https://github.com/rust-lang/crates.io-index" 917 | checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" 918 | 919 | [[package]] 920 | name = "icu_properties" 921 | version = "1.5.1" 922 | source = "registry+https://github.com/rust-lang/crates.io-index" 923 | checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" 924 | dependencies = [ 925 | "displaydoc", 926 | "icu_collections", 927 | "icu_locid_transform", 928 | "icu_properties_data", 929 | "icu_provider", 930 | "tinystr", 931 | "zerovec", 932 | ] 933 | 934 | [[package]] 935 | name = "icu_properties_data" 936 | version = "1.5.0" 937 | source = "registry+https://github.com/rust-lang/crates.io-index" 938 | checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" 939 | 940 | [[package]] 941 | name = "icu_provider" 942 | version = "1.5.0" 943 | source = "registry+https://github.com/rust-lang/crates.io-index" 944 | checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" 945 | dependencies = [ 946 | "displaydoc", 947 | "icu_locid", 948 | "icu_provider_macros", 949 | "stable_deref_trait", 950 | "tinystr", 951 | "writeable", 952 | "yoke", 953 | "zerofrom", 954 | "zerovec", 955 | ] 956 | 957 | [[package]] 958 | name = "icu_provider_macros" 959 | version = "1.5.0" 960 | source = "registry+https://github.com/rust-lang/crates.io-index" 961 | checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" 962 | dependencies = [ 963 | "proc-macro2", 964 | "quote", 965 | "syn 2.0.95", 966 | ] 967 | 968 | [[package]] 969 | name = "ident_case" 970 | version = "1.0.1" 971 | source = "registry+https://github.com/rust-lang/crates.io-index" 972 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 973 | 974 | [[package]] 975 | name = "idna" 976 | version = "1.0.3" 977 | source = "registry+https://github.com/rust-lang/crates.io-index" 978 | checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" 979 | dependencies = [ 980 | "idna_adapter", 981 | "smallvec", 982 | "utf8_iter", 983 | ] 984 | 985 | [[package]] 986 | name = "idna_adapter" 987 | version = "1.2.0" 988 | source = "registry+https://github.com/rust-lang/crates.io-index" 989 | checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" 990 | dependencies = [ 991 | "icu_normalizer", 992 | "icu_properties", 993 | ] 994 | 995 | [[package]] 996 | name = "indenter" 997 | version = "0.3.3" 998 | source = "registry+https://github.com/rust-lang/crates.io-index" 999 | checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" 1000 | 1001 | [[package]] 1002 | name = "indexmap" 1003 | version = "2.7.0" 1004 | source = "registry+https://github.com/rust-lang/crates.io-index" 1005 | checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" 1006 | dependencies = [ 1007 | "equivalent", 1008 | "hashbrown", 1009 | ] 1010 | 1011 | [[package]] 1012 | name = "indoc" 1013 | version = "2.0.5" 1014 | source = "registry+https://github.com/rust-lang/crates.io-index" 1015 | checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5" 1016 | 1017 | [[package]] 1018 | name = "instability" 1019 | version = "0.3.6" 1020 | source = "registry+https://github.com/rust-lang/crates.io-index" 1021 | checksum = "894813a444908c0c8c0e221b041771d107c4a21de1d317dc49bcc66e3c9e5b3f" 1022 | dependencies = [ 1023 | "darling", 1024 | "indoc", 1025 | "proc-macro2", 1026 | "quote", 1027 | "syn 2.0.95", 1028 | ] 1029 | 1030 | [[package]] 1031 | name = "ipnet" 1032 | version = "2.10.1" 1033 | source = "registry+https://github.com/rust-lang/crates.io-index" 1034 | checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" 1035 | 1036 | [[package]] 1037 | name = "is-docker" 1038 | version = "0.2.0" 1039 | source = "registry+https://github.com/rust-lang/crates.io-index" 1040 | checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" 1041 | dependencies = [ 1042 | "once_cell", 1043 | ] 1044 | 1045 | [[package]] 1046 | name = "is-wsl" 1047 | version = "0.4.0" 1048 | source = "registry+https://github.com/rust-lang/crates.io-index" 1049 | checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" 1050 | dependencies = [ 1051 | "is-docker", 1052 | "once_cell", 1053 | ] 1054 | 1055 | [[package]] 1056 | name = "is_terminal_polyfill" 1057 | version = "1.70.1" 1058 | source = "registry+https://github.com/rust-lang/crates.io-index" 1059 | checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" 1060 | 1061 | [[package]] 1062 | name = "itertools" 1063 | version = "0.13.0" 1064 | source = "registry+https://github.com/rust-lang/crates.io-index" 1065 | checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" 1066 | dependencies = [ 1067 | "either", 1068 | ] 1069 | 1070 | [[package]] 1071 | name = "itoa" 1072 | version = "1.0.14" 1073 | source = "registry+https://github.com/rust-lang/crates.io-index" 1074 | checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" 1075 | 1076 | [[package]] 1077 | name = "js-sys" 1078 | version = "0.3.76" 1079 | source = "registry+https://github.com/rust-lang/crates.io-index" 1080 | checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" 1081 | dependencies = [ 1082 | "once_cell", 1083 | "wasm-bindgen", 1084 | ] 1085 | 1086 | [[package]] 1087 | name = "lazy_static" 1088 | version = "1.5.0" 1089 | source = "registry+https://github.com/rust-lang/crates.io-index" 1090 | checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 1091 | 1092 | [[package]] 1093 | name = "lazyv2ex" 1094 | version = "0.1.0" 1095 | dependencies = [ 1096 | "atom_syndication", 1097 | "chrono", 1098 | "clap", 1099 | "color-eyre", 1100 | "crossterm", 1101 | "open", 1102 | "quick-xml 0.31.0", 1103 | "ratatui", 1104 | "reqwest", 1105 | "rss", 1106 | "scraper", 1107 | ] 1108 | 1109 | [[package]] 1110 | name = "libc" 1111 | version = "0.2.169" 1112 | source = "registry+https://github.com/rust-lang/crates.io-index" 1113 | checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" 1114 | 1115 | [[package]] 1116 | name = "linux-raw-sys" 1117 | version = "0.4.15" 1118 | source = "registry+https://github.com/rust-lang/crates.io-index" 1119 | checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" 1120 | 1121 | [[package]] 1122 | name = "litemap" 1123 | version = "0.7.4" 1124 | source = "registry+https://github.com/rust-lang/crates.io-index" 1125 | checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" 1126 | 1127 | [[package]] 1128 | name = "lock_api" 1129 | version = "0.4.12" 1130 | source = "registry+https://github.com/rust-lang/crates.io-index" 1131 | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 1132 | dependencies = [ 1133 | "autocfg", 1134 | "scopeguard", 1135 | ] 1136 | 1137 | [[package]] 1138 | name = "log" 1139 | version = "0.4.22" 1140 | source = "registry+https://github.com/rust-lang/crates.io-index" 1141 | checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" 1142 | 1143 | [[package]] 1144 | name = "lru" 1145 | version = "0.12.5" 1146 | source = "registry+https://github.com/rust-lang/crates.io-index" 1147 | checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" 1148 | dependencies = [ 1149 | "hashbrown", 1150 | ] 1151 | 1152 | [[package]] 1153 | name = "mac" 1154 | version = "0.1.1" 1155 | source = "registry+https://github.com/rust-lang/crates.io-index" 1156 | checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" 1157 | 1158 | [[package]] 1159 | name = "markup5ever" 1160 | version = "0.11.0" 1161 | source = "registry+https://github.com/rust-lang/crates.io-index" 1162 | checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016" 1163 | dependencies = [ 1164 | "log", 1165 | "phf 0.10.1", 1166 | "phf_codegen", 1167 | "string_cache", 1168 | "string_cache_codegen", 1169 | "tendril", 1170 | ] 1171 | 1172 | [[package]] 1173 | name = "memchr" 1174 | version = "2.7.4" 1175 | source = "registry+https://github.com/rust-lang/crates.io-index" 1176 | checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 1177 | 1178 | [[package]] 1179 | name = "mime" 1180 | version = "0.3.17" 1181 | source = "registry+https://github.com/rust-lang/crates.io-index" 1182 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 1183 | 1184 | [[package]] 1185 | name = "miniz_oxide" 1186 | version = "0.7.4" 1187 | source = "registry+https://github.com/rust-lang/crates.io-index" 1188 | checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" 1189 | dependencies = [ 1190 | "adler", 1191 | ] 1192 | 1193 | [[package]] 1194 | name = "mio" 1195 | version = "1.0.3" 1196 | source = "registry+https://github.com/rust-lang/crates.io-index" 1197 | checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" 1198 | dependencies = [ 1199 | "libc", 1200 | "log", 1201 | "wasi", 1202 | "windows-sys 0.52.0", 1203 | ] 1204 | 1205 | [[package]] 1206 | name = "native-tls" 1207 | version = "0.2.12" 1208 | source = "registry+https://github.com/rust-lang/crates.io-index" 1209 | checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" 1210 | dependencies = [ 1211 | "libc", 1212 | "log", 1213 | "openssl", 1214 | "openssl-probe", 1215 | "openssl-sys", 1216 | "schannel", 1217 | "security-framework", 1218 | "security-framework-sys", 1219 | "tempfile", 1220 | ] 1221 | 1222 | [[package]] 1223 | name = "never" 1224 | version = "0.1.0" 1225 | source = "registry+https://github.com/rust-lang/crates.io-index" 1226 | checksum = "c96aba5aa877601bb3f6dd6a63a969e1f82e60646e81e71b14496995e9853c91" 1227 | 1228 | [[package]] 1229 | name = "new_debug_unreachable" 1230 | version = "1.0.6" 1231 | source = "registry+https://github.com/rust-lang/crates.io-index" 1232 | checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" 1233 | 1234 | [[package]] 1235 | name = "num-traits" 1236 | version = "0.2.19" 1237 | source = "registry+https://github.com/rust-lang/crates.io-index" 1238 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 1239 | dependencies = [ 1240 | "autocfg", 1241 | ] 1242 | 1243 | [[package]] 1244 | name = "object" 1245 | version = "0.32.2" 1246 | source = "registry+https://github.com/rust-lang/crates.io-index" 1247 | checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" 1248 | dependencies = [ 1249 | "memchr", 1250 | ] 1251 | 1252 | [[package]] 1253 | name = "once_cell" 1254 | version = "1.20.2" 1255 | source = "registry+https://github.com/rust-lang/crates.io-index" 1256 | checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" 1257 | 1258 | [[package]] 1259 | name = "open" 1260 | version = "5.3.2" 1261 | source = "registry+https://github.com/rust-lang/crates.io-index" 1262 | checksum = "e2483562e62ea94312f3576a7aca397306df7990b8d89033e18766744377ef95" 1263 | dependencies = [ 1264 | "is-wsl", 1265 | "libc", 1266 | "pathdiff", 1267 | ] 1268 | 1269 | [[package]] 1270 | name = "openssl" 1271 | version = "0.10.68" 1272 | source = "registry+https://github.com/rust-lang/crates.io-index" 1273 | checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" 1274 | dependencies = [ 1275 | "bitflags", 1276 | "cfg-if", 1277 | "foreign-types", 1278 | "libc", 1279 | "once_cell", 1280 | "openssl-macros", 1281 | "openssl-sys", 1282 | ] 1283 | 1284 | [[package]] 1285 | name = "openssl-macros" 1286 | version = "0.1.1" 1287 | source = "registry+https://github.com/rust-lang/crates.io-index" 1288 | checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" 1289 | dependencies = [ 1290 | "proc-macro2", 1291 | "quote", 1292 | "syn 2.0.95", 1293 | ] 1294 | 1295 | [[package]] 1296 | name = "openssl-probe" 1297 | version = "0.1.5" 1298 | source = "registry+https://github.com/rust-lang/crates.io-index" 1299 | checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 1300 | 1301 | [[package]] 1302 | name = "openssl-sys" 1303 | version = "0.9.104" 1304 | source = "registry+https://github.com/rust-lang/crates.io-index" 1305 | checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" 1306 | dependencies = [ 1307 | "cc", 1308 | "libc", 1309 | "pkg-config", 1310 | "vcpkg", 1311 | ] 1312 | 1313 | [[package]] 1314 | name = "owo-colors" 1315 | version = "3.5.0" 1316 | source = "registry+https://github.com/rust-lang/crates.io-index" 1317 | checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" 1318 | 1319 | [[package]] 1320 | name = "parking_lot" 1321 | version = "0.12.3" 1322 | source = "registry+https://github.com/rust-lang/crates.io-index" 1323 | checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" 1324 | dependencies = [ 1325 | "lock_api", 1326 | "parking_lot_core", 1327 | ] 1328 | 1329 | [[package]] 1330 | name = "parking_lot_core" 1331 | version = "0.9.10" 1332 | source = "registry+https://github.com/rust-lang/crates.io-index" 1333 | checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 1334 | dependencies = [ 1335 | "cfg-if", 1336 | "libc", 1337 | "redox_syscall", 1338 | "smallvec", 1339 | "windows-targets", 1340 | ] 1341 | 1342 | [[package]] 1343 | name = "paste" 1344 | version = "1.0.15" 1345 | source = "registry+https://github.com/rust-lang/crates.io-index" 1346 | checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 1347 | 1348 | [[package]] 1349 | name = "pathdiff" 1350 | version = "0.2.3" 1351 | source = "registry+https://github.com/rust-lang/crates.io-index" 1352 | checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" 1353 | 1354 | [[package]] 1355 | name = "percent-encoding" 1356 | version = "2.3.1" 1357 | source = "registry+https://github.com/rust-lang/crates.io-index" 1358 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 1359 | 1360 | [[package]] 1361 | name = "phf" 1362 | version = "0.10.1" 1363 | source = "registry+https://github.com/rust-lang/crates.io-index" 1364 | checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" 1365 | dependencies = [ 1366 | "phf_shared 0.10.0", 1367 | ] 1368 | 1369 | [[package]] 1370 | name = "phf" 1371 | version = "0.11.3" 1372 | source = "registry+https://github.com/rust-lang/crates.io-index" 1373 | checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" 1374 | dependencies = [ 1375 | "phf_macros", 1376 | "phf_shared 0.11.3", 1377 | ] 1378 | 1379 | [[package]] 1380 | name = "phf_codegen" 1381 | version = "0.10.0" 1382 | source = "registry+https://github.com/rust-lang/crates.io-index" 1383 | checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" 1384 | dependencies = [ 1385 | "phf_generator 0.10.0", 1386 | "phf_shared 0.10.0", 1387 | ] 1388 | 1389 | [[package]] 1390 | name = "phf_generator" 1391 | version = "0.10.0" 1392 | source = "registry+https://github.com/rust-lang/crates.io-index" 1393 | checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" 1394 | dependencies = [ 1395 | "phf_shared 0.10.0", 1396 | "rand", 1397 | ] 1398 | 1399 | [[package]] 1400 | name = "phf_generator" 1401 | version = "0.11.3" 1402 | source = "registry+https://github.com/rust-lang/crates.io-index" 1403 | checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" 1404 | dependencies = [ 1405 | "phf_shared 0.11.3", 1406 | "rand", 1407 | ] 1408 | 1409 | [[package]] 1410 | name = "phf_macros" 1411 | version = "0.11.3" 1412 | source = "registry+https://github.com/rust-lang/crates.io-index" 1413 | checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" 1414 | dependencies = [ 1415 | "phf_generator 0.11.3", 1416 | "phf_shared 0.11.3", 1417 | "proc-macro2", 1418 | "quote", 1419 | "syn 2.0.95", 1420 | ] 1421 | 1422 | [[package]] 1423 | name = "phf_shared" 1424 | version = "0.10.0" 1425 | source = "registry+https://github.com/rust-lang/crates.io-index" 1426 | checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" 1427 | dependencies = [ 1428 | "siphasher 0.3.11", 1429 | ] 1430 | 1431 | [[package]] 1432 | name = "phf_shared" 1433 | version = "0.11.3" 1434 | source = "registry+https://github.com/rust-lang/crates.io-index" 1435 | checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" 1436 | dependencies = [ 1437 | "siphasher 1.0.1", 1438 | ] 1439 | 1440 | [[package]] 1441 | name = "pin-project-lite" 1442 | version = "0.2.16" 1443 | source = "registry+https://github.com/rust-lang/crates.io-index" 1444 | checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" 1445 | 1446 | [[package]] 1447 | name = "pin-utils" 1448 | version = "0.1.0" 1449 | source = "registry+https://github.com/rust-lang/crates.io-index" 1450 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 1451 | 1452 | [[package]] 1453 | name = "pkg-config" 1454 | version = "0.3.31" 1455 | source = "registry+https://github.com/rust-lang/crates.io-index" 1456 | checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" 1457 | 1458 | [[package]] 1459 | name = "ppv-lite86" 1460 | version = "0.2.20" 1461 | source = "registry+https://github.com/rust-lang/crates.io-index" 1462 | checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" 1463 | dependencies = [ 1464 | "zerocopy", 1465 | ] 1466 | 1467 | [[package]] 1468 | name = "precomputed-hash" 1469 | version = "0.1.1" 1470 | source = "registry+https://github.com/rust-lang/crates.io-index" 1471 | checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" 1472 | 1473 | [[package]] 1474 | name = "proc-macro2" 1475 | version = "1.0.92" 1476 | source = "registry+https://github.com/rust-lang/crates.io-index" 1477 | checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" 1478 | dependencies = [ 1479 | "unicode-ident", 1480 | ] 1481 | 1482 | [[package]] 1483 | name = "quick-xml" 1484 | version = "0.31.0" 1485 | source = "registry+https://github.com/rust-lang/crates.io-index" 1486 | checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" 1487 | dependencies = [ 1488 | "memchr", 1489 | ] 1490 | 1491 | [[package]] 1492 | name = "quick-xml" 1493 | version = "0.37.2" 1494 | source = "registry+https://github.com/rust-lang/crates.io-index" 1495 | checksum = "165859e9e55f79d67b96c5d96f4e88b6f2695a1972849c15a6a3f5c59fc2c003" 1496 | dependencies = [ 1497 | "encoding_rs", 1498 | "memchr", 1499 | ] 1500 | 1501 | [[package]] 1502 | name = "quote" 1503 | version = "1.0.38" 1504 | source = "registry+https://github.com/rust-lang/crates.io-index" 1505 | checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" 1506 | dependencies = [ 1507 | "proc-macro2", 1508 | ] 1509 | 1510 | [[package]] 1511 | name = "rand" 1512 | version = "0.8.5" 1513 | source = "registry+https://github.com/rust-lang/crates.io-index" 1514 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 1515 | dependencies = [ 1516 | "libc", 1517 | "rand_chacha", 1518 | "rand_core", 1519 | ] 1520 | 1521 | [[package]] 1522 | name = "rand_chacha" 1523 | version = "0.3.1" 1524 | source = "registry+https://github.com/rust-lang/crates.io-index" 1525 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 1526 | dependencies = [ 1527 | "ppv-lite86", 1528 | "rand_core", 1529 | ] 1530 | 1531 | [[package]] 1532 | name = "rand_core" 1533 | version = "0.6.4" 1534 | source = "registry+https://github.com/rust-lang/crates.io-index" 1535 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 1536 | dependencies = [ 1537 | "getrandom", 1538 | ] 1539 | 1540 | [[package]] 1541 | name = "ratatui" 1542 | version = "0.29.0" 1543 | source = "registry+https://github.com/rust-lang/crates.io-index" 1544 | checksum = "eabd94c2f37801c20583fc49dd5cd6b0ba68c716787c2dd6ed18571e1e63117b" 1545 | dependencies = [ 1546 | "bitflags", 1547 | "cassowary", 1548 | "compact_str", 1549 | "crossterm", 1550 | "indoc", 1551 | "instability", 1552 | "itertools", 1553 | "lru", 1554 | "paste", 1555 | "strum", 1556 | "unicode-segmentation", 1557 | "unicode-truncate", 1558 | "unicode-width 0.2.0", 1559 | ] 1560 | 1561 | [[package]] 1562 | name = "redox_syscall" 1563 | version = "0.5.8" 1564 | source = "registry+https://github.com/rust-lang/crates.io-index" 1565 | checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" 1566 | dependencies = [ 1567 | "bitflags", 1568 | ] 1569 | 1570 | [[package]] 1571 | name = "reqwest" 1572 | version = "0.12.12" 1573 | source = "registry+https://github.com/rust-lang/crates.io-index" 1574 | checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da" 1575 | dependencies = [ 1576 | "base64", 1577 | "bytes", 1578 | "encoding_rs", 1579 | "futures-channel", 1580 | "futures-core", 1581 | "futures-util", 1582 | "h2", 1583 | "http", 1584 | "http-body", 1585 | "http-body-util", 1586 | "hyper", 1587 | "hyper-rustls", 1588 | "hyper-tls", 1589 | "hyper-util", 1590 | "ipnet", 1591 | "js-sys", 1592 | "log", 1593 | "mime", 1594 | "native-tls", 1595 | "once_cell", 1596 | "percent-encoding", 1597 | "pin-project-lite", 1598 | "rustls-pemfile", 1599 | "serde", 1600 | "serde_json", 1601 | "serde_urlencoded", 1602 | "sync_wrapper", 1603 | "system-configuration", 1604 | "tokio", 1605 | "tokio-native-tls", 1606 | "tower", 1607 | "tower-service", 1608 | "url", 1609 | "wasm-bindgen", 1610 | "wasm-bindgen-futures", 1611 | "web-sys", 1612 | "windows-registry", 1613 | ] 1614 | 1615 | [[package]] 1616 | name = "ring" 1617 | version = "0.17.8" 1618 | source = "registry+https://github.com/rust-lang/crates.io-index" 1619 | checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" 1620 | dependencies = [ 1621 | "cc", 1622 | "cfg-if", 1623 | "getrandom", 1624 | "libc", 1625 | "spin", 1626 | "untrusted", 1627 | "windows-sys 0.52.0", 1628 | ] 1629 | 1630 | [[package]] 1631 | name = "rss" 1632 | version = "2.0.11" 1633 | source = "registry+https://github.com/rust-lang/crates.io-index" 1634 | checksum = "531af70fce504d369cf42ac0a9645f5a62a8ea9265de71cfa25087e9f6080c7c" 1635 | dependencies = [ 1636 | "atom_syndication", 1637 | "derive_builder", 1638 | "never", 1639 | "quick-xml 0.37.2", 1640 | ] 1641 | 1642 | [[package]] 1643 | name = "rustc-demangle" 1644 | version = "0.1.24" 1645 | source = "registry+https://github.com/rust-lang/crates.io-index" 1646 | checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" 1647 | 1648 | [[package]] 1649 | name = "rustix" 1650 | version = "0.38.43" 1651 | source = "registry+https://github.com/rust-lang/crates.io-index" 1652 | checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6" 1653 | dependencies = [ 1654 | "bitflags", 1655 | "errno", 1656 | "libc", 1657 | "linux-raw-sys", 1658 | "windows-sys 0.59.0", 1659 | ] 1660 | 1661 | [[package]] 1662 | name = "rustls" 1663 | version = "0.23.20" 1664 | source = "registry+https://github.com/rust-lang/crates.io-index" 1665 | checksum = "5065c3f250cbd332cd894be57c40fa52387247659b14a2d6041d121547903b1b" 1666 | dependencies = [ 1667 | "once_cell", 1668 | "rustls-pki-types", 1669 | "rustls-webpki", 1670 | "subtle", 1671 | "zeroize", 1672 | ] 1673 | 1674 | [[package]] 1675 | name = "rustls-pemfile" 1676 | version = "2.2.0" 1677 | source = "registry+https://github.com/rust-lang/crates.io-index" 1678 | checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" 1679 | dependencies = [ 1680 | "rustls-pki-types", 1681 | ] 1682 | 1683 | [[package]] 1684 | name = "rustls-pki-types" 1685 | version = "1.10.1" 1686 | source = "registry+https://github.com/rust-lang/crates.io-index" 1687 | checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" 1688 | 1689 | [[package]] 1690 | name = "rustls-webpki" 1691 | version = "0.102.8" 1692 | source = "registry+https://github.com/rust-lang/crates.io-index" 1693 | checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" 1694 | dependencies = [ 1695 | "ring", 1696 | "rustls-pki-types", 1697 | "untrusted", 1698 | ] 1699 | 1700 | [[package]] 1701 | name = "rustversion" 1702 | version = "1.0.19" 1703 | source = "registry+https://github.com/rust-lang/crates.io-index" 1704 | checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" 1705 | 1706 | [[package]] 1707 | name = "ryu" 1708 | version = "1.0.18" 1709 | source = "registry+https://github.com/rust-lang/crates.io-index" 1710 | checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" 1711 | 1712 | [[package]] 1713 | name = "schannel" 1714 | version = "0.1.27" 1715 | source = "registry+https://github.com/rust-lang/crates.io-index" 1716 | checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" 1717 | dependencies = [ 1718 | "windows-sys 0.59.0", 1719 | ] 1720 | 1721 | [[package]] 1722 | name = "scopeguard" 1723 | version = "1.2.0" 1724 | source = "registry+https://github.com/rust-lang/crates.io-index" 1725 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1726 | 1727 | [[package]] 1728 | name = "scraper" 1729 | version = "0.18.1" 1730 | source = "registry+https://github.com/rust-lang/crates.io-index" 1731 | checksum = "585480e3719b311b78a573db1c9d9c4c1f8010c2dee4cc59c2efe58ea4dbc3e1" 1732 | dependencies = [ 1733 | "ahash", 1734 | "cssparser", 1735 | "ego-tree", 1736 | "getopts", 1737 | "html5ever", 1738 | "once_cell", 1739 | "selectors", 1740 | "tendril", 1741 | ] 1742 | 1743 | [[package]] 1744 | name = "security-framework" 1745 | version = "2.11.1" 1746 | source = "registry+https://github.com/rust-lang/crates.io-index" 1747 | checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" 1748 | dependencies = [ 1749 | "bitflags", 1750 | "core-foundation", 1751 | "core-foundation-sys", 1752 | "libc", 1753 | "security-framework-sys", 1754 | ] 1755 | 1756 | [[package]] 1757 | name = "security-framework-sys" 1758 | version = "2.14.0" 1759 | source = "registry+https://github.com/rust-lang/crates.io-index" 1760 | checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" 1761 | dependencies = [ 1762 | "core-foundation-sys", 1763 | "libc", 1764 | ] 1765 | 1766 | [[package]] 1767 | name = "selectors" 1768 | version = "0.25.0" 1769 | source = "registry+https://github.com/rust-lang/crates.io-index" 1770 | checksum = "4eb30575f3638fc8f6815f448d50cb1a2e255b0897985c8c59f4d37b72a07b06" 1771 | dependencies = [ 1772 | "bitflags", 1773 | "cssparser", 1774 | "derive_more", 1775 | "fxhash", 1776 | "log", 1777 | "new_debug_unreachable", 1778 | "phf 0.10.1", 1779 | "phf_codegen", 1780 | "precomputed-hash", 1781 | "servo_arc", 1782 | "smallvec", 1783 | ] 1784 | 1785 | [[package]] 1786 | name = "serde" 1787 | version = "1.0.217" 1788 | source = "registry+https://github.com/rust-lang/crates.io-index" 1789 | checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" 1790 | dependencies = [ 1791 | "serde_derive", 1792 | ] 1793 | 1794 | [[package]] 1795 | name = "serde_derive" 1796 | version = "1.0.217" 1797 | source = "registry+https://github.com/rust-lang/crates.io-index" 1798 | checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" 1799 | dependencies = [ 1800 | "proc-macro2", 1801 | "quote", 1802 | "syn 2.0.95", 1803 | ] 1804 | 1805 | [[package]] 1806 | name = "serde_json" 1807 | version = "1.0.135" 1808 | source = "registry+https://github.com/rust-lang/crates.io-index" 1809 | checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" 1810 | dependencies = [ 1811 | "itoa", 1812 | "memchr", 1813 | "ryu", 1814 | "serde", 1815 | ] 1816 | 1817 | [[package]] 1818 | name = "serde_urlencoded" 1819 | version = "0.7.1" 1820 | source = "registry+https://github.com/rust-lang/crates.io-index" 1821 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 1822 | dependencies = [ 1823 | "form_urlencoded", 1824 | "itoa", 1825 | "ryu", 1826 | "serde", 1827 | ] 1828 | 1829 | [[package]] 1830 | name = "servo_arc" 1831 | version = "0.3.0" 1832 | source = "registry+https://github.com/rust-lang/crates.io-index" 1833 | checksum = "d036d71a959e00c77a63538b90a6c2390969f9772b096ea837205c6bd0491a44" 1834 | dependencies = [ 1835 | "stable_deref_trait", 1836 | ] 1837 | 1838 | [[package]] 1839 | name = "sharded-slab" 1840 | version = "0.1.7" 1841 | source = "registry+https://github.com/rust-lang/crates.io-index" 1842 | checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" 1843 | dependencies = [ 1844 | "lazy_static", 1845 | ] 1846 | 1847 | [[package]] 1848 | name = "shlex" 1849 | version = "1.3.0" 1850 | source = "registry+https://github.com/rust-lang/crates.io-index" 1851 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1852 | 1853 | [[package]] 1854 | name = "signal-hook" 1855 | version = "0.3.17" 1856 | source = "registry+https://github.com/rust-lang/crates.io-index" 1857 | checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" 1858 | dependencies = [ 1859 | "libc", 1860 | "signal-hook-registry", 1861 | ] 1862 | 1863 | [[package]] 1864 | name = "signal-hook-mio" 1865 | version = "0.2.4" 1866 | source = "registry+https://github.com/rust-lang/crates.io-index" 1867 | checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd" 1868 | dependencies = [ 1869 | "libc", 1870 | "mio", 1871 | "signal-hook", 1872 | ] 1873 | 1874 | [[package]] 1875 | name = "signal-hook-registry" 1876 | version = "1.4.2" 1877 | source = "registry+https://github.com/rust-lang/crates.io-index" 1878 | checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" 1879 | dependencies = [ 1880 | "libc", 1881 | ] 1882 | 1883 | [[package]] 1884 | name = "siphasher" 1885 | version = "0.3.11" 1886 | source = "registry+https://github.com/rust-lang/crates.io-index" 1887 | checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" 1888 | 1889 | [[package]] 1890 | name = "siphasher" 1891 | version = "1.0.1" 1892 | source = "registry+https://github.com/rust-lang/crates.io-index" 1893 | checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" 1894 | 1895 | [[package]] 1896 | name = "slab" 1897 | version = "0.4.9" 1898 | source = "registry+https://github.com/rust-lang/crates.io-index" 1899 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 1900 | dependencies = [ 1901 | "autocfg", 1902 | ] 1903 | 1904 | [[package]] 1905 | name = "smallvec" 1906 | version = "1.13.2" 1907 | source = "registry+https://github.com/rust-lang/crates.io-index" 1908 | checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" 1909 | 1910 | [[package]] 1911 | name = "socket2" 1912 | version = "0.5.8" 1913 | source = "registry+https://github.com/rust-lang/crates.io-index" 1914 | checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" 1915 | dependencies = [ 1916 | "libc", 1917 | "windows-sys 0.52.0", 1918 | ] 1919 | 1920 | [[package]] 1921 | name = "spin" 1922 | version = "0.9.8" 1923 | source = "registry+https://github.com/rust-lang/crates.io-index" 1924 | checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 1925 | 1926 | [[package]] 1927 | name = "stable_deref_trait" 1928 | version = "1.2.0" 1929 | source = "registry+https://github.com/rust-lang/crates.io-index" 1930 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 1931 | 1932 | [[package]] 1933 | name = "static_assertions" 1934 | version = "1.1.0" 1935 | source = "registry+https://github.com/rust-lang/crates.io-index" 1936 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 1937 | 1938 | [[package]] 1939 | name = "string_cache" 1940 | version = "0.8.8" 1941 | source = "registry+https://github.com/rust-lang/crates.io-index" 1942 | checksum = "938d512196766101d333398efde81bc1f37b00cb42c2f8350e5df639f040bbbe" 1943 | dependencies = [ 1944 | "new_debug_unreachable", 1945 | "parking_lot", 1946 | "phf_shared 0.11.3", 1947 | "precomputed-hash", 1948 | "serde", 1949 | ] 1950 | 1951 | [[package]] 1952 | name = "string_cache_codegen" 1953 | version = "0.5.3" 1954 | source = "registry+https://github.com/rust-lang/crates.io-index" 1955 | checksum = "244292f3441c89febe5b5bdfbb6863aeaf4f64da810ea3050fd927b27b8d92ce" 1956 | dependencies = [ 1957 | "phf_generator 0.11.3", 1958 | "phf_shared 0.11.3", 1959 | "proc-macro2", 1960 | "quote", 1961 | ] 1962 | 1963 | [[package]] 1964 | name = "strsim" 1965 | version = "0.11.1" 1966 | source = "registry+https://github.com/rust-lang/crates.io-index" 1967 | checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 1968 | 1969 | [[package]] 1970 | name = "strum" 1971 | version = "0.26.3" 1972 | source = "registry+https://github.com/rust-lang/crates.io-index" 1973 | checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" 1974 | dependencies = [ 1975 | "strum_macros", 1976 | ] 1977 | 1978 | [[package]] 1979 | name = "strum_macros" 1980 | version = "0.26.4" 1981 | source = "registry+https://github.com/rust-lang/crates.io-index" 1982 | checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" 1983 | dependencies = [ 1984 | "heck", 1985 | "proc-macro2", 1986 | "quote", 1987 | "rustversion", 1988 | "syn 2.0.95", 1989 | ] 1990 | 1991 | [[package]] 1992 | name = "subtle" 1993 | version = "2.6.1" 1994 | source = "registry+https://github.com/rust-lang/crates.io-index" 1995 | checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 1996 | 1997 | [[package]] 1998 | name = "syn" 1999 | version = "1.0.109" 2000 | source = "registry+https://github.com/rust-lang/crates.io-index" 2001 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 2002 | dependencies = [ 2003 | "proc-macro2", 2004 | "quote", 2005 | "unicode-ident", 2006 | ] 2007 | 2008 | [[package]] 2009 | name = "syn" 2010 | version = "2.0.95" 2011 | source = "registry+https://github.com/rust-lang/crates.io-index" 2012 | checksum = "46f71c0377baf4ef1cc3e3402ded576dccc315800fbc62dfc7fe04b009773b4a" 2013 | dependencies = [ 2014 | "proc-macro2", 2015 | "quote", 2016 | "unicode-ident", 2017 | ] 2018 | 2019 | [[package]] 2020 | name = "sync_wrapper" 2021 | version = "1.0.2" 2022 | source = "registry+https://github.com/rust-lang/crates.io-index" 2023 | checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" 2024 | dependencies = [ 2025 | "futures-core", 2026 | ] 2027 | 2028 | [[package]] 2029 | name = "synstructure" 2030 | version = "0.13.1" 2031 | source = "registry+https://github.com/rust-lang/crates.io-index" 2032 | checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" 2033 | dependencies = [ 2034 | "proc-macro2", 2035 | "quote", 2036 | "syn 2.0.95", 2037 | ] 2038 | 2039 | [[package]] 2040 | name = "system-configuration" 2041 | version = "0.6.1" 2042 | source = "registry+https://github.com/rust-lang/crates.io-index" 2043 | checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" 2044 | dependencies = [ 2045 | "bitflags", 2046 | "core-foundation", 2047 | "system-configuration-sys", 2048 | ] 2049 | 2050 | [[package]] 2051 | name = "system-configuration-sys" 2052 | version = "0.6.0" 2053 | source = "registry+https://github.com/rust-lang/crates.io-index" 2054 | checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" 2055 | dependencies = [ 2056 | "core-foundation-sys", 2057 | "libc", 2058 | ] 2059 | 2060 | [[package]] 2061 | name = "tempfile" 2062 | version = "3.15.0" 2063 | source = "registry+https://github.com/rust-lang/crates.io-index" 2064 | checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704" 2065 | dependencies = [ 2066 | "cfg-if", 2067 | "fastrand", 2068 | "getrandom", 2069 | "once_cell", 2070 | "rustix", 2071 | "windows-sys 0.59.0", 2072 | ] 2073 | 2074 | [[package]] 2075 | name = "tendril" 2076 | version = "0.4.3" 2077 | source = "registry+https://github.com/rust-lang/crates.io-index" 2078 | checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0" 2079 | dependencies = [ 2080 | "futf", 2081 | "mac", 2082 | "utf-8", 2083 | ] 2084 | 2085 | [[package]] 2086 | name = "thread_local" 2087 | version = "1.1.8" 2088 | source = "registry+https://github.com/rust-lang/crates.io-index" 2089 | checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" 2090 | dependencies = [ 2091 | "cfg-if", 2092 | "once_cell", 2093 | ] 2094 | 2095 | [[package]] 2096 | name = "tinystr" 2097 | version = "0.7.6" 2098 | source = "registry+https://github.com/rust-lang/crates.io-index" 2099 | checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" 2100 | dependencies = [ 2101 | "displaydoc", 2102 | "zerovec", 2103 | ] 2104 | 2105 | [[package]] 2106 | name = "tokio" 2107 | version = "1.43.0" 2108 | source = "registry+https://github.com/rust-lang/crates.io-index" 2109 | checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" 2110 | dependencies = [ 2111 | "backtrace", 2112 | "bytes", 2113 | "libc", 2114 | "mio", 2115 | "pin-project-lite", 2116 | "socket2", 2117 | "windows-sys 0.52.0", 2118 | ] 2119 | 2120 | [[package]] 2121 | name = "tokio-native-tls" 2122 | version = "0.3.1" 2123 | source = "registry+https://github.com/rust-lang/crates.io-index" 2124 | checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" 2125 | dependencies = [ 2126 | "native-tls", 2127 | "tokio", 2128 | ] 2129 | 2130 | [[package]] 2131 | name = "tokio-rustls" 2132 | version = "0.26.1" 2133 | source = "registry+https://github.com/rust-lang/crates.io-index" 2134 | checksum = "5f6d0975eaace0cf0fcadee4e4aaa5da15b5c079146f2cffb67c113be122bf37" 2135 | dependencies = [ 2136 | "rustls", 2137 | "tokio", 2138 | ] 2139 | 2140 | [[package]] 2141 | name = "tokio-util" 2142 | version = "0.7.13" 2143 | source = "registry+https://github.com/rust-lang/crates.io-index" 2144 | checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" 2145 | dependencies = [ 2146 | "bytes", 2147 | "futures-core", 2148 | "futures-sink", 2149 | "pin-project-lite", 2150 | "tokio", 2151 | ] 2152 | 2153 | [[package]] 2154 | name = "tower" 2155 | version = "0.5.2" 2156 | source = "registry+https://github.com/rust-lang/crates.io-index" 2157 | checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" 2158 | dependencies = [ 2159 | "futures-core", 2160 | "futures-util", 2161 | "pin-project-lite", 2162 | "sync_wrapper", 2163 | "tokio", 2164 | "tower-layer", 2165 | "tower-service", 2166 | ] 2167 | 2168 | [[package]] 2169 | name = "tower-layer" 2170 | version = "0.3.3" 2171 | source = "registry+https://github.com/rust-lang/crates.io-index" 2172 | checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" 2173 | 2174 | [[package]] 2175 | name = "tower-service" 2176 | version = "0.3.3" 2177 | source = "registry+https://github.com/rust-lang/crates.io-index" 2178 | checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" 2179 | 2180 | [[package]] 2181 | name = "tracing" 2182 | version = "0.1.41" 2183 | source = "registry+https://github.com/rust-lang/crates.io-index" 2184 | checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" 2185 | dependencies = [ 2186 | "pin-project-lite", 2187 | "tracing-core", 2188 | ] 2189 | 2190 | [[package]] 2191 | name = "tracing-core" 2192 | version = "0.1.33" 2193 | source = "registry+https://github.com/rust-lang/crates.io-index" 2194 | checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" 2195 | dependencies = [ 2196 | "once_cell", 2197 | "valuable", 2198 | ] 2199 | 2200 | [[package]] 2201 | name = "tracing-error" 2202 | version = "0.2.1" 2203 | source = "registry+https://github.com/rust-lang/crates.io-index" 2204 | checksum = "8b1581020d7a273442f5b45074a6a57d5757ad0a47dac0e9f0bd57b81936f3db" 2205 | dependencies = [ 2206 | "tracing", 2207 | "tracing-subscriber", 2208 | ] 2209 | 2210 | [[package]] 2211 | name = "tracing-subscriber" 2212 | version = "0.3.19" 2213 | source = "registry+https://github.com/rust-lang/crates.io-index" 2214 | checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" 2215 | dependencies = [ 2216 | "sharded-slab", 2217 | "thread_local", 2218 | "tracing-core", 2219 | ] 2220 | 2221 | [[package]] 2222 | name = "try-lock" 2223 | version = "0.2.5" 2224 | source = "registry+https://github.com/rust-lang/crates.io-index" 2225 | checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 2226 | 2227 | [[package]] 2228 | name = "unicode-ident" 2229 | version = "1.0.14" 2230 | source = "registry+https://github.com/rust-lang/crates.io-index" 2231 | checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" 2232 | 2233 | [[package]] 2234 | name = "unicode-segmentation" 2235 | version = "1.12.0" 2236 | source = "registry+https://github.com/rust-lang/crates.io-index" 2237 | checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 2238 | 2239 | [[package]] 2240 | name = "unicode-truncate" 2241 | version = "1.1.0" 2242 | source = "registry+https://github.com/rust-lang/crates.io-index" 2243 | checksum = "b3644627a5af5fa321c95b9b235a72fd24cd29c648c2c379431e6628655627bf" 2244 | dependencies = [ 2245 | "itertools", 2246 | "unicode-segmentation", 2247 | "unicode-width 0.1.14", 2248 | ] 2249 | 2250 | [[package]] 2251 | name = "unicode-width" 2252 | version = "0.1.14" 2253 | source = "registry+https://github.com/rust-lang/crates.io-index" 2254 | checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" 2255 | 2256 | [[package]] 2257 | name = "unicode-width" 2258 | version = "0.2.0" 2259 | source = "registry+https://github.com/rust-lang/crates.io-index" 2260 | checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" 2261 | 2262 | [[package]] 2263 | name = "untrusted" 2264 | version = "0.9.0" 2265 | source = "registry+https://github.com/rust-lang/crates.io-index" 2266 | checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 2267 | 2268 | [[package]] 2269 | name = "url" 2270 | version = "2.5.4" 2271 | source = "registry+https://github.com/rust-lang/crates.io-index" 2272 | checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" 2273 | dependencies = [ 2274 | "form_urlencoded", 2275 | "idna", 2276 | "percent-encoding", 2277 | ] 2278 | 2279 | [[package]] 2280 | name = "utf-8" 2281 | version = "0.7.6" 2282 | source = "registry+https://github.com/rust-lang/crates.io-index" 2283 | checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" 2284 | 2285 | [[package]] 2286 | name = "utf16_iter" 2287 | version = "1.0.5" 2288 | source = "registry+https://github.com/rust-lang/crates.io-index" 2289 | checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" 2290 | 2291 | [[package]] 2292 | name = "utf8_iter" 2293 | version = "1.0.4" 2294 | source = "registry+https://github.com/rust-lang/crates.io-index" 2295 | checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 2296 | 2297 | [[package]] 2298 | name = "utf8parse" 2299 | version = "0.2.2" 2300 | source = "registry+https://github.com/rust-lang/crates.io-index" 2301 | checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" 2302 | 2303 | [[package]] 2304 | name = "valuable" 2305 | version = "0.1.0" 2306 | source = "registry+https://github.com/rust-lang/crates.io-index" 2307 | checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" 2308 | 2309 | [[package]] 2310 | name = "vcpkg" 2311 | version = "0.2.15" 2312 | source = "registry+https://github.com/rust-lang/crates.io-index" 2313 | checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 2314 | 2315 | [[package]] 2316 | name = "version_check" 2317 | version = "0.9.5" 2318 | source = "registry+https://github.com/rust-lang/crates.io-index" 2319 | checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 2320 | 2321 | [[package]] 2322 | name = "want" 2323 | version = "0.3.1" 2324 | source = "registry+https://github.com/rust-lang/crates.io-index" 2325 | checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 2326 | dependencies = [ 2327 | "try-lock", 2328 | ] 2329 | 2330 | [[package]] 2331 | name = "wasi" 2332 | version = "0.11.0+wasi-snapshot-preview1" 2333 | source = "registry+https://github.com/rust-lang/crates.io-index" 2334 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 2335 | 2336 | [[package]] 2337 | name = "wasm-bindgen" 2338 | version = "0.2.99" 2339 | source = "registry+https://github.com/rust-lang/crates.io-index" 2340 | checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" 2341 | dependencies = [ 2342 | "cfg-if", 2343 | "once_cell", 2344 | "wasm-bindgen-macro", 2345 | ] 2346 | 2347 | [[package]] 2348 | name = "wasm-bindgen-backend" 2349 | version = "0.2.99" 2350 | source = "registry+https://github.com/rust-lang/crates.io-index" 2351 | checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" 2352 | dependencies = [ 2353 | "bumpalo", 2354 | "log", 2355 | "proc-macro2", 2356 | "quote", 2357 | "syn 2.0.95", 2358 | "wasm-bindgen-shared", 2359 | ] 2360 | 2361 | [[package]] 2362 | name = "wasm-bindgen-futures" 2363 | version = "0.4.49" 2364 | source = "registry+https://github.com/rust-lang/crates.io-index" 2365 | checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" 2366 | dependencies = [ 2367 | "cfg-if", 2368 | "js-sys", 2369 | "once_cell", 2370 | "wasm-bindgen", 2371 | "web-sys", 2372 | ] 2373 | 2374 | [[package]] 2375 | name = "wasm-bindgen-macro" 2376 | version = "0.2.99" 2377 | source = "registry+https://github.com/rust-lang/crates.io-index" 2378 | checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" 2379 | dependencies = [ 2380 | "quote", 2381 | "wasm-bindgen-macro-support", 2382 | ] 2383 | 2384 | [[package]] 2385 | name = "wasm-bindgen-macro-support" 2386 | version = "0.2.99" 2387 | source = "registry+https://github.com/rust-lang/crates.io-index" 2388 | checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" 2389 | dependencies = [ 2390 | "proc-macro2", 2391 | "quote", 2392 | "syn 2.0.95", 2393 | "wasm-bindgen-backend", 2394 | "wasm-bindgen-shared", 2395 | ] 2396 | 2397 | [[package]] 2398 | name = "wasm-bindgen-shared" 2399 | version = "0.2.99" 2400 | source = "registry+https://github.com/rust-lang/crates.io-index" 2401 | checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" 2402 | 2403 | [[package]] 2404 | name = "web-sys" 2405 | version = "0.3.76" 2406 | source = "registry+https://github.com/rust-lang/crates.io-index" 2407 | checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" 2408 | dependencies = [ 2409 | "js-sys", 2410 | "wasm-bindgen", 2411 | ] 2412 | 2413 | [[package]] 2414 | name = "winapi" 2415 | version = "0.3.9" 2416 | source = "registry+https://github.com/rust-lang/crates.io-index" 2417 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 2418 | dependencies = [ 2419 | "winapi-i686-pc-windows-gnu", 2420 | "winapi-x86_64-pc-windows-gnu", 2421 | ] 2422 | 2423 | [[package]] 2424 | name = "winapi-i686-pc-windows-gnu" 2425 | version = "0.4.0" 2426 | source = "registry+https://github.com/rust-lang/crates.io-index" 2427 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 2428 | 2429 | [[package]] 2430 | name = "winapi-x86_64-pc-windows-gnu" 2431 | version = "0.4.0" 2432 | source = "registry+https://github.com/rust-lang/crates.io-index" 2433 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 2434 | 2435 | [[package]] 2436 | name = "windows-core" 2437 | version = "0.52.0" 2438 | source = "registry+https://github.com/rust-lang/crates.io-index" 2439 | checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" 2440 | dependencies = [ 2441 | "windows-targets", 2442 | ] 2443 | 2444 | [[package]] 2445 | name = "windows-registry" 2446 | version = "0.2.0" 2447 | source = "registry+https://github.com/rust-lang/crates.io-index" 2448 | checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" 2449 | dependencies = [ 2450 | "windows-result", 2451 | "windows-strings", 2452 | "windows-targets", 2453 | ] 2454 | 2455 | [[package]] 2456 | name = "windows-result" 2457 | version = "0.2.0" 2458 | source = "registry+https://github.com/rust-lang/crates.io-index" 2459 | checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" 2460 | dependencies = [ 2461 | "windows-targets", 2462 | ] 2463 | 2464 | [[package]] 2465 | name = "windows-strings" 2466 | version = "0.1.0" 2467 | source = "registry+https://github.com/rust-lang/crates.io-index" 2468 | checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" 2469 | dependencies = [ 2470 | "windows-result", 2471 | "windows-targets", 2472 | ] 2473 | 2474 | [[package]] 2475 | name = "windows-sys" 2476 | version = "0.52.0" 2477 | source = "registry+https://github.com/rust-lang/crates.io-index" 2478 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 2479 | dependencies = [ 2480 | "windows-targets", 2481 | ] 2482 | 2483 | [[package]] 2484 | name = "windows-sys" 2485 | version = "0.59.0" 2486 | source = "registry+https://github.com/rust-lang/crates.io-index" 2487 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 2488 | dependencies = [ 2489 | "windows-targets", 2490 | ] 2491 | 2492 | [[package]] 2493 | name = "windows-targets" 2494 | version = "0.52.6" 2495 | source = "registry+https://github.com/rust-lang/crates.io-index" 2496 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 2497 | dependencies = [ 2498 | "windows_aarch64_gnullvm", 2499 | "windows_aarch64_msvc", 2500 | "windows_i686_gnu", 2501 | "windows_i686_gnullvm", 2502 | "windows_i686_msvc", 2503 | "windows_x86_64_gnu", 2504 | "windows_x86_64_gnullvm", 2505 | "windows_x86_64_msvc", 2506 | ] 2507 | 2508 | [[package]] 2509 | name = "windows_aarch64_gnullvm" 2510 | version = "0.52.6" 2511 | source = "registry+https://github.com/rust-lang/crates.io-index" 2512 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 2513 | 2514 | [[package]] 2515 | name = "windows_aarch64_msvc" 2516 | version = "0.52.6" 2517 | source = "registry+https://github.com/rust-lang/crates.io-index" 2518 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 2519 | 2520 | [[package]] 2521 | name = "windows_i686_gnu" 2522 | version = "0.52.6" 2523 | source = "registry+https://github.com/rust-lang/crates.io-index" 2524 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 2525 | 2526 | [[package]] 2527 | name = "windows_i686_gnullvm" 2528 | version = "0.52.6" 2529 | source = "registry+https://github.com/rust-lang/crates.io-index" 2530 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 2531 | 2532 | [[package]] 2533 | name = "windows_i686_msvc" 2534 | version = "0.52.6" 2535 | source = "registry+https://github.com/rust-lang/crates.io-index" 2536 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 2537 | 2538 | [[package]] 2539 | name = "windows_x86_64_gnu" 2540 | version = "0.52.6" 2541 | source = "registry+https://github.com/rust-lang/crates.io-index" 2542 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 2543 | 2544 | [[package]] 2545 | name = "windows_x86_64_gnullvm" 2546 | version = "0.52.6" 2547 | source = "registry+https://github.com/rust-lang/crates.io-index" 2548 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 2549 | 2550 | [[package]] 2551 | name = "windows_x86_64_msvc" 2552 | version = "0.52.6" 2553 | source = "registry+https://github.com/rust-lang/crates.io-index" 2554 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 2555 | 2556 | [[package]] 2557 | name = "write16" 2558 | version = "1.0.0" 2559 | source = "registry+https://github.com/rust-lang/crates.io-index" 2560 | checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" 2561 | 2562 | [[package]] 2563 | name = "writeable" 2564 | version = "0.5.5" 2565 | source = "registry+https://github.com/rust-lang/crates.io-index" 2566 | checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" 2567 | 2568 | [[package]] 2569 | name = "yoke" 2570 | version = "0.7.5" 2571 | source = "registry+https://github.com/rust-lang/crates.io-index" 2572 | checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" 2573 | dependencies = [ 2574 | "serde", 2575 | "stable_deref_trait", 2576 | "yoke-derive", 2577 | "zerofrom", 2578 | ] 2579 | 2580 | [[package]] 2581 | name = "yoke-derive" 2582 | version = "0.7.5" 2583 | source = "registry+https://github.com/rust-lang/crates.io-index" 2584 | checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" 2585 | dependencies = [ 2586 | "proc-macro2", 2587 | "quote", 2588 | "syn 2.0.95", 2589 | "synstructure", 2590 | ] 2591 | 2592 | [[package]] 2593 | name = "zerocopy" 2594 | version = "0.7.35" 2595 | source = "registry+https://github.com/rust-lang/crates.io-index" 2596 | checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" 2597 | dependencies = [ 2598 | "byteorder", 2599 | "zerocopy-derive", 2600 | ] 2601 | 2602 | [[package]] 2603 | name = "zerocopy-derive" 2604 | version = "0.7.35" 2605 | source = "registry+https://github.com/rust-lang/crates.io-index" 2606 | checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" 2607 | dependencies = [ 2608 | "proc-macro2", 2609 | "quote", 2610 | "syn 2.0.95", 2611 | ] 2612 | 2613 | [[package]] 2614 | name = "zerofrom" 2615 | version = "0.1.5" 2616 | source = "registry+https://github.com/rust-lang/crates.io-index" 2617 | checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" 2618 | dependencies = [ 2619 | "zerofrom-derive", 2620 | ] 2621 | 2622 | [[package]] 2623 | name = "zerofrom-derive" 2624 | version = "0.1.5" 2625 | source = "registry+https://github.com/rust-lang/crates.io-index" 2626 | checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" 2627 | dependencies = [ 2628 | "proc-macro2", 2629 | "quote", 2630 | "syn 2.0.95", 2631 | "synstructure", 2632 | ] 2633 | 2634 | [[package]] 2635 | name = "zeroize" 2636 | version = "1.8.1" 2637 | source = "registry+https://github.com/rust-lang/crates.io-index" 2638 | checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" 2639 | 2640 | [[package]] 2641 | name = "zerovec" 2642 | version = "0.10.4" 2643 | source = "registry+https://github.com/rust-lang/crates.io-index" 2644 | checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" 2645 | dependencies = [ 2646 | "yoke", 2647 | "zerofrom", 2648 | "zerovec-derive", 2649 | ] 2650 | 2651 | [[package]] 2652 | name = "zerovec-derive" 2653 | version = "0.10.3" 2654 | source = "registry+https://github.com/rust-lang/crates.io-index" 2655 | checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" 2656 | dependencies = [ 2657 | "proc-macro2", 2658 | "quote", 2659 | "syn 2.0.95", 2660 | ] 2661 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "lazyv2ex" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [dependencies] 7 | ratatui = { version = "0.29.0", features = ["unstable"] } 8 | color-eyre = "0.6.3" 9 | crossterm = "0.28.1" 10 | reqwest = { version = "0.12.12", features = ["blocking"] } 11 | rss = { version = "2.0", features = ["atom"] } 12 | chrono = "0.4" 13 | quick-xml = "0.31" 14 | atom_syndication = "0.12.6" 15 | scraper = "0.18.1" 16 | open = "5.0" 17 | clap = { version = "4.5.3", features = ["derive"] } 18 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 mingeme 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 |
3 |
7 | v2ex 命令行客户端 8 |
9 | 10 | 11 |  12 | 13 | ## 安装 14 | 15 | ### Homebrew 16 | 17 | ```bash 18 | brew install mingeme/tap/lazyv2ex 19 | ``` 20 | 21 | ### 源码构建 22 | 23 | 从源码构建需要 [Rust](https://www.rust-lang.org/) 24 | 编译器, 和 [Cargo 包管理器](https://doc.rust-lang.org/cargo/)。如果你的系统包管理器无法使用它们,则使用 [rustup](https://rustup.rs/)。 25 | 26 | 从源码构建 lazyv2ex 二进制文件,然后安装到 `$HOME/.cargo/bin/` 运行: 27 | 28 | ```sh 29 | cargo install --locked --git https://github.com/mingeme/lazyv2ex 30 | ``` 31 | 32 | 除此之外,你也可以下载源码并构建 lazyv2ex 二进制文件: 33 | 34 | ```sh 35 | git clone https://github.com/mingeme/lazyv2ex 36 | cd lazyv2ex 37 | cargo install --path . 38 | ``` 39 | 40 | ## 使用 41 | 42 | 在终端调用 `lazyv2ex` 命令。 43 | 44 | ```sh 45 | $ lazyv2ex 46 | ``` 47 | 48 | 如果需要,你可以使用 `echo "alias lv='lazyv2ex'" >> ~/.zshrc`(或你正在使用的任何 rc 文件)为其添加别名。 49 | 50 | ## 贡献 51 | 52 | 有任何问题和想法,欢迎提 issue 和 pr。 53 | 54 | ## 替代品 55 | 56 | 感谢以下项目作者提供的创意,本项目基于他的思路开发,旨在拓展更多的功能,另一方面也是学习之作。 57 | 58 | [v2ex-tui](https://github.com/kaolengmian7/v2ex-tui) 59 | -------------------------------------------------------------------------------- /assets/showcase.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mingeme/lazyv2ex/89b022a927a0bd097ddd314ed090f2893fb9b19f/assets/showcase.gif -------------------------------------------------------------------------------- /src/action.rs: -------------------------------------------------------------------------------- 1 | #[derive(PartialEq, Debug)] 2 | pub enum Action { 3 | PreviousRow, 4 | NextRow, 5 | Top, 6 | Bottom, 7 | Enter, 8 | Reload, 9 | FetchTopics, 10 | FetchTopicDetail(String), 11 | GoHome, 12 | LineUp(u16), 13 | LineDown(u16), 14 | OpenBrowser(String), 15 | Quit, 16 | } 17 | -------------------------------------------------------------------------------- /src/api.rs: -------------------------------------------------------------------------------- 1 | use atom_syndication::Feed; 2 | use chrono::Utc; 3 | use color_eyre::Result; 4 | use scraper::{Html, Selector}; 5 | 6 | use crate::model::{Reply, Topic, TopicDetail}; 7 | use crate::time::time_formatting::format_relative_time; 8 | 9 | const V2EX_RSS_URL: &str = "https://www.v2ex.com/feed/tab/all.xml"; 10 | 11 | pub struct Crawler { 12 | client: reqwest::blocking::Client, 13 | } 14 | 15 | impl Crawler { 16 | pub fn new() -> Self { 17 | Self { 18 | client: reqwest::blocking::Client::builder() 19 | .user_agent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36") 20 | .build() 21 | .unwrap(), 22 | } 23 | } 24 | 25 | pub fn fetch_topics(&self) -> Result