Your locally hosted lumina server for IDAPro

Compare changes

Choose any two refs to compare.

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