├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── clean.sh ├── dev.sh ├── frontend ├── Cargo.toml ├── Trunk.toml ├── index.html └── src │ └── main.rs ├── prod.sh └── server ├── Cargo.toml └── src └── main.rs /.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | target-trunk/ 3 | /dist/ 4 | /.log/ 5 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 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 = "alloc-no-stdlib" 22 | version = "2.0.4" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" 25 | 26 | [[package]] 27 | name = "alloc-stdlib" 28 | version = "0.2.2" 29 | source = "registry+https://github.com/rust-lang/crates.io-index" 30 | checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" 31 | dependencies = [ 32 | "alloc-no-stdlib", 33 | ] 34 | 35 | [[package]] 36 | name = "anstream" 37 | version = "0.5.0" 38 | source = "registry+https://github.com/rust-lang/crates.io-index" 39 | checksum = "b1f58811cfac344940f1a400b6e6231ce35171f614f26439e80f8c1465c5cc0c" 40 | dependencies = [ 41 | "anstyle", 42 | "anstyle-parse", 43 | "anstyle-query", 44 | "anstyle-wincon", 45 | "colorchoice", 46 | "utf8parse", 47 | ] 48 | 49 | [[package]] 50 | name = "anstyle" 51 | version = "1.0.2" 52 | source = "registry+https://github.com/rust-lang/crates.io-index" 53 | checksum = "15c4c2c83f81532e5845a733998b6971faca23490340a418e9b72a3ec9de12ea" 54 | 55 | [[package]] 56 | name = "anstyle-parse" 57 | version = "0.2.1" 58 | source = "registry+https://github.com/rust-lang/crates.io-index" 59 | checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" 60 | dependencies = [ 61 | "utf8parse", 62 | ] 63 | 64 | [[package]] 65 | name = "anstyle-query" 66 | version = "1.0.0" 67 | source = "registry+https://github.com/rust-lang/crates.io-index" 68 | checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" 69 | dependencies = [ 70 | "windows-sys", 71 | ] 72 | 73 | [[package]] 74 | name = "anstyle-wincon" 75 | version = "2.1.0" 76 | source = "registry+https://github.com/rust-lang/crates.io-index" 77 | checksum = "58f54d10c6dfa51283a066ceab3ec1ab78d13fae00aa49243a45e4571fb79dfd" 78 | dependencies = [ 79 | "anstyle", 80 | "windows-sys", 81 | ] 82 | 83 | [[package]] 84 | name = "anymap2" 85 | version = "0.13.0" 86 | source = "registry+https://github.com/rust-lang/crates.io-index" 87 | checksum = "d301b3b94cb4b2f23d7917810addbbaff90738e0ca2be692bd027e70d7e0330c" 88 | 89 | [[package]] 90 | name = "async-compression" 91 | version = "0.4.2" 92 | source = "registry+https://github.com/rust-lang/crates.io-index" 93 | checksum = "d495b6dc0184693324491a5ac05f559acc97bf937ab31d7a1c33dd0016be6d2b" 94 | dependencies = [ 95 | "brotli", 96 | "flate2", 97 | "futures-core", 98 | "memchr", 99 | "pin-project-lite", 100 | "tokio", 101 | "zstd", 102 | "zstd-safe", 103 | ] 104 | 105 | [[package]] 106 | name = "async-trait" 107 | version = "0.1.73" 108 | source = "registry+https://github.com/rust-lang/crates.io-index" 109 | checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" 110 | dependencies = [ 111 | "proc-macro2", 112 | "quote", 113 | "syn 2.0.30", 114 | ] 115 | 116 | [[package]] 117 | name = "autocfg" 118 | version = "1.1.0" 119 | source = "registry+https://github.com/rust-lang/crates.io-index" 120 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 121 | 122 | [[package]] 123 | name = "axum" 124 | version = "0.6.20" 125 | source = "registry+https://github.com/rust-lang/crates.io-index" 126 | checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" 127 | dependencies = [ 128 | "async-trait", 129 | "axum-core", 130 | "bitflags 1.3.2", 131 | "bytes", 132 | "futures-util", 133 | "http", 134 | "http-body", 135 | "hyper", 136 | "itoa", 137 | "matchit", 138 | "memchr", 139 | "mime", 140 | "percent-encoding", 141 | "pin-project-lite", 142 | "rustversion", 143 | "serde", 144 | "serde_json", 145 | "serde_path_to_error", 146 | "serde_urlencoded", 147 | "sync_wrapper", 148 | "tokio", 149 | "tower", 150 | "tower-layer", 151 | "tower-service", 152 | ] 153 | 154 | [[package]] 155 | name = "axum-core" 156 | version = "0.3.4" 157 | source = "registry+https://github.com/rust-lang/crates.io-index" 158 | checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" 159 | dependencies = [ 160 | "async-trait", 161 | "bytes", 162 | "futures-util", 163 | "http", 164 | "http-body", 165 | "mime", 166 | "rustversion", 167 | "tower-layer", 168 | "tower-service", 169 | ] 170 | 171 | [[package]] 172 | name = "backtrace" 173 | version = "0.3.69" 174 | source = "registry+https://github.com/rust-lang/crates.io-index" 175 | checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" 176 | dependencies = [ 177 | "addr2line", 178 | "cc", 179 | "cfg-if", 180 | "libc", 181 | "miniz_oxide", 182 | "object", 183 | "rustc-demangle", 184 | ] 185 | 186 | [[package]] 187 | name = "base64" 188 | version = "0.21.3" 189 | source = "registry+https://github.com/rust-lang/crates.io-index" 190 | checksum = "414dcefbc63d77c526a76b3afcf6fbb9b5e2791c19c3aa2297733208750c6e53" 191 | 192 | [[package]] 193 | name = "bincode" 194 | version = "1.3.3" 195 | source = "registry+https://github.com/rust-lang/crates.io-index" 196 | checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" 197 | dependencies = [ 198 | "serde", 199 | ] 200 | 201 | [[package]] 202 | name = "bitflags" 203 | version = "1.3.2" 204 | source = "registry+https://github.com/rust-lang/crates.io-index" 205 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 206 | 207 | [[package]] 208 | name = "bitflags" 209 | version = "2.4.0" 210 | source = "registry+https://github.com/rust-lang/crates.io-index" 211 | checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" 212 | 213 | [[package]] 214 | name = "boolinator" 215 | version = "2.4.0" 216 | source = "registry+https://github.com/rust-lang/crates.io-index" 217 | checksum = "cfa8873f51c92e232f9bac4065cddef41b714152812bfc5f7672ba16d6ef8cd9" 218 | 219 | [[package]] 220 | name = "brotli" 221 | version = "3.3.4" 222 | source = "registry+https://github.com/rust-lang/crates.io-index" 223 | checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68" 224 | dependencies = [ 225 | "alloc-no-stdlib", 226 | "alloc-stdlib", 227 | "brotli-decompressor", 228 | ] 229 | 230 | [[package]] 231 | name = "brotli-decompressor" 232 | version = "2.3.4" 233 | source = "registry+https://github.com/rust-lang/crates.io-index" 234 | checksum = "4b6561fd3f895a11e8f72af2cb7d22e08366bebc2b6b57f7744c4bda27034744" 235 | dependencies = [ 236 | "alloc-no-stdlib", 237 | "alloc-stdlib", 238 | ] 239 | 240 | [[package]] 241 | name = "bumpalo" 242 | version = "3.13.0" 243 | source = "registry+https://github.com/rust-lang/crates.io-index" 244 | checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" 245 | 246 | [[package]] 247 | name = "bytes" 248 | version = "1.4.0" 249 | source = "registry+https://github.com/rust-lang/crates.io-index" 250 | checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" 251 | 252 | [[package]] 253 | name = "cc" 254 | version = "1.0.83" 255 | source = "registry+https://github.com/rust-lang/crates.io-index" 256 | checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" 257 | dependencies = [ 258 | "jobserver", 259 | "libc", 260 | ] 261 | 262 | [[package]] 263 | name = "cfg-if" 264 | version = "1.0.0" 265 | source = "registry+https://github.com/rust-lang/crates.io-index" 266 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 267 | 268 | [[package]] 269 | name = "clap" 270 | version = "4.4.2" 271 | source = "registry+https://github.com/rust-lang/crates.io-index" 272 | checksum = "6a13b88d2c62ff462f88e4a121f17a82c1af05693a2f192b5c38d14de73c19f6" 273 | dependencies = [ 274 | "clap_builder", 275 | "clap_derive", 276 | ] 277 | 278 | [[package]] 279 | name = "clap_builder" 280 | version = "4.4.2" 281 | source = "registry+https://github.com/rust-lang/crates.io-index" 282 | checksum = "2bb9faaa7c2ef94b2743a21f5a29e6f0010dff4caa69ac8e9d6cf8b6fa74da08" 283 | dependencies = [ 284 | "anstream", 285 | "anstyle", 286 | "clap_lex", 287 | "strsim", 288 | ] 289 | 290 | [[package]] 291 | name = "clap_derive" 292 | version = "4.4.2" 293 | source = "registry+https://github.com/rust-lang/crates.io-index" 294 | checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873" 295 | dependencies = [ 296 | "heck", 297 | "proc-macro2", 298 | "quote", 299 | "syn 2.0.30", 300 | ] 301 | 302 | [[package]] 303 | name = "clap_lex" 304 | version = "0.5.1" 305 | source = "registry+https://github.com/rust-lang/crates.io-index" 306 | checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961" 307 | 308 | [[package]] 309 | name = "colorchoice" 310 | version = "1.0.0" 311 | source = "registry+https://github.com/rust-lang/crates.io-index" 312 | checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" 313 | 314 | [[package]] 315 | name = "console_error_panic_hook" 316 | version = "0.1.7" 317 | source = "registry+https://github.com/rust-lang/crates.io-index" 318 | checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" 319 | dependencies = [ 320 | "cfg-if", 321 | "wasm-bindgen", 322 | ] 323 | 324 | [[package]] 325 | name = "crc32fast" 326 | version = "1.3.2" 327 | source = "registry+https://github.com/rust-lang/crates.io-index" 328 | checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" 329 | dependencies = [ 330 | "cfg-if", 331 | ] 332 | 333 | [[package]] 334 | name = "flate2" 335 | version = "1.0.27" 336 | source = "registry+https://github.com/rust-lang/crates.io-index" 337 | checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" 338 | dependencies = [ 339 | "crc32fast", 340 | "miniz_oxide", 341 | ] 342 | 343 | [[package]] 344 | name = "fnv" 345 | version = "1.0.7" 346 | source = "registry+https://github.com/rust-lang/crates.io-index" 347 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 348 | 349 | [[package]] 350 | name = "form_urlencoded" 351 | version = "1.2.0" 352 | source = "registry+https://github.com/rust-lang/crates.io-index" 353 | checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" 354 | dependencies = [ 355 | "percent-encoding", 356 | ] 357 | 358 | [[package]] 359 | name = "frontend" 360 | version = "0.1.0" 361 | dependencies = [ 362 | "console_error_panic_hook", 363 | "gloo-net 0.4.0", 364 | "log", 365 | "wasm-bindgen-futures", 366 | "wasm-logger", 367 | "yew", 368 | "yew-router", 369 | ] 370 | 371 | [[package]] 372 | name = "futures" 373 | version = "0.3.28" 374 | source = "registry+https://github.com/rust-lang/crates.io-index" 375 | checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" 376 | dependencies = [ 377 | "futures-channel", 378 | "futures-core", 379 | "futures-io", 380 | "futures-sink", 381 | "futures-task", 382 | "futures-util", 383 | ] 384 | 385 | [[package]] 386 | name = "futures-channel" 387 | version = "0.3.28" 388 | source = "registry+https://github.com/rust-lang/crates.io-index" 389 | checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" 390 | dependencies = [ 391 | "futures-core", 392 | "futures-sink", 393 | ] 394 | 395 | [[package]] 396 | name = "futures-core" 397 | version = "0.3.28" 398 | source = "registry+https://github.com/rust-lang/crates.io-index" 399 | checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" 400 | 401 | [[package]] 402 | name = "futures-io" 403 | version = "0.3.28" 404 | source = "registry+https://github.com/rust-lang/crates.io-index" 405 | checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" 406 | 407 | [[package]] 408 | name = "futures-macro" 409 | version = "0.3.28" 410 | source = "registry+https://github.com/rust-lang/crates.io-index" 411 | checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" 412 | dependencies = [ 413 | "proc-macro2", 414 | "quote", 415 | "syn 2.0.30", 416 | ] 417 | 418 | [[package]] 419 | name = "futures-sink" 420 | version = "0.3.28" 421 | source = "registry+https://github.com/rust-lang/crates.io-index" 422 | checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" 423 | 424 | [[package]] 425 | name = "futures-task" 426 | version = "0.3.28" 427 | source = "registry+https://github.com/rust-lang/crates.io-index" 428 | checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" 429 | 430 | [[package]] 431 | name = "futures-util" 432 | version = "0.3.28" 433 | source = "registry+https://github.com/rust-lang/crates.io-index" 434 | checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" 435 | dependencies = [ 436 | "futures-channel", 437 | "futures-core", 438 | "futures-io", 439 | "futures-macro", 440 | "futures-sink", 441 | "futures-task", 442 | "memchr", 443 | "pin-project-lite", 444 | "pin-utils", 445 | "slab", 446 | ] 447 | 448 | [[package]] 449 | name = "getrandom" 450 | version = "0.2.10" 451 | source = "registry+https://github.com/rust-lang/crates.io-index" 452 | checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" 453 | dependencies = [ 454 | "cfg-if", 455 | "libc", 456 | "wasi", 457 | ] 458 | 459 | [[package]] 460 | name = "gimli" 461 | version = "0.28.0" 462 | source = "registry+https://github.com/rust-lang/crates.io-index" 463 | checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" 464 | 465 | [[package]] 466 | name = "gloo" 467 | version = "0.8.1" 468 | source = "registry+https://github.com/rust-lang/crates.io-index" 469 | checksum = "28999cda5ef6916ffd33fb4a7b87e1de633c47c0dc6d97905fee1cdaa142b94d" 470 | dependencies = [ 471 | "gloo-console", 472 | "gloo-dialogs", 473 | "gloo-events", 474 | "gloo-file", 475 | "gloo-history", 476 | "gloo-net 0.3.1", 477 | "gloo-render", 478 | "gloo-storage", 479 | "gloo-timers", 480 | "gloo-utils 0.1.7", 481 | "gloo-worker", 482 | ] 483 | 484 | [[package]] 485 | name = "gloo-console" 486 | version = "0.2.3" 487 | source = "registry+https://github.com/rust-lang/crates.io-index" 488 | checksum = "82b7ce3c05debe147233596904981848862b068862e9ec3e34be446077190d3f" 489 | dependencies = [ 490 | "gloo-utils 0.1.7", 491 | "js-sys", 492 | "serde", 493 | "wasm-bindgen", 494 | "web-sys", 495 | ] 496 | 497 | [[package]] 498 | name = "gloo-dialogs" 499 | version = "0.1.1" 500 | source = "registry+https://github.com/rust-lang/crates.io-index" 501 | checksum = "67062364ac72d27f08445a46cab428188e2e224ec9e37efdba48ae8c289002e6" 502 | dependencies = [ 503 | "wasm-bindgen", 504 | "web-sys", 505 | ] 506 | 507 | [[package]] 508 | name = "gloo-events" 509 | version = "0.1.2" 510 | source = "registry+https://github.com/rust-lang/crates.io-index" 511 | checksum = "68b107f8abed8105e4182de63845afcc7b69c098b7852a813ea7462a320992fc" 512 | dependencies = [ 513 | "wasm-bindgen", 514 | "web-sys", 515 | ] 516 | 517 | [[package]] 518 | name = "gloo-file" 519 | version = "0.2.3" 520 | source = "registry+https://github.com/rust-lang/crates.io-index" 521 | checksum = "a8d5564e570a38b43d78bdc063374a0c3098c4f0d64005b12f9bbe87e869b6d7" 522 | dependencies = [ 523 | "futures-channel", 524 | "gloo-events", 525 | "js-sys", 526 | "wasm-bindgen", 527 | "web-sys", 528 | ] 529 | 530 | [[package]] 531 | name = "gloo-history" 532 | version = "0.1.5" 533 | source = "registry+https://github.com/rust-lang/crates.io-index" 534 | checksum = "85725d90bf0ed47063b3930ef28e863658a7905989e9929a8708aab74a1d5e7f" 535 | dependencies = [ 536 | "gloo-events", 537 | "gloo-utils 0.1.7", 538 | "serde", 539 | "serde-wasm-bindgen", 540 | "serde_urlencoded", 541 | "thiserror", 542 | "wasm-bindgen", 543 | "web-sys", 544 | ] 545 | 546 | [[package]] 547 | name = "gloo-net" 548 | version = "0.3.1" 549 | source = "registry+https://github.com/rust-lang/crates.io-index" 550 | checksum = "a66b4e3c7d9ed8d315fd6b97c8b1f74a7c6ecbbc2320e65ae7ed38b7068cc620" 551 | dependencies = [ 552 | "futures-channel", 553 | "futures-core", 554 | "futures-sink", 555 | "gloo-utils 0.1.7", 556 | "http", 557 | "js-sys", 558 | "pin-project", 559 | "serde", 560 | "serde_json", 561 | "thiserror", 562 | "wasm-bindgen", 563 | "wasm-bindgen-futures", 564 | "web-sys", 565 | ] 566 | 567 | [[package]] 568 | name = "gloo-net" 569 | version = "0.4.0" 570 | source = "registry+https://github.com/rust-lang/crates.io-index" 571 | checksum = "8ac9e8288ae2c632fa9f8657ac70bfe38a1530f345282d7ba66a1f70b72b7dc4" 572 | dependencies = [ 573 | "futures-channel", 574 | "futures-core", 575 | "futures-sink", 576 | "gloo-utils 0.2.0", 577 | "http", 578 | "js-sys", 579 | "pin-project", 580 | "serde", 581 | "serde_json", 582 | "thiserror", 583 | "wasm-bindgen", 584 | "wasm-bindgen-futures", 585 | "web-sys", 586 | ] 587 | 588 | [[package]] 589 | name = "gloo-render" 590 | version = "0.1.1" 591 | source = "registry+https://github.com/rust-lang/crates.io-index" 592 | checksum = "2fd9306aef67cfd4449823aadcd14e3958e0800aa2183955a309112a84ec7764" 593 | dependencies = [ 594 | "wasm-bindgen", 595 | "web-sys", 596 | ] 597 | 598 | [[package]] 599 | name = "gloo-storage" 600 | version = "0.2.2" 601 | source = "registry+https://github.com/rust-lang/crates.io-index" 602 | checksum = "5d6ab60bf5dbfd6f0ed1f7843da31b41010515c745735c970e821945ca91e480" 603 | dependencies = [ 604 | "gloo-utils 0.1.7", 605 | "js-sys", 606 | "serde", 607 | "serde_json", 608 | "thiserror", 609 | "wasm-bindgen", 610 | "web-sys", 611 | ] 612 | 613 | [[package]] 614 | name = "gloo-timers" 615 | version = "0.2.6" 616 | source = "registry+https://github.com/rust-lang/crates.io-index" 617 | checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" 618 | dependencies = [ 619 | "futures-channel", 620 | "futures-core", 621 | "js-sys", 622 | "wasm-bindgen", 623 | ] 624 | 625 | [[package]] 626 | name = "gloo-utils" 627 | version = "0.1.7" 628 | source = "registry+https://github.com/rust-lang/crates.io-index" 629 | checksum = "037fcb07216cb3a30f7292bd0176b050b7b9a052ba830ef7d5d65f6dc64ba58e" 630 | dependencies = [ 631 | "js-sys", 632 | "serde", 633 | "serde_json", 634 | "wasm-bindgen", 635 | "web-sys", 636 | ] 637 | 638 | [[package]] 639 | name = "gloo-utils" 640 | version = "0.2.0" 641 | source = "registry+https://github.com/rust-lang/crates.io-index" 642 | checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa" 643 | dependencies = [ 644 | "js-sys", 645 | "serde", 646 | "serde_json", 647 | "wasm-bindgen", 648 | "web-sys", 649 | ] 650 | 651 | [[package]] 652 | name = "gloo-worker" 653 | version = "0.2.1" 654 | source = "registry+https://github.com/rust-lang/crates.io-index" 655 | checksum = "13471584da78061a28306d1359dd0178d8d6fc1c7c80e5e35d27260346e0516a" 656 | dependencies = [ 657 | "anymap2", 658 | "bincode", 659 | "gloo-console", 660 | "gloo-utils 0.1.7", 661 | "js-sys", 662 | "serde", 663 | "wasm-bindgen", 664 | "wasm-bindgen-futures", 665 | "web-sys", 666 | ] 667 | 668 | [[package]] 669 | name = "hashbrown" 670 | version = "0.12.3" 671 | source = "registry+https://github.com/rust-lang/crates.io-index" 672 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 673 | 674 | [[package]] 675 | name = "heck" 676 | version = "0.4.1" 677 | source = "registry+https://github.com/rust-lang/crates.io-index" 678 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 679 | 680 | [[package]] 681 | name = "hermit-abi" 682 | version = "0.3.2" 683 | source = "registry+https://github.com/rust-lang/crates.io-index" 684 | checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" 685 | 686 | [[package]] 687 | name = "http" 688 | version = "0.2.9" 689 | source = "registry+https://github.com/rust-lang/crates.io-index" 690 | checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" 691 | dependencies = [ 692 | "bytes", 693 | "fnv", 694 | "itoa", 695 | ] 696 | 697 | [[package]] 698 | name = "http-body" 699 | version = "0.4.5" 700 | source = "registry+https://github.com/rust-lang/crates.io-index" 701 | checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" 702 | dependencies = [ 703 | "bytes", 704 | "http", 705 | "pin-project-lite", 706 | ] 707 | 708 | [[package]] 709 | name = "http-range-header" 710 | version = "0.3.1" 711 | source = "registry+https://github.com/rust-lang/crates.io-index" 712 | checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" 713 | 714 | [[package]] 715 | name = "httparse" 716 | version = "1.8.0" 717 | source = "registry+https://github.com/rust-lang/crates.io-index" 718 | checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" 719 | 720 | [[package]] 721 | name = "httpdate" 722 | version = "1.0.3" 723 | source = "registry+https://github.com/rust-lang/crates.io-index" 724 | checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 725 | 726 | [[package]] 727 | name = "hyper" 728 | version = "0.14.27" 729 | source = "registry+https://github.com/rust-lang/crates.io-index" 730 | checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" 731 | dependencies = [ 732 | "bytes", 733 | "futures-channel", 734 | "futures-core", 735 | "futures-util", 736 | "http", 737 | "http-body", 738 | "httparse", 739 | "httpdate", 740 | "itoa", 741 | "pin-project-lite", 742 | "socket2 0.4.9", 743 | "tokio", 744 | "tower-service", 745 | "tracing", 746 | "want", 747 | ] 748 | 749 | [[package]] 750 | name = "implicit-clone" 751 | version = "0.3.6" 752 | source = "registry+https://github.com/rust-lang/crates.io-index" 753 | checksum = "7c6ecbd987bb94f1f3c76c6787879756cf4b6f73bfff48d79308e8c56b46f65f" 754 | dependencies = [ 755 | "indexmap", 756 | ] 757 | 758 | [[package]] 759 | name = "indexmap" 760 | version = "1.9.3" 761 | source = "registry+https://github.com/rust-lang/crates.io-index" 762 | checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" 763 | dependencies = [ 764 | "autocfg", 765 | "hashbrown", 766 | ] 767 | 768 | [[package]] 769 | name = "iri-string" 770 | version = "0.7.0" 771 | source = "registry+https://github.com/rust-lang/crates.io-index" 772 | checksum = "21859b667d66a4c1dacd9df0863b3efb65785474255face87f5bca39dd8407c0" 773 | dependencies = [ 774 | "memchr", 775 | "serde", 776 | ] 777 | 778 | [[package]] 779 | name = "itoa" 780 | version = "1.0.9" 781 | source = "registry+https://github.com/rust-lang/crates.io-index" 782 | checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" 783 | 784 | [[package]] 785 | name = "jobserver" 786 | version = "0.1.26" 787 | source = "registry+https://github.com/rust-lang/crates.io-index" 788 | checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" 789 | dependencies = [ 790 | "libc", 791 | ] 792 | 793 | [[package]] 794 | name = "js-sys" 795 | version = "0.3.64" 796 | source = "registry+https://github.com/rust-lang/crates.io-index" 797 | checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" 798 | dependencies = [ 799 | "wasm-bindgen", 800 | ] 801 | 802 | [[package]] 803 | name = "lazy_static" 804 | version = "1.4.0" 805 | source = "registry+https://github.com/rust-lang/crates.io-index" 806 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 807 | 808 | [[package]] 809 | name = "libc" 810 | version = "0.2.147" 811 | source = "registry+https://github.com/rust-lang/crates.io-index" 812 | checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" 813 | 814 | [[package]] 815 | name = "lock_api" 816 | version = "0.4.10" 817 | source = "registry+https://github.com/rust-lang/crates.io-index" 818 | checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" 819 | dependencies = [ 820 | "autocfg", 821 | "scopeguard", 822 | ] 823 | 824 | [[package]] 825 | name = "log" 826 | version = "0.4.20" 827 | source = "registry+https://github.com/rust-lang/crates.io-index" 828 | checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" 829 | 830 | [[package]] 831 | name = "matchit" 832 | version = "0.7.2" 833 | source = "registry+https://github.com/rust-lang/crates.io-index" 834 | checksum = "ed1202b2a6f884ae56f04cff409ab315c5ce26b5e58d7412e484f01fd52f52ef" 835 | 836 | [[package]] 837 | name = "memchr" 838 | version = "2.6.3" 839 | source = "registry+https://github.com/rust-lang/crates.io-index" 840 | checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" 841 | 842 | [[package]] 843 | name = "mime" 844 | version = "0.3.17" 845 | source = "registry+https://github.com/rust-lang/crates.io-index" 846 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 847 | 848 | [[package]] 849 | name = "mime_guess" 850 | version = "2.0.4" 851 | source = "registry+https://github.com/rust-lang/crates.io-index" 852 | checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" 853 | dependencies = [ 854 | "mime", 855 | "unicase", 856 | ] 857 | 858 | [[package]] 859 | name = "miniz_oxide" 860 | version = "0.7.1" 861 | source = "registry+https://github.com/rust-lang/crates.io-index" 862 | checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" 863 | dependencies = [ 864 | "adler", 865 | ] 866 | 867 | [[package]] 868 | name = "mio" 869 | version = "0.8.8" 870 | source = "registry+https://github.com/rust-lang/crates.io-index" 871 | checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" 872 | dependencies = [ 873 | "libc", 874 | "wasi", 875 | "windows-sys", 876 | ] 877 | 878 | [[package]] 879 | name = "nu-ansi-term" 880 | version = "0.46.0" 881 | source = "registry+https://github.com/rust-lang/crates.io-index" 882 | checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" 883 | dependencies = [ 884 | "overload", 885 | "winapi", 886 | ] 887 | 888 | [[package]] 889 | name = "num_cpus" 890 | version = "1.16.0" 891 | source = "registry+https://github.com/rust-lang/crates.io-index" 892 | checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" 893 | dependencies = [ 894 | "hermit-abi", 895 | "libc", 896 | ] 897 | 898 | [[package]] 899 | name = "object" 900 | version = "0.32.1" 901 | source = "registry+https://github.com/rust-lang/crates.io-index" 902 | checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" 903 | dependencies = [ 904 | "memchr", 905 | ] 906 | 907 | [[package]] 908 | name = "once_cell" 909 | version = "1.18.0" 910 | source = "registry+https://github.com/rust-lang/crates.io-index" 911 | checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" 912 | 913 | [[package]] 914 | name = "overload" 915 | version = "0.1.1" 916 | source = "registry+https://github.com/rust-lang/crates.io-index" 917 | checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" 918 | 919 | [[package]] 920 | name = "parking_lot" 921 | version = "0.12.1" 922 | source = "registry+https://github.com/rust-lang/crates.io-index" 923 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 924 | dependencies = [ 925 | "lock_api", 926 | "parking_lot_core", 927 | ] 928 | 929 | [[package]] 930 | name = "parking_lot_core" 931 | version = "0.9.8" 932 | source = "registry+https://github.com/rust-lang/crates.io-index" 933 | checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" 934 | dependencies = [ 935 | "cfg-if", 936 | "libc", 937 | "redox_syscall", 938 | "smallvec", 939 | "windows-targets", 940 | ] 941 | 942 | [[package]] 943 | name = "percent-encoding" 944 | version = "2.3.0" 945 | source = "registry+https://github.com/rust-lang/crates.io-index" 946 | checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" 947 | 948 | [[package]] 949 | name = "pin-project" 950 | version = "1.1.3" 951 | source = "registry+https://github.com/rust-lang/crates.io-index" 952 | checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" 953 | dependencies = [ 954 | "pin-project-internal", 955 | ] 956 | 957 | [[package]] 958 | name = "pin-project-internal" 959 | version = "1.1.3" 960 | source = "registry+https://github.com/rust-lang/crates.io-index" 961 | checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" 962 | dependencies = [ 963 | "proc-macro2", 964 | "quote", 965 | "syn 2.0.30", 966 | ] 967 | 968 | [[package]] 969 | name = "pin-project-lite" 970 | version = "0.2.13" 971 | source = "registry+https://github.com/rust-lang/crates.io-index" 972 | checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" 973 | 974 | [[package]] 975 | name = "pin-utils" 976 | version = "0.1.0" 977 | source = "registry+https://github.com/rust-lang/crates.io-index" 978 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 979 | 980 | [[package]] 981 | name = "pinned" 982 | version = "0.1.0" 983 | source = "registry+https://github.com/rust-lang/crates.io-index" 984 | checksum = "a829027bd95e54cfe13e3e258a1ae7b645960553fb82b75ff852c29688ee595b" 985 | dependencies = [ 986 | "futures", 987 | "rustversion", 988 | "thiserror", 989 | ] 990 | 991 | [[package]] 992 | name = "pkg-config" 993 | version = "0.3.27" 994 | source = "registry+https://github.com/rust-lang/crates.io-index" 995 | checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" 996 | 997 | [[package]] 998 | name = "prettyplease" 999 | version = "0.1.25" 1000 | source = "registry+https://github.com/rust-lang/crates.io-index" 1001 | checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" 1002 | dependencies = [ 1003 | "proc-macro2", 1004 | "syn 1.0.109", 1005 | ] 1006 | 1007 | [[package]] 1008 | name = "proc-macro-error" 1009 | version = "1.0.4" 1010 | source = "registry+https://github.com/rust-lang/crates.io-index" 1011 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 1012 | dependencies = [ 1013 | "proc-macro-error-attr", 1014 | "proc-macro2", 1015 | "quote", 1016 | "syn 1.0.109", 1017 | "version_check", 1018 | ] 1019 | 1020 | [[package]] 1021 | name = "proc-macro-error-attr" 1022 | version = "1.0.4" 1023 | source = "registry+https://github.com/rust-lang/crates.io-index" 1024 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 1025 | dependencies = [ 1026 | "proc-macro2", 1027 | "quote", 1028 | "version_check", 1029 | ] 1030 | 1031 | [[package]] 1032 | name = "proc-macro2" 1033 | version = "1.0.66" 1034 | source = "registry+https://github.com/rust-lang/crates.io-index" 1035 | checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" 1036 | dependencies = [ 1037 | "unicode-ident", 1038 | ] 1039 | 1040 | [[package]] 1041 | name = "prokio" 1042 | version = "0.1.0" 1043 | source = "registry+https://github.com/rust-lang/crates.io-index" 1044 | checksum = "03b55e106e5791fa5a13abd13c85d6127312e8e09098059ca2bc9b03ca4cf488" 1045 | dependencies = [ 1046 | "futures", 1047 | "gloo", 1048 | "num_cpus", 1049 | "once_cell", 1050 | "pin-project", 1051 | "pinned", 1052 | "tokio", 1053 | "tokio-stream", 1054 | "wasm-bindgen-futures", 1055 | ] 1056 | 1057 | [[package]] 1058 | name = "quote" 1059 | version = "1.0.33" 1060 | source = "registry+https://github.com/rust-lang/crates.io-index" 1061 | checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" 1062 | dependencies = [ 1063 | "proc-macro2", 1064 | ] 1065 | 1066 | [[package]] 1067 | name = "redox_syscall" 1068 | version = "0.3.5" 1069 | source = "registry+https://github.com/rust-lang/crates.io-index" 1070 | checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" 1071 | dependencies = [ 1072 | "bitflags 1.3.2", 1073 | ] 1074 | 1075 | [[package]] 1076 | name = "route-recognizer" 1077 | version = "0.3.1" 1078 | source = "registry+https://github.com/rust-lang/crates.io-index" 1079 | checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" 1080 | 1081 | [[package]] 1082 | name = "rustc-demangle" 1083 | version = "0.1.23" 1084 | source = "registry+https://github.com/rust-lang/crates.io-index" 1085 | checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" 1086 | 1087 | [[package]] 1088 | name = "rustversion" 1089 | version = "1.0.14" 1090 | source = "registry+https://github.com/rust-lang/crates.io-index" 1091 | checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" 1092 | 1093 | [[package]] 1094 | name = "ryu" 1095 | version = "1.0.15" 1096 | source = "registry+https://github.com/rust-lang/crates.io-index" 1097 | checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" 1098 | 1099 | [[package]] 1100 | name = "scopeguard" 1101 | version = "1.2.0" 1102 | source = "registry+https://github.com/rust-lang/crates.io-index" 1103 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1104 | 1105 | [[package]] 1106 | name = "serde" 1107 | version = "1.0.188" 1108 | source = "registry+https://github.com/rust-lang/crates.io-index" 1109 | checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" 1110 | dependencies = [ 1111 | "serde_derive", 1112 | ] 1113 | 1114 | [[package]] 1115 | name = "serde-wasm-bindgen" 1116 | version = "0.5.0" 1117 | source = "registry+https://github.com/rust-lang/crates.io-index" 1118 | checksum = "f3b143e2833c57ab9ad3ea280d21fd34e285a42837aeb0ee301f4f41890fa00e" 1119 | dependencies = [ 1120 | "js-sys", 1121 | "serde", 1122 | "wasm-bindgen", 1123 | ] 1124 | 1125 | [[package]] 1126 | name = "serde_derive" 1127 | version = "1.0.188" 1128 | source = "registry+https://github.com/rust-lang/crates.io-index" 1129 | checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" 1130 | dependencies = [ 1131 | "proc-macro2", 1132 | "quote", 1133 | "syn 2.0.30", 1134 | ] 1135 | 1136 | [[package]] 1137 | name = "serde_json" 1138 | version = "1.0.105" 1139 | source = "registry+https://github.com/rust-lang/crates.io-index" 1140 | checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360" 1141 | dependencies = [ 1142 | "itoa", 1143 | "ryu", 1144 | "serde", 1145 | ] 1146 | 1147 | [[package]] 1148 | name = "serde_path_to_error" 1149 | version = "0.1.14" 1150 | source = "registry+https://github.com/rust-lang/crates.io-index" 1151 | checksum = "4beec8bce849d58d06238cb50db2e1c417cfeafa4c63f692b15c82b7c80f8335" 1152 | dependencies = [ 1153 | "itoa", 1154 | "serde", 1155 | ] 1156 | 1157 | [[package]] 1158 | name = "serde_urlencoded" 1159 | version = "0.7.1" 1160 | source = "registry+https://github.com/rust-lang/crates.io-index" 1161 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 1162 | dependencies = [ 1163 | "form_urlencoded", 1164 | "itoa", 1165 | "ryu", 1166 | "serde", 1167 | ] 1168 | 1169 | [[package]] 1170 | name = "server" 1171 | version = "0.1.0" 1172 | dependencies = [ 1173 | "axum", 1174 | "clap", 1175 | "tokio", 1176 | "tower", 1177 | "tower-http", 1178 | "tracing", 1179 | "tracing-subscriber", 1180 | ] 1181 | 1182 | [[package]] 1183 | name = "sharded-slab" 1184 | version = "0.1.4" 1185 | source = "registry+https://github.com/rust-lang/crates.io-index" 1186 | checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" 1187 | dependencies = [ 1188 | "lazy_static", 1189 | ] 1190 | 1191 | [[package]] 1192 | name = "signal-hook-registry" 1193 | version = "1.4.1" 1194 | source = "registry+https://github.com/rust-lang/crates.io-index" 1195 | checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" 1196 | dependencies = [ 1197 | "libc", 1198 | ] 1199 | 1200 | [[package]] 1201 | name = "slab" 1202 | version = "0.4.9" 1203 | source = "registry+https://github.com/rust-lang/crates.io-index" 1204 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 1205 | dependencies = [ 1206 | "autocfg", 1207 | ] 1208 | 1209 | [[package]] 1210 | name = "smallvec" 1211 | version = "1.11.0" 1212 | source = "registry+https://github.com/rust-lang/crates.io-index" 1213 | checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" 1214 | 1215 | [[package]] 1216 | name = "socket2" 1217 | version = "0.4.9" 1218 | source = "registry+https://github.com/rust-lang/crates.io-index" 1219 | checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" 1220 | dependencies = [ 1221 | "libc", 1222 | "winapi", 1223 | ] 1224 | 1225 | [[package]] 1226 | name = "socket2" 1227 | version = "0.5.3" 1228 | source = "registry+https://github.com/rust-lang/crates.io-index" 1229 | checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877" 1230 | dependencies = [ 1231 | "libc", 1232 | "windows-sys", 1233 | ] 1234 | 1235 | [[package]] 1236 | name = "strsim" 1237 | version = "0.10.0" 1238 | source = "registry+https://github.com/rust-lang/crates.io-index" 1239 | checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" 1240 | 1241 | [[package]] 1242 | name = "syn" 1243 | version = "1.0.109" 1244 | source = "registry+https://github.com/rust-lang/crates.io-index" 1245 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 1246 | dependencies = [ 1247 | "proc-macro2", 1248 | "quote", 1249 | "unicode-ident", 1250 | ] 1251 | 1252 | [[package]] 1253 | name = "syn" 1254 | version = "2.0.30" 1255 | source = "registry+https://github.com/rust-lang/crates.io-index" 1256 | checksum = "0ddc1f908d32ec46858c2d3b3daa00cc35bf4b6841ce4355c7bb3eedf2283a68" 1257 | dependencies = [ 1258 | "proc-macro2", 1259 | "quote", 1260 | "unicode-ident", 1261 | ] 1262 | 1263 | [[package]] 1264 | name = "sync_wrapper" 1265 | version = "0.1.2" 1266 | source = "registry+https://github.com/rust-lang/crates.io-index" 1267 | checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" 1268 | 1269 | [[package]] 1270 | name = "thiserror" 1271 | version = "1.0.48" 1272 | source = "registry+https://github.com/rust-lang/crates.io-index" 1273 | checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7" 1274 | dependencies = [ 1275 | "thiserror-impl", 1276 | ] 1277 | 1278 | [[package]] 1279 | name = "thiserror-impl" 1280 | version = "1.0.48" 1281 | source = "registry+https://github.com/rust-lang/crates.io-index" 1282 | checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35" 1283 | dependencies = [ 1284 | "proc-macro2", 1285 | "quote", 1286 | "syn 2.0.30", 1287 | ] 1288 | 1289 | [[package]] 1290 | name = "thread_local" 1291 | version = "1.1.7" 1292 | source = "registry+https://github.com/rust-lang/crates.io-index" 1293 | checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" 1294 | dependencies = [ 1295 | "cfg-if", 1296 | "once_cell", 1297 | ] 1298 | 1299 | [[package]] 1300 | name = "tokio" 1301 | version = "1.32.0" 1302 | source = "registry+https://github.com/rust-lang/crates.io-index" 1303 | checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" 1304 | dependencies = [ 1305 | "backtrace", 1306 | "bytes", 1307 | "libc", 1308 | "mio", 1309 | "num_cpus", 1310 | "parking_lot", 1311 | "pin-project-lite", 1312 | "signal-hook-registry", 1313 | "socket2 0.5.3", 1314 | "tokio-macros", 1315 | "windows-sys", 1316 | ] 1317 | 1318 | [[package]] 1319 | name = "tokio-macros" 1320 | version = "2.1.0" 1321 | source = "registry+https://github.com/rust-lang/crates.io-index" 1322 | checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" 1323 | dependencies = [ 1324 | "proc-macro2", 1325 | "quote", 1326 | "syn 2.0.30", 1327 | ] 1328 | 1329 | [[package]] 1330 | name = "tokio-stream" 1331 | version = "0.1.14" 1332 | source = "registry+https://github.com/rust-lang/crates.io-index" 1333 | checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" 1334 | dependencies = [ 1335 | "futures-core", 1336 | "pin-project-lite", 1337 | "tokio", 1338 | ] 1339 | 1340 | [[package]] 1341 | name = "tokio-util" 1342 | version = "0.7.8" 1343 | source = "registry+https://github.com/rust-lang/crates.io-index" 1344 | checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" 1345 | dependencies = [ 1346 | "bytes", 1347 | "futures-core", 1348 | "futures-sink", 1349 | "pin-project-lite", 1350 | "tokio", 1351 | ] 1352 | 1353 | [[package]] 1354 | name = "tower" 1355 | version = "0.4.13" 1356 | source = "registry+https://github.com/rust-lang/crates.io-index" 1357 | checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" 1358 | dependencies = [ 1359 | "futures-core", 1360 | "futures-util", 1361 | "pin-project", 1362 | "pin-project-lite", 1363 | "tokio", 1364 | "tower-layer", 1365 | "tower-service", 1366 | "tracing", 1367 | ] 1368 | 1369 | [[package]] 1370 | name = "tower-http" 1371 | version = "0.4.4" 1372 | source = "registry+https://github.com/rust-lang/crates.io-index" 1373 | checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" 1374 | dependencies = [ 1375 | "async-compression", 1376 | "base64", 1377 | "bitflags 2.4.0", 1378 | "bytes", 1379 | "futures-core", 1380 | "futures-util", 1381 | "http", 1382 | "http-body", 1383 | "http-range-header", 1384 | "httpdate", 1385 | "iri-string", 1386 | "mime", 1387 | "mime_guess", 1388 | "percent-encoding", 1389 | "pin-project-lite", 1390 | "tokio", 1391 | "tokio-util", 1392 | "tower", 1393 | "tower-layer", 1394 | "tower-service", 1395 | "tracing", 1396 | "uuid", 1397 | ] 1398 | 1399 | [[package]] 1400 | name = "tower-layer" 1401 | version = "0.3.2" 1402 | source = "registry+https://github.com/rust-lang/crates.io-index" 1403 | checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" 1404 | 1405 | [[package]] 1406 | name = "tower-service" 1407 | version = "0.3.2" 1408 | source = "registry+https://github.com/rust-lang/crates.io-index" 1409 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 1410 | 1411 | [[package]] 1412 | name = "tracing" 1413 | version = "0.1.37" 1414 | source = "registry+https://github.com/rust-lang/crates.io-index" 1415 | checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" 1416 | dependencies = [ 1417 | "cfg-if", 1418 | "log", 1419 | "pin-project-lite", 1420 | "tracing-attributes", 1421 | "tracing-core", 1422 | ] 1423 | 1424 | [[package]] 1425 | name = "tracing-attributes" 1426 | version = "0.1.26" 1427 | source = "registry+https://github.com/rust-lang/crates.io-index" 1428 | checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" 1429 | dependencies = [ 1430 | "proc-macro2", 1431 | "quote", 1432 | "syn 2.0.30", 1433 | ] 1434 | 1435 | [[package]] 1436 | name = "tracing-core" 1437 | version = "0.1.31" 1438 | source = "registry+https://github.com/rust-lang/crates.io-index" 1439 | checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" 1440 | dependencies = [ 1441 | "once_cell", 1442 | "valuable", 1443 | ] 1444 | 1445 | [[package]] 1446 | name = "tracing-log" 1447 | version = "0.1.3" 1448 | source = "registry+https://github.com/rust-lang/crates.io-index" 1449 | checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" 1450 | dependencies = [ 1451 | "lazy_static", 1452 | "log", 1453 | "tracing-core", 1454 | ] 1455 | 1456 | [[package]] 1457 | name = "tracing-subscriber" 1458 | version = "0.3.17" 1459 | source = "registry+https://github.com/rust-lang/crates.io-index" 1460 | checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" 1461 | dependencies = [ 1462 | "nu-ansi-term", 1463 | "sharded-slab", 1464 | "smallvec", 1465 | "thread_local", 1466 | "tracing-core", 1467 | "tracing-log", 1468 | ] 1469 | 1470 | [[package]] 1471 | name = "try-lock" 1472 | version = "0.2.4" 1473 | source = "registry+https://github.com/rust-lang/crates.io-index" 1474 | checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" 1475 | 1476 | [[package]] 1477 | name = "unicase" 1478 | version = "2.7.0" 1479 | source = "registry+https://github.com/rust-lang/crates.io-index" 1480 | checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" 1481 | dependencies = [ 1482 | "version_check", 1483 | ] 1484 | 1485 | [[package]] 1486 | name = "unicode-ident" 1487 | version = "1.0.11" 1488 | source = "registry+https://github.com/rust-lang/crates.io-index" 1489 | checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" 1490 | 1491 | [[package]] 1492 | name = "utf8parse" 1493 | version = "0.2.1" 1494 | source = "registry+https://github.com/rust-lang/crates.io-index" 1495 | checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" 1496 | 1497 | [[package]] 1498 | name = "uuid" 1499 | version = "1.4.1" 1500 | source = "registry+https://github.com/rust-lang/crates.io-index" 1501 | checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" 1502 | dependencies = [ 1503 | "getrandom", 1504 | ] 1505 | 1506 | [[package]] 1507 | name = "valuable" 1508 | version = "0.1.0" 1509 | source = "registry+https://github.com/rust-lang/crates.io-index" 1510 | checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" 1511 | 1512 | [[package]] 1513 | name = "version_check" 1514 | version = "0.9.4" 1515 | source = "registry+https://github.com/rust-lang/crates.io-index" 1516 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 1517 | 1518 | [[package]] 1519 | name = "want" 1520 | version = "0.3.1" 1521 | source = "registry+https://github.com/rust-lang/crates.io-index" 1522 | checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 1523 | dependencies = [ 1524 | "try-lock", 1525 | ] 1526 | 1527 | [[package]] 1528 | name = "wasi" 1529 | version = "0.11.0+wasi-snapshot-preview1" 1530 | source = "registry+https://github.com/rust-lang/crates.io-index" 1531 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 1532 | 1533 | [[package]] 1534 | name = "wasm-bindgen" 1535 | version = "0.2.87" 1536 | source = "registry+https://github.com/rust-lang/crates.io-index" 1537 | checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" 1538 | dependencies = [ 1539 | "cfg-if", 1540 | "wasm-bindgen-macro", 1541 | ] 1542 | 1543 | [[package]] 1544 | name = "wasm-bindgen-backend" 1545 | version = "0.2.87" 1546 | source = "registry+https://github.com/rust-lang/crates.io-index" 1547 | checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" 1548 | dependencies = [ 1549 | "bumpalo", 1550 | "log", 1551 | "once_cell", 1552 | "proc-macro2", 1553 | "quote", 1554 | "syn 2.0.30", 1555 | "wasm-bindgen-shared", 1556 | ] 1557 | 1558 | [[package]] 1559 | name = "wasm-bindgen-futures" 1560 | version = "0.4.37" 1561 | source = "registry+https://github.com/rust-lang/crates.io-index" 1562 | checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" 1563 | dependencies = [ 1564 | "cfg-if", 1565 | "js-sys", 1566 | "wasm-bindgen", 1567 | "web-sys", 1568 | ] 1569 | 1570 | [[package]] 1571 | name = "wasm-bindgen-macro" 1572 | version = "0.2.87" 1573 | source = "registry+https://github.com/rust-lang/crates.io-index" 1574 | checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" 1575 | dependencies = [ 1576 | "quote", 1577 | "wasm-bindgen-macro-support", 1578 | ] 1579 | 1580 | [[package]] 1581 | name = "wasm-bindgen-macro-support" 1582 | version = "0.2.87" 1583 | source = "registry+https://github.com/rust-lang/crates.io-index" 1584 | checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" 1585 | dependencies = [ 1586 | "proc-macro2", 1587 | "quote", 1588 | "syn 2.0.30", 1589 | "wasm-bindgen-backend", 1590 | "wasm-bindgen-shared", 1591 | ] 1592 | 1593 | [[package]] 1594 | name = "wasm-bindgen-shared" 1595 | version = "0.2.87" 1596 | source = "registry+https://github.com/rust-lang/crates.io-index" 1597 | checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" 1598 | 1599 | [[package]] 1600 | name = "wasm-logger" 1601 | version = "0.2.0" 1602 | source = "registry+https://github.com/rust-lang/crates.io-index" 1603 | checksum = "074649a66bb306c8f2068c9016395fa65d8e08d2affcbf95acf3c24c3ab19718" 1604 | dependencies = [ 1605 | "log", 1606 | "wasm-bindgen", 1607 | "web-sys", 1608 | ] 1609 | 1610 | [[package]] 1611 | name = "web-sys" 1612 | version = "0.3.64" 1613 | source = "registry+https://github.com/rust-lang/crates.io-index" 1614 | checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" 1615 | dependencies = [ 1616 | "js-sys", 1617 | "wasm-bindgen", 1618 | ] 1619 | 1620 | [[package]] 1621 | name = "winapi" 1622 | version = "0.3.9" 1623 | source = "registry+https://github.com/rust-lang/crates.io-index" 1624 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 1625 | dependencies = [ 1626 | "winapi-i686-pc-windows-gnu", 1627 | "winapi-x86_64-pc-windows-gnu", 1628 | ] 1629 | 1630 | [[package]] 1631 | name = "winapi-i686-pc-windows-gnu" 1632 | version = "0.4.0" 1633 | source = "registry+https://github.com/rust-lang/crates.io-index" 1634 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 1635 | 1636 | [[package]] 1637 | name = "winapi-x86_64-pc-windows-gnu" 1638 | version = "0.4.0" 1639 | source = "registry+https://github.com/rust-lang/crates.io-index" 1640 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 1641 | 1642 | [[package]] 1643 | name = "windows-sys" 1644 | version = "0.48.0" 1645 | source = "registry+https://github.com/rust-lang/crates.io-index" 1646 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 1647 | dependencies = [ 1648 | "windows-targets", 1649 | ] 1650 | 1651 | [[package]] 1652 | name = "windows-targets" 1653 | version = "0.48.5" 1654 | source = "registry+https://github.com/rust-lang/crates.io-index" 1655 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 1656 | dependencies = [ 1657 | "windows_aarch64_gnullvm", 1658 | "windows_aarch64_msvc", 1659 | "windows_i686_gnu", 1660 | "windows_i686_msvc", 1661 | "windows_x86_64_gnu", 1662 | "windows_x86_64_gnullvm", 1663 | "windows_x86_64_msvc", 1664 | ] 1665 | 1666 | [[package]] 1667 | name = "windows_aarch64_gnullvm" 1668 | version = "0.48.5" 1669 | source = "registry+https://github.com/rust-lang/crates.io-index" 1670 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 1671 | 1672 | [[package]] 1673 | name = "windows_aarch64_msvc" 1674 | version = "0.48.5" 1675 | source = "registry+https://github.com/rust-lang/crates.io-index" 1676 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 1677 | 1678 | [[package]] 1679 | name = "windows_i686_gnu" 1680 | version = "0.48.5" 1681 | source = "registry+https://github.com/rust-lang/crates.io-index" 1682 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 1683 | 1684 | [[package]] 1685 | name = "windows_i686_msvc" 1686 | version = "0.48.5" 1687 | source = "registry+https://github.com/rust-lang/crates.io-index" 1688 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 1689 | 1690 | [[package]] 1691 | name = "windows_x86_64_gnu" 1692 | version = "0.48.5" 1693 | source = "registry+https://github.com/rust-lang/crates.io-index" 1694 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 1695 | 1696 | [[package]] 1697 | name = "windows_x86_64_gnullvm" 1698 | version = "0.48.5" 1699 | source = "registry+https://github.com/rust-lang/crates.io-index" 1700 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 1701 | 1702 | [[package]] 1703 | name = "windows_x86_64_msvc" 1704 | version = "0.48.5" 1705 | source = "registry+https://github.com/rust-lang/crates.io-index" 1706 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 1707 | 1708 | [[package]] 1709 | name = "yew" 1710 | version = "0.20.0" 1711 | source = "registry+https://github.com/rust-lang/crates.io-index" 1712 | checksum = "5dbecfe44343b70cc2932c3eb445425969ae21754a8ab3a0966981c1cf7af1cc" 1713 | dependencies = [ 1714 | "console_error_panic_hook", 1715 | "futures", 1716 | "gloo", 1717 | "implicit-clone", 1718 | "indexmap", 1719 | "js-sys", 1720 | "prokio", 1721 | "rustversion", 1722 | "serde", 1723 | "slab", 1724 | "thiserror", 1725 | "tokio", 1726 | "tracing", 1727 | "wasm-bindgen", 1728 | "wasm-bindgen-futures", 1729 | "web-sys", 1730 | "yew-macro", 1731 | ] 1732 | 1733 | [[package]] 1734 | name = "yew-macro" 1735 | version = "0.20.0" 1736 | source = "registry+https://github.com/rust-lang/crates.io-index" 1737 | checksum = "b64c253c1d401f1ea868ca9988db63958cfa15a69f739101f338d6f05eea8301" 1738 | dependencies = [ 1739 | "boolinator", 1740 | "once_cell", 1741 | "prettyplease", 1742 | "proc-macro-error", 1743 | "proc-macro2", 1744 | "quote", 1745 | "syn 1.0.109", 1746 | ] 1747 | 1748 | [[package]] 1749 | name = "yew-router" 1750 | version = "0.17.0" 1751 | source = "registry+https://github.com/rust-lang/crates.io-index" 1752 | checksum = "426ee0486d2572a6c5e39fbdbc48b58d59bb555f3326f54631025266cf04146e" 1753 | dependencies = [ 1754 | "gloo", 1755 | "js-sys", 1756 | "route-recognizer", 1757 | "serde", 1758 | "serde_urlencoded", 1759 | "tracing", 1760 | "wasm-bindgen", 1761 | "web-sys", 1762 | "yew", 1763 | "yew-router-macro", 1764 | ] 1765 | 1766 | [[package]] 1767 | name = "yew-router-macro" 1768 | version = "0.17.0" 1769 | source = "registry+https://github.com/rust-lang/crates.io-index" 1770 | checksum = "89b249cdb39e0cddaf0644dedc781854524374664793479fdc01e6a65d6e6ae3" 1771 | dependencies = [ 1772 | "proc-macro2", 1773 | "quote", 1774 | "syn 1.0.109", 1775 | ] 1776 | 1777 | [[package]] 1778 | name = "zstd" 1779 | version = "0.12.4" 1780 | source = "registry+https://github.com/rust-lang/crates.io-index" 1781 | checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" 1782 | dependencies = [ 1783 | "zstd-safe", 1784 | ] 1785 | 1786 | [[package]] 1787 | name = "zstd-safe" 1788 | version = "6.0.6" 1789 | source = "registry+https://github.com/rust-lang/crates.io-index" 1790 | checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" 1791 | dependencies = [ 1792 | "libc", 1793 | "zstd-sys", 1794 | ] 1795 | 1796 | [[package]] 1797 | name = "zstd-sys" 1798 | version = "2.0.8+zstd.1.5.5" 1799 | source = "registry+https://github.com/rust-lang/crates.io-index" 1800 | checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c" 1801 | dependencies = [ 1802 | "cc", 1803 | "libc", 1804 | "pkg-config", 1805 | ] 1806 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | resolver = "2" 3 | members = [ 4 | "server", 5 | "frontend", 6 | ] 7 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2022 Robert Krahn 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Setting up a Rust frontend / backend project with axum and yew! 2 | 3 | This code is published alongside my blog post [A Rust web server / frontend setup like it's 2022 (with axum and yew) 4 | ](https://robert.kra.hn/posts/2022-04-03_rust-web-wasm/). 5 | 6 | -------------------------------------------------------------------------------- /clean.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | find . \( -name target -o -name target-trunk -o -name dist \) -type d | xargs rm -rf 4 | -------------------------------------------------------------------------------- /dev.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -euo pipefail 3 | IFS=$'\n\t' 4 | 5 | (trap 'kill 0' SIGINT; \ 6 | bash -c 'cd frontend; CARGO_TARGET_DIR=../target-trunk trunk serve --address 0.0.0.0' & \ 7 | bash -c 'cd server; cargo watch -- cargo run -- --port 8081') 8 | -------------------------------------------------------------------------------- /frontend/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "frontend" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | console_error_panic_hook = "0.1.7" 10 | gloo-net = "0.4" 11 | log = "0.4.17" 12 | wasm-bindgen-futures = "0.4.33" 13 | wasm-logger = "0.2.0" 14 | yew = { version = "0.20.0", features = ["csr"] } 15 | yew-router = "0.17.0" 16 | 17 | -------------------------------------------------------------------------------- /frontend/Trunk.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | target = "index.html" 3 | dist = "../dist" 4 | 5 | [[proxy]] 6 | backend = "http://[::1]:8081/api/" 7 | -------------------------------------------------------------------------------- /frontend/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 |