diff --git a/Cargo.lock b/Cargo.lock index 084f32d..6b02ada 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -18,58 +18,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] -name = "aead" -version = "0.3.2" +name = "adler32" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331" -dependencies = [ - "generic-array 0.14.5", -] - -[[package]] -name = "aes" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561" -dependencies = [ - "aes-soft", - "aesni", - "cipher", -] - -[[package]] -name = "aes-gcm" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5278b5fabbb9bd46e24aa69b2fdea62c99088e0a950a9be40e3e0101298f88da" -dependencies = [ - "aead", - "aes", - "cipher", - "ctr", - "ghash", - "subtle", -] - -[[package]] -name = "aes-soft" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072" -dependencies = [ - "cipher", - "opaque-debug 0.3.0", -] - -[[package]] -name = "aesni" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce" -dependencies = [ - "cipher", - "opaque-debug 0.3.0", -] +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" [[package]] name = "aho-corasick" @@ -80,6 +32,21 @@ dependencies = [ "memchr", ] +[[package]] +name = "alloc-no-stdlib" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35ef4730490ad1c4eae5c4325b2a95f521d023e5c885853ff7aca0a6a1631db3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "697ed7edc0f1711de49ce108c541623a0af97c6c60b2f6e2b65229847ac843c2" +dependencies = [ + "alloc-no-stdlib", +] + [[package]] name = "ansi_term" version = "0.12.1" @@ -89,14 +56,20 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "ascii" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbf56136a5198c7b01a49e3afcbef6cf84597273d298f54432926024107b0109" + [[package]] name = "async-attributes" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" dependencies = [ - "quote 1.0.14", - "syn 1.0.85", + "quote 1.0.15", + "syn 1.0.86", ] [[package]] @@ -126,9 +99,9 @@ dependencies = [ [[package]] name = "async-global-executor" -version = "2.0.2" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9586ec52317f36de58453159d48351bc244bc24ced3effc1fce22f3d48664af6" +checksum = "c026b7e44f1316b567ee750fea85103f87fcb80792b860e979f221259796ca0a" dependencies = [ "async-channel", "async-executor", @@ -161,9 +134,9 @@ dependencies = [ [[package]] name = "async-lock" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6a8ea61bf9947a1007c5cada31e647dbc77b103c679858150003ba697ea798b" +checksum = "e97a171d191782fba31bb902b14ad94e24a68145032b7eedf871ab0bc0d077b6" dependencies = [ "event-listener", ] @@ -206,7 +179,7 @@ dependencies = [ "async-io", "async-lock", "async-process", - "crossbeam-utils 0.8.6", + "crossbeam-utils 0.8.7", "futures-channel", "futures-core", "futures-io", @@ -250,8 +223,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25f9db3b38af870bf7e5cc649167533b493928e50744e2c30ae350230b414670" dependencies = [ "proc-macro2 1.0.36", - "quote 1.0.14", - "syn 1.0.85", + "quote 1.0.15", + "syn 1.0.86", ] [[package]] @@ -261,35 +234,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "648ed8c8d2ce5409ccd57453d9d1b214b342a0d69376a6feda1fd6cae3299308" dependencies = [ "proc-macro2 1.0.36", - "quote 1.0.14", - "syn 1.0.85", + "quote 1.0.15", + "syn 1.0.86", ] [[package]] name = "async-task" -version = "4.1.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d306121baf53310a3fd342d88dc0824f6bbeace68347593658525565abee8" - -[[package]] -name = "async-trait" -version = "0.1.52" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061a7acccaa286c011ddc30970520b98fa40e00c9d644633fb26b5fc63a265e3" -dependencies = [ - "proc-macro2 1.0.36", - "quote 1.0.14", - "syn 1.0.85", -] - -[[package]] -name = "atomic" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b88d82667eca772c4aa12f0f1348b3ae643424c8876448f3f7bd5787032e234c" -dependencies = [ - "autocfg 1.0.1", -] +checksum = "30696a84d817107fc028e049980e09d5e140e8da8f1caeb17e8e950658a3cea9" [[package]] name = "atomic-waker" @@ -321,21 +274,24 @@ dependencies = [ [[package]] name = "autocfg" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" +checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78" +dependencies = [ + "autocfg 1.1.0", +] [[package]] name = "autocfg" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" -version = "0.3.63" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "321629d8ba6513061f26707241fa9bc89524ff1cd7a915a97ef0c62c666ce1b6" +checksum = "5e121dee8023ce33ab248d9ce1493df03c3b38a659b240096fcbd7048ff9c31f" dependencies = [ "addr2line", "cc", @@ -346,12 +302,6 @@ dependencies = [ "rustc-demangle", ] -[[package]] -name = "base-x" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b" - [[package]] name = "base64" version = "0.9.3" @@ -374,12 +324,6 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" -[[package]] -name = "binascii" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "383d29d513d8764dcdc42ea295d979eb99c3c9f00607b3692cf68a431f7dca72" - [[package]] name = "bitflags" version = "0.3.3" @@ -412,18 +356,9 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.9.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array 0.14.5", -] - -[[package]] -name = "block-buffer" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1d36a02058e76b040de25a4464ba1c80935655595b661505c8b39b664828b95" +checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" dependencies = [ "generic-array 0.14.5", ] @@ -451,6 +386,27 @@ dependencies = [ "once_cell", ] +[[package]] +name = "brotli" +version = "3.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f838e47a451d5a8fa552371f80024dd6ace9b7acdf25c4c3d0f9bc6816fb1c39" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ad2d4653bf5ca36ae797b1f4bb4dbddb60ce49ca4aed8a2ce4829f60425b80" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + [[package]] name = "bstr" version = "0.2.17" @@ -460,6 +416,16 @@ dependencies = [ "memchr", ] +[[package]] +name = "buf_redux" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b953a6887648bb07a535631f2bc00fbdb2a2216f135552cb3f534ed136b9c07f" +dependencies = [ + "memchr", + "safemem", +] + [[package]] name = "bumpalo" version = "3.9.1" @@ -524,9 +490,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.72" +version = "1.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee" +checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" [[package]] name = "cfg-if" @@ -554,35 +520,10 @@ dependencies = [ ] [[package]] -name = "chrono-tz" -version = "0.6.1" +name = "chunked_transfer" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58549f1842da3080ce63002102d5bc954c7bc843d4f47818e642abdc36253552" -dependencies = [ - "chrono", - "chrono-tz-build", - "phf", -] - -[[package]] -name = "chrono-tz-build" -version = "0.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db058d493fb2f65f41861bfed7e3fe6335264a9f0f92710cab5bdf01fef09069" -dependencies = [ - "parse-zoneinfo", - "phf", - "phf_codegen", -] - -[[package]] -name = "cipher" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" -dependencies = [ - "generic-array 0.14.5", -] +checksum = "fff857943da45f546682664a79488be82e69e43c1a7a2307679ab9afb3a66d2e" [[package]] name = "clap" @@ -617,35 +558,12 @@ dependencies = [ "cache-padded", ] -[[package]] -name = "const_fn" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935" - [[package]] name = "convert_case" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" -[[package]] -name = "cookie" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f1c7727e460397e56abc4bddc1d49e07a1ad78fc98eb2e1c8f032a58a2f80d" -dependencies = [ - "aes-gcm", - "base64 0.13.0", - "hkdf", - "percent-encoding 2.1.0", - "rand 0.8.4", - "sha2 0.9.9", - "subtle", - "time 0.2.27", - "version_check 0.9.4", -] - [[package]] name = "cpufeatures" version = "0.2.1" @@ -656,10 +574,13 @@ dependencies = [ ] [[package]] -name = "cpuid-bool" -version = "0.2.0" +name = "crc32fast" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if 1.0.0", +] [[package]] name = "crossbeam-channel" @@ -687,7 +608,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" dependencies = [ - "autocfg 1.0.1", + "autocfg 1.1.0", "cfg-if 0.1.10", "crossbeam-utils 0.7.2", "lazy_static", @@ -723,16 +644,16 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" dependencies = [ - "autocfg 1.0.1", + "autocfg 1.1.0", "cfg-if 0.1.10", "lazy_static", ] [[package]] name = "crossbeam-utils" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcae03edb34f947e64acdb1c33ec169824e20657e9ecb61cef6c8c74dcb8120" +checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6" dependencies = [ "cfg-if 1.0.0", "lazy_static", @@ -748,33 +669,14 @@ dependencies = [ "typenum", ] -[[package]] -name = "crypto-mac" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff07008ec701e8028e2ceb8f83f0e4274ee62bd2dbdc4fefff2e9a91824081a" -dependencies = [ - "generic-array 0.14.5", - "subtle", -] - [[package]] name = "ctor" version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa" dependencies = [ - "quote 1.0.14", - "syn 1.0.85", -] - -[[package]] -name = "ctr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f" -dependencies = [ - "cipher", + "quote 1.0.15", + "syn 1.0.86", ] [[package]] @@ -787,6 +689,16 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "deflate" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f95bf05dffba6e6cce8dfbb30def788154949ccd9aed761b472119c21e01c70" +dependencies = [ + "adler32", + "gzip-header", +] + [[package]] name = "derive_more" version = "0.99.17" @@ -795,48 +707,9 @@ checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case", "proc-macro2 1.0.36", - "quote 1.0.14", + "quote 1.0.15", "rustc_version 0.4.0", - "syn 1.0.85", -] - -[[package]] -name = "deunicode" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "850878694b7933ca4c9569d30a34b55031b9b139ee1fc7b94a527c4ef960d690" - -[[package]] -name = "devise" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50c7580b072f1c8476148f16e0a0d5dedddab787da98d86c5082c5e9ed8ab595" -dependencies = [ - "devise_codegen", - "devise_core", -] - -[[package]] -name = "devise_codegen" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "123c73e7a6e51b05c75fe1a1b2f4e241399ea5740ed810b0e3e6cacd9db5e7b2" -dependencies = [ - "devise_core", - "quote 1.0.14", -] - -[[package]] -name = "devise_core" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841ef46f4787d9097405cac4e70fb8644fc037b526e8c14054247c0263c400d0" -dependencies = [ - "bitflags 1.3.2", - "proc-macro2 1.0.36", - "proc-macro2-diagnostics", - "quote 1.0.14", - "syn 1.0.85", + "syn 1.0.86", ] [[package]] @@ -848,22 +721,13 @@ dependencies = [ "generic-array 0.12.4", ] -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array 0.14.5", -] - [[package]] name = "digest" version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" dependencies = [ - "block-buffer 0.10.0", + "block-buffer 0.10.2", "crypto-common", ] @@ -877,15 +741,6 @@ dependencies = [ "dirs-sys", ] -[[package]] -name = "dirs" -version = "3.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30baa043103c9d0c2a57cf537cc2f35623889dc0d405e6c3cccfadbc81c71309" -dependencies = [ - "dirs-sys", -] - [[package]] name = "dirs" version = "4.0.0" @@ -906,12 +761,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "discard" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" - [[package]] name = "doc-comment" version = "0.3.3" @@ -936,23 +785,14 @@ dependencies = [ [[package]] name = "embedded-hal" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36cfb62ff156596c892272f3015ef952fe1525e85261fa3a7f327bd6b384ab9" +checksum = "35949884794ad573cf46071e41c9b60efb0cb311e3ca01f7af807af1debc66ff" dependencies = [ "nb 0.1.3", "void", ] -[[package]] -name = "encoding_rs" -version = "0.8.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dc8abb250ffdda33912550faa54c88ec8b998dec0b2c55ab224921ce11df" -dependencies = [ - "cfg-if 1.0.0", -] - [[package]] name = "env_logger" version = "0.6.2" @@ -1025,8 +865,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ "proc-macro2 1.0.36", - "quote 1.0.14", - "syn 1.0.85", + "quote 1.0.15", + "syn 1.0.86", "synstructure", ] @@ -1038,27 +878,13 @@ checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" [[package]] name = "fastrand" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "779d043b6a0b90cc4c0ed7ee380a6504394cee7efd7db050e3774eee387324b2" +checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" dependencies = [ "instant", ] -[[package]] -name = "figment" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "790b4292c72618abbab50f787a477014fe15634f96291de45672ce46afe122df" -dependencies = [ - "atomic", - "pear", - "serde 1.0.133", - "toml", - "uncased", - "version_check 0.9.4", -] - [[package]] name = "filetime" version = "0.2.15" @@ -1067,7 +893,7 @@ checksum = "975ccf83d8d9d0d84682850a38c8169027be83368805971cc4f238c2b245bc98" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall 0.2.10", + "redox_syscall 0.2.11", "winapi 0.3.9", ] @@ -1078,22 +904,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] -name = "fsevent" -version = "0.4.0" +name = "form_urlencoded" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6" +checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" dependencies = [ - "bitflags 1.3.2", - "fsevent-sys", -] - -[[package]] -name = "fsevent-sys" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0" -dependencies = [ - "libc", + "matches", + "percent-encoding 2.1.0", ] [[package]] @@ -1215,8 +1032,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" dependencies = [ "proc-macro2 1.0.36", - "quote 1.0.14", - "syn 1.0.85", + "quote 1.0.15", + "syn 1.0.86", ] [[package]] @@ -1256,19 +1073,6 @@ version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" -[[package]] -name = "generator" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1d9279ca822891c1a4dae06d185612cf8fc6acfe5dff37781b41297811b12ee" -dependencies = [ - "cc", - "libc", - "log 0.4.14", - "rustversion", - "winapi 0.3.9", -] - [[package]] name = "generic-array" version = "0.12.4" @@ -1323,37 +1127,21 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.3" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" +checksum = "d39cd93900197114fa1fcb7ae84ca742095eed9442088988ae74fa744e930e77" dependencies = [ "cfg-if 1.0.0", "libc", "wasi 0.10.0+wasi-snapshot-preview1", ] -[[package]] -name = "ghash" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97304e4cd182c3846f7575ced3890c53012ce534ad9114046b0a9e00bb30a375" -dependencies = [ - "opaque-debug 0.3.0", - "polyval", -] - [[package]] name = "gimli" version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" -[[package]] -name = "glob" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" - [[package]] name = "globset" version = "0.4.8" @@ -1367,17 +1155,6 @@ dependencies = [ "regex", ] -[[package]] -name = "globwalk" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93e3af942408868f6934a7b85134a3230832b9977cf66125df2f9edcfce4ddcc" -dependencies = [ - "bitflags 1.3.2", - "ignore", - "walkdir", -] - [[package]] name = "gloo-timers" version = "0.2.3" @@ -1402,9 +1179,9 @@ dependencies = [ "kuska-handshake", "kuska-sodiumoxide", "kuska-ssb", - "serde 1.0.133", + "serde 1.0.136", "serde_json", - "sha2 0.10.2", + "sha2", ] [[package]] @@ -1419,6 +1196,15 @@ dependencies = [ "nix 0.11.1", ] +[[package]] +name = "gzip-header" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0131feb3d3bb2a5a238d8a4d09f6353b7ebfdc52e77bccbf4ea6eaa751dde639" +dependencies = [ + "crc32fast", +] + [[package]] name = "h2" version = "0.1.26" @@ -1437,25 +1223,6 @@ dependencies = [ "tokio-io", ] -[[package]] -name = "h2" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c9de88456263e249e241fcd211d3954e2c9b0ef7ccfc235a444eb367cae3689" -dependencies = [ - "bytes 1.1.0", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.6", - "indexmap", - "slab 0.4.5", - "tokio 1.15.0", - "tokio-util", - "tracing", -] - [[package]] name = "hashbrown" version = "0.11.2" @@ -1486,26 +1253,6 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hkdf" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51ab2f639c231793c5f6114bdb9bbe50a7dbbfcd7c7c6bd8475dec2d991e964f" -dependencies = [ - "digest 0.9.0", - "hmac", -] - -[[package]] -name = "hmac" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15" -dependencies = [ - "crypto-mac", - "digest 0.9.0", -] - [[package]] name = "http" version = "0.1.21" @@ -1553,9 +1300,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503" +checksum = "9100414882e15fb7feccb4897e5f0ff0ff1ca7d1a86a23208ada4d7a18e6c6c4" [[package]] name = "httpdate" @@ -1563,12 +1310,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" -[[package]] -name = "humansize" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02296996cb8796d7c6e3bc2d9211b7802812d36999a51bb754123ead7d37d026" - [[package]] name = "humantime" version = "1.3.0" @@ -1620,7 +1361,7 @@ dependencies = [ "bytes 0.4.12", "futures 0.1.31", "futures-cpupool", - "h2 0.1.26", + "h2", "http 0.1.21", "http-body 0.1.0", "httparse", @@ -1643,23 +1384,22 @@ dependencies = [ [[package]] name = "hyper" -version = "0.14.16" +version = "0.14.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7ec3e62bdc98a2f0393a5048e4c30ef659440ea6e0e572965103e72bd836f55" +checksum = "043f0e083e9901b6cc658a77d1eb86f4fc650bbb977a4337dd63192826aa85dd" dependencies = [ "bytes 1.1.0", "futures-channel", "futures-core", "futures-util", - "h2 0.3.10", "http 0.2.6", "http-body 0.4.4", "httparse", "httpdate", - "itoa 0.4.8", + "itoa 1.0.1", "pin-project-lite", "socket2", - "tokio 1.15.0", + "tokio 1.17.0", "tower-service", "tracing", "want 0.3.0", @@ -1689,21 +1429,14 @@ dependencies = [ ] [[package]] -name = "ignore" -version = "0.4.18" +name = "idna" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" dependencies = [ - "crossbeam-utils 0.8.6", - "globset", - "lazy_static", - "log 0.4.14", - "memchr", - "regex", - "same-file", - "thread_local", - "walkdir", - "winapi-util", + "matches", + "unicode-bidi", + "unicode-normalization", ] [[package]] @@ -1712,35 +1445,8 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223" dependencies = [ - "autocfg 1.0.1", + "autocfg 1.1.0", "hashbrown", - "serde 1.0.133", -] - -[[package]] -name = "inlinable_string" -version = "0.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8fae54786f62fb2918dcfae3d568594e50eb9b5c25bf04371af6fe7516452fb" - -[[package]] -name = "inotify" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4816c66d2c8ae673df83366c18341538f234a26d65a9ecea5c348b453ac1d02f" -dependencies = [ - "bitflags 1.3.2", - "inotify-sys", - "libc", -] - -[[package]] -name = "inotify-sys" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" -dependencies = [ - "libc", ] [[package]] @@ -1792,7 +1498,7 @@ dependencies = [ "futures 0.1.31", "jsonrpc-core 8.0.1", "log 0.4.14", - "serde 1.0.133", + "serde 1.0.136", "serde_json", ] @@ -1821,9 +1527,9 @@ dependencies = [ "jsonrpc-core 18.0.0", "jsonrpc-pubsub 18.0.0", "log 0.4.14", - "serde 1.0.133", + "serde 1.0.136", "serde_json", - "url", + "url 1.7.2", ] [[package]] @@ -1834,7 +1540,7 @@ checksum = "ddf83704f4e79979a424d1082dd2c1e52683058056c9280efa19ac5f6bc9033c" dependencies = [ "futures 0.1.31", "log 0.3.9", - "serde 1.0.133", + "serde 1.0.136", "serde_derive", "serde_json", ] @@ -1847,7 +1553,7 @@ checksum = "97b83fdc5e0218128d0d270f2f2e7a5ea716f3240c8518a58bc89e6716ba8581" dependencies = [ "futures 0.1.31", "log 0.4.14", - "serde 1.0.133", + "serde 1.0.136", "serde_derive", "serde_json", ] @@ -1862,7 +1568,7 @@ dependencies = [ "futures-executor", "futures-util", "log 0.4.14", - "serde 1.0.133", + "serde 1.0.136", "serde_derive", "serde_json", ] @@ -1877,7 +1583,7 @@ dependencies = [ "futures 0.1.31", "jsonrpc-core 11.0.0", "log 0.4.14", - "serde 1.0.133", + "serde 1.0.136", "serde_json", ] @@ -1912,7 +1618,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1dea6e07251d9ce6a552abfb5d7ad6bc290a4596c8dcc3d795fae2bbdc1f3ff" dependencies = [ "futures 0.3.21", - "hyper 0.14.16", + "hyper 0.14.17", "jsonrpc-core 18.0.0", "jsonrpc-server-utils 18.0.0", "log 0.4.14", @@ -1930,7 +1636,7 @@ dependencies = [ "jsonrpc-core 11.0.0", "log 0.4.14", "parking_lot 0.7.1", - "serde 1.0.133", + "serde 1.0.136", ] [[package]] @@ -1945,7 +1651,7 @@ dependencies = [ "log 0.4.14", "parking_lot 0.11.2", "rand 0.7.3", - "serde 1.0.133", + "serde 1.0.136", ] [[package]] @@ -1977,7 +1683,7 @@ dependencies = [ "jsonrpc-core 18.0.0", "lazy_static", "log 0.4.14", - "tokio 1.15.0", + "tokio 1.17.0", "tokio-stream", "tokio-util", "unicase", @@ -1993,7 +1699,7 @@ dependencies = [ "jsonrpc-core-client 11.0.0", "jsonrpc-pubsub 11.0.0", "log 0.4.14", - "serde 1.0.133", + "serde 1.0.136", "serde_json", ] @@ -2007,7 +1713,7 @@ dependencies = [ "jsonrpc-core-client 18.0.0", "jsonrpc-pubsub 18.0.0", "log 0.4.14", - "serde 1.0.133", + "serde 1.0.136", "serde_json", ] @@ -2062,7 +1768,7 @@ checksum = "ae0f8eafdd240b722243787b51fdaf8df6693fb8621d0f7061cdba574214cf88" dependencies = [ "libc", "libsodium-sys", - "serde 1.0.133", + "serde 1.0.136", ] [[package]] @@ -2081,7 +1787,7 @@ dependencies = [ "log 0.4.14", "once_cell", "regex", - "serde 1.0.133", + "serde 1.0.136", "serde_json", "thiserror", ] @@ -2115,9 +1821,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.112" +version = "0.2.119" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125" +checksum = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4" [[package]] name = "libsodium-sys" @@ -2181,9 +1887,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109" +checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" dependencies = [ "scopeguard 1.1.0", ] @@ -2207,42 +1913,33 @@ dependencies = [ "value-bag", ] -[[package]] -name = "loom" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc5c7d328e32cc4954e8e01193d7f0ef5ab257b5090b70a964e099a36034309" -dependencies = [ - "cfg-if 1.0.0", - "generator", - "scoped-tls 1.0.0", - "serde 1.0.133", - "serde_json", - "tracing", - "tracing-subscriber", -] - -[[package]] -name = "maplit" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" - -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata", -] - [[package]] name = "matches" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" +[[package]] +name = "maud" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7384febb4f8fc970cc2efab1650a6f48cac2e79b0b29587c90497b646fb10e1e" +dependencies = [ + "maud_macros", +] + +[[package]] +name = "maud_macros" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "423430ac467408136d7de93f2929debd8a7bc3e795c92476f45e259b158e3355" +dependencies = [ + "proc-macro-error", + "proc-macro2 1.0.36", + "quote 1.0.15", + "syn 1.0.86", +] + [[package]] name = "maybe-uninit" version = "2.0.0" @@ -2261,7 +1958,7 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa" dependencies = [ - "autocfg 1.0.1", + "autocfg 1.1.0", ] [[package]] @@ -2270,7 +1967,7 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" dependencies = [ - "autocfg 1.0.1", + "autocfg 1.1.0", ] [[package]] @@ -2280,14 +1977,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" [[package]] -name = "mini-internal" -version = "0.1.18" +name = "mime_guess" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cff801412f35cc16309997f9709a7933a3229df170fa9b3a9cae12e95eef0b5" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "mini-internal" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a9cec2df85e49afd5bd4c4afb21678e2177736ebe31e4b8836b821ffd806bd" dependencies = [ "proc-macro2 1.0.36", - "quote 1.0.14", - "syn 1.0.85", + "quote 1.0.15", + "syn 1.0.86", ] [[package]] @@ -2298,9 +2005,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniserde" -version = "0.1.18" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c57dcbb3bace5647e7254cae926a5251bd6243c9e25b70514199f39f7df118b" +checksum = "6b4f376d897db27bdf4e318542322eca8fd41839cc56a12cc8f8d8a05b4386af" dependencies = [ "itoa 1.0.1", "mini-internal", @@ -2314,7 +2021,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" dependencies = [ "adler", - "autocfg 1.0.1", + "autocfg 1.1.0", ] [[package]] @@ -2338,9 +2045,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.7.14" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" +checksum = "ba272f85fa0b41fc91872be579b3bbe0f56b792aa361a380eb669469f68dafb2" dependencies = [ "libc", "log 0.4.14", @@ -2400,23 +2107,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9796ba90f2e7187d7837ea05033ed6dff5320cbf2944fe2dc1da53569396ca07" [[package]] -name = "multer" -version = "2.0.2" +name = "multipart" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f8f35e687561d5c1667590911e6698a8cb714a134a7505718a182e7bc9d3836" +checksum = "00dec633863867f29cb39df64a397cdf4a6354708ddd7759f70c7fb51c5f9182" dependencies = [ - "bytes 1.1.0", - "encoding_rs", - "futures-util", - "http 0.2.6", + "buf_redux", "httparse", "log 0.4.14", - "memchr", "mime", - "spin", - "tokio 1.15.0", - "tokio-util", - "version_check 0.9.4", + "mime_guess", + "quick-error", + "rand 0.8.5", + "safemem", + "tempfile", + "twoway", ] [[package]] @@ -2554,38 +2259,11 @@ dependencies = [ "version_check 0.9.4", ] -[[package]] -name = "normpath" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04aaf5e9cb0fbf883cc0423159eacdf96a9878022084b35c462c428cab73bcaf" -dependencies = [ - "winapi 0.3.9", -] - -[[package]] -name = "notify" -version = "4.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae03c8c853dba7bfd23e571ff0cff7bc9dceb40a4cd684cd1681824183f45257" -dependencies = [ - "bitflags 1.3.2", - "filetime", - "fsevent", - "fsevent-sys", - "inotify", - "libc", - "mio 0.6.23", - "mio-extras", - "walkdir", - "winapi 0.3.9", -] - [[package]] name = "ntapi" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" +checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" dependencies = [ "winapi 0.3.9", ] @@ -2596,7 +2274,7 @@ version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" dependencies = [ - "autocfg 1.0.1", + "autocfg 1.1.0", "num-traits 0.2.14", ] @@ -2615,7 +2293,7 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" dependencies = [ - "autocfg 1.0.1", + "autocfg 1.1.0", ] [[package]] @@ -2628,6 +2306,15 @@ dependencies = [ "libc", ] +[[package]] +name = "num_threads" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97ba99ba6393e2c3734791401b66902d981cb03bf190af674ca69949b6d5fb15" +dependencies = [ + "libc", +] + [[package]] name = "object" version = "0.27.1" @@ -2645,9 +2332,9 @@ checksum = "2069a3ae3dad97a4ae47754e8f47e5d2f1fd32ab7ad8a84bb31d051faa59cc3c" [[package]] name = "once_cell" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5" +checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9" [[package]] name = "opaque-debug" @@ -2655,12 +2342,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" -[[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - [[package]] name = "owning_ref" version = "0.4.1" @@ -2704,7 +2385,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" dependencies = [ "instant", - "lock_api 0.4.5", + "lock_api 0.4.6", "parking_lot_core 0.8.5", ] @@ -2745,20 +2426,11 @@ dependencies = [ "cfg-if 1.0.0", "instant", "libc", - "redox_syscall 0.2.10", - "smallvec 1.7.0", + "redox_syscall 0.2.11", + "smallvec 1.8.0", "winapi 0.3.9", ] -[[package]] -name = "parse-zoneinfo" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41" -dependencies = [ - "regex", -] - [[package]] name = "peach-buttons" version = "0.1.3" @@ -2785,7 +2457,7 @@ dependencies = [ "peach-lib", "regex", "rpassword", - "serde 1.0.133", + "serde 1.0.136", "serde_json", "snafu 0.6.10", "structopt", @@ -2828,7 +2500,7 @@ dependencies = [ "log 0.4.14", "nanorand", "regex", - "serde 1.0.133", + "serde 1.0.136", "serde_json", "serde_yaml", "sha3", @@ -2847,7 +2519,7 @@ dependencies = [ "jsonrpc-http-server 11.0.0", "log 0.4.14", "peach-lib", - "serde 1.0.133", + "serde 1.0.136", "serde_json", "ws", ] @@ -2872,7 +2544,7 @@ dependencies = [ "miniserde", "probes 0.4.1", "regex", - "serde 1.0.133", + "serde 1.0.136", "wpactrl", ] @@ -2888,7 +2560,7 @@ dependencies = [ "linux-embedded-hal", "log 0.4.14", "nix 0.11.1", - "serde 1.0.133", + "serde 1.0.136", "ssd1306", "tinybmp", ] @@ -2900,7 +2572,7 @@ dependencies = [ "log 0.4.14", "miniserde", "probes 0.4.1", - "serde 1.0.133", + "serde 1.0.136", "systemstat", ] @@ -2914,42 +2586,15 @@ dependencies = [ "golgi", "lazy_static", "log 0.4.14", - "nest", + "maud", "peach-lib", "peach-network", "peach-stats", - "rocket", - "rocket_dyn_templates", - "serde 1.0.133", - "serde_json", + "rouille", "temporary", - "tera", "xdg", ] -[[package]] -name = "pear" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e44241c5e4c868e3eaa78b7c1848cadd6344ed4f54d029832d32b415a58702" -dependencies = [ - "inlinable_string", - "pear_codegen", - "yansi", -] - -[[package]] -name = "pear_codegen" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82a5ca643c2303ecb740d506539deba189e16f2754040a42901cd8105d0282d0" -dependencies = [ - "proc-macro2 1.0.36", - "proc-macro2-diagnostics", - "quote 1.0.14", - "syn 1.0.85", -] - [[package]] name = "percent-encoding" version = "1.0.1" @@ -2962,88 +2607,6 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" -[[package]] -name = "pest" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" -dependencies = [ - "ucd-trie", -] - -[[package]] -name = "pest_derive" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" -dependencies = [ - "pest", - "pest_generator", -] - -[[package]] -name = "pest_generator" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" -dependencies = [ - "pest", - "pest_meta", - "proc-macro2 1.0.36", - "quote 1.0.14", - "syn 1.0.85", -] - -[[package]] -name = "pest_meta" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d" -dependencies = [ - "maplit", - "pest", - "sha-1", -] - -[[package]] -name = "phf" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" -dependencies = [ - "phf_shared", -] - -[[package]] -name = "phf_codegen" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd" -dependencies = [ - "phf_generator", - "phf_shared", -] - -[[package]] -name = "phf_generator" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" -dependencies = [ - "phf_shared", - "rand 0.8.4", -] - -[[package]] -name = "phf_shared" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" -dependencies = [ - "siphasher", - "uncased", -] - [[package]] name = "pin-project-lite" version = "0.2.8" @@ -3075,17 +2638,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "polyval" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eebcc4aa140b9abd2bc40d9c3f7ccec842679cd79045ac3a7ac698c1a064b7cd" -dependencies = [ - "cpuid-bool", - "opaque-debug 0.3.0", - "universal-hash", -] - [[package]] name = "ppv-lite86" version = "0.2.16" @@ -3099,7 +2651,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f77e66f6d6d898cbbd4a09c48fd3507cfc210b7c83055de02a38b5f7a1e6d216" dependencies = [ "libc", - "time 0.2.27", + "time 0.3.7", ] [[package]] @@ -3120,8 +2672,8 @@ checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", "proc-macro2 1.0.36", - "quote 1.0.14", - "syn 1.0.85", + "quote 1.0.15", + "syn 1.0.86", "version_check 0.9.4", ] @@ -3132,16 +2684,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ "proc-macro2 1.0.36", - "quote 1.0.14", + "quote 1.0.15", "version_check 0.9.4", ] -[[package]] -name = "proc-macro-hack" -version = "0.5.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" - [[package]] name = "proc-macro2" version = "0.4.30" @@ -3160,19 +2706,6 @@ dependencies = [ "unicode-xid 0.2.2", ] -[[package]] -name = "proc-macro2-diagnostics" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bf29726d67464d49fa6224a1d07936a8c08bb3fba727c7493f6cf1616fdaada" -dependencies = [ - "proc-macro2 1.0.36", - "quote 1.0.14", - "syn 1.0.85", - "version_check 0.9.4", - "yansi", -] - [[package]] name = "quick-error" version = "1.2.3" @@ -3190,9 +2723,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47aa80447ce4daf1717500037052af176af5d38cc3e571d9ec1c7353fc10c87d" +checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145" dependencies = [ "proc-macro2 1.0.36", ] @@ -3226,7 +2759,7 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" dependencies = [ - "autocfg 0.1.7", + "autocfg 0.1.8", "libc", "rand_chacha 0.1.1", "rand_core 0.4.2", @@ -3254,14 +2787,13 @@ dependencies = [ [[package]] name = "rand" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha 0.3.1", "rand_core 0.6.3", - "rand_hc 0.3.1", ] [[package]] @@ -3270,7 +2802,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" dependencies = [ - "autocfg 0.1.7", + "autocfg 0.1.8", "rand_core 0.3.1", ] @@ -3324,7 +2856,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" dependencies = [ - "getrandom 0.2.3", + "getrandom 0.2.5", ] [[package]] @@ -3345,15 +2877,6 @@ dependencies = [ "rand_core 0.5.1", ] -[[package]] -name = "rand_hc" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7" -dependencies = [ - "rand_core 0.6.3", -] - [[package]] name = "rand_isaac" version = "0.1.1" @@ -3394,7 +2917,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" dependencies = [ - "autocfg 0.1.7", + "autocfg 0.1.8", "rand_core 0.4.2", ] @@ -3430,9 +2953,9 @@ checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" [[package]] name = "redox_syscall" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" +checksum = "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c" dependencies = [ "bitflags 1.3.2", ] @@ -3443,50 +2966,21 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" dependencies = [ - "getrandom 0.2.3", - "redox_syscall 0.2.10", -] - -[[package]] -name = "ref-cast" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "300f2a835d808734ee295d45007adacb9ebb29dd3ae2424acfa17930cae541da" -dependencies = [ - "ref-cast-impl", -] - -[[package]] -name = "ref-cast-impl" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c38e3aecd2b21cb3959637b883bb3714bc7e43f0268b9a29d3743ee3e55cdd2" -dependencies = [ - "proc-macro2 1.0.36", - "quote 1.0.14", - "syn 1.0.85", + "getrandom 0.2.5", + "redox_syscall 0.2.11", ] [[package]] name = "regex" -version = "1.5.4" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" +checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286" dependencies = [ "aho-corasick", "memchr", "regex-syntax", ] -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax", -] - [[package]] name = "regex-syntax" version = "0.6.25" @@ -3512,101 +3006,28 @@ dependencies = [ ] [[package]] -name = "rocket" -version = "0.5.0-rc.1" +name = "rouille" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a71c18c42a0eb15bf3816831caf0dad11e7966f2a41aaf486a701979c4dd1f2" +checksum = "18b2380c42510ef4a28b5f228a174c801e0dec590103e215e60812e2e2f34d05" dependencies = [ - "async-stream 0.3.2", - "async-trait", - "atomic", - "atty", - "binascii", - "bytes 1.1.0", - "either", - "figment", - "futures 0.3.21", - "indexmap", - "log 0.4.14", - "memchr", - "multer", + "base64 0.13.0", + "brotli", + "chrono", + "deflate", + "filetime", + "multipart", "num_cpus", - "parking_lot 0.11.2", - "pin-project-lite", - "rand 0.8.4", - "ref-cast", - "rocket_codegen", - "rocket_http", - "serde 1.0.133", - "serde_json", - "state", - "tempfile", - "time 0.2.27", - "tokio 1.15.0", - "tokio-stream", - "tokio-util", - "ubyte", - "version_check 0.9.4", - "yansi", -] - -[[package]] -name = "rocket_codegen" -version = "0.5.0-rc.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66f5fa462f7eb958bba8710c17c5d774bbbd59809fa76fb1957af7e545aea8bb" -dependencies = [ - "devise", - "glob", - "indexmap", - "proc-macro2 1.0.36", - "quote 1.0.14", - "rocket_http", - "syn 1.0.85", - "unicode-xid 0.2.2", -] - -[[package]] -name = "rocket_dyn_templates" -version = "0.1.0-rc.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c83f1287ad8fa034410928297a91db37518d5c46d7cc7e1e1b4a77aec0cd8807" -dependencies = [ - "glob", - "normpath", - "notify", - "rocket", - "serde 1.0.133", - "serde_json", - "tera", -] - -[[package]] -name = "rocket_http" -version = "0.5.0-rc.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23c8b7d512d2fcac2316ebe590cde67573844b99e6cc9ee0f53375fa16e25ebd" -dependencies = [ - "cookie", - "either", - "http 0.2.6", - "hyper 0.14.16", - "indexmap", - "log 0.4.14", - "memchr", - "mime", - "parking_lot 0.11.2", - "pear", "percent-encoding 2.1.0", - "pin-project-lite", - "ref-cast", - "serde 1.0.133", - "smallvec 1.7.0", - "stable-pattern", - "state", - "time 0.2.27", - "tokio 1.15.0", - "uncased", + "rand 0.8.5", + "serde 1.0.136", + "serde_derive", + "serde_json", + "sha1", + "threadpool", + "time 0.3.7", + "tiny_http", + "url 2.2.2", ] [[package]] @@ -3649,15 +3070,9 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.4", + "semver 1.0.6", ] -[[package]] -name = "rustversion" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f" - [[package]] name = "ryu" version = "1.0.9" @@ -3685,12 +3100,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28" -[[package]] -name = "scoped-tls" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" - [[package]] name = "scopeguard" version = "0.3.3" @@ -3720,9 +3129,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012" +checksum = "a4a3381e03edd24287172047536f20cabde766e2cd3e65e6b00fb3af51c4f38d" [[package]] name = "semver-parser" @@ -3738,9 +3147,9 @@ checksum = "9dad3f759919b92c3068c696c15c3d17238234498bbdcc80f2c469606f948ac8" [[package]] name = "serde" -version = "1.0.133" +version = "1.0.136" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97565067517b60e2d1ea8b268e59ce036de907ac523ad83a0475da04e818989a" +checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" dependencies = [ "serde_derive", ] @@ -3760,25 +3169,25 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.133" +version = "1.0.136" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed201699328568d8d08208fdd080e3ff594e6c422e438b6705905da01005d537" +checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" dependencies = [ "proc-macro2 1.0.36", - "quote 1.0.14", - "syn 1.0.85", + "quote 1.0.15", + "syn 1.0.86", ] [[package]] name = "serde_json" -version = "1.0.74" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2bb9cd061c5865d345bb02ca49fcef1391741b672b54a0bf7b679badec3142" +checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95" dependencies = [ "indexmap", "itoa 1.0.1", "ryu", - "serde 1.0.133", + "serde 1.0.136", ] [[package]] @@ -3798,7 +3207,7 @@ checksum = "a4a521f2940385c165a24ee286aa8599633d162077a54bdcae2a6fd5a7bfa7a0" dependencies = [ "indexmap", "ryu", - "serde 1.0.133", + "serde 1.0.136", "yaml-rust", ] @@ -3811,27 +3220,23 @@ dependencies = [ "block-buffer 0.7.3", "digest 0.8.1", "fake-simd", - "opaque-debug 0.2.3", + "opaque-debug", ] [[package]] name = "sha1" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" +checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770" +dependencies = [ + "sha1_smol", +] [[package]] -name = "sha2" -version = "0.9.9" +name = "sha1_smol" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.9.0", - "opaque-debug 0.3.0", -] +checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" [[package]] name = "sha2" @@ -3846,23 +3251,14 @@ dependencies = [ [[package]] name = "sha3" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f935e31cf406e8c0e96c2815a5516181b7004ae8c5f296293221e9b1e356bd" +checksum = "881bf8156c87b6301fc5ca6b27f11eeb2761224c7081e69b409d5a1951a70c86" dependencies = [ "digest 0.10.3", "keccak", ] -[[package]] -name = "sharded-slab" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" -dependencies = [ - "lazy_static", -] - [[package]] name = "signal-hook" version = "0.3.13" @@ -3882,12 +3278,6 @@ dependencies = [ "libc", ] -[[package]] -name = "siphasher" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "533494a8f9b724d33625ab53c6c4800f7cc445895924a8ef649222dcb76e938b" - [[package]] name = "slab" version = "0.3.0" @@ -3900,15 +3290,6 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" -[[package]] -name = "slug" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3bc762e6a4b6c6fcaade73e77f9ebc6991b676f88bb2358bddb56560f073373" -dependencies = [ - "deunicode", -] - [[package]] name = "smallvec" version = "0.2.1" @@ -3926,9 +3307,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309" +checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" [[package]] name = "snafu" @@ -3990,15 +3371,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1508efa03c362e23817f96cde18abed596a25219a8b2c66e8db33c03543d315b" dependencies = [ "proc-macro2 1.0.36", - "quote 1.0.14", - "syn 1.0.85", + "quote 1.0.15", + "syn 1.0.86", ] [[package]] name = "socket2" -version = "0.4.2" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516" +checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" dependencies = [ "libc", "winapi 0.3.9", @@ -4015,12 +3396,6 @@ dependencies = [ "nix 0.6.0", ] -[[package]] -name = "spin" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "511254be0c5bcf062b019a6c89c01a664aa359ded62f78aa72c6fc137c0590e5" - [[package]] name = "ssd1306" version = "0.2.6" @@ -4031,88 +3406,12 @@ dependencies = [ "embedded-hal", ] -[[package]] -name = "stable-pattern" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4564168c00635f88eaed410d5efa8131afa8d8699a612c80c455a0ba05c21045" -dependencies = [ - "memchr", -] - [[package]] name = "stable_deref_trait" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" -[[package]] -name = "standback" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff" -dependencies = [ - "version_check 0.9.4", -] - -[[package]] -name = "state" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cf4f5369e6d3044b5e365c9690f451516ac8f0954084622b49ea3fde2f6de5" -dependencies = [ - "loom", -] - -[[package]] -name = "stdweb" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" -dependencies = [ - "discard", - "rustc_version 0.2.3", - "stdweb-derive", - "stdweb-internal-macros", - "stdweb-internal-runtime", - "wasm-bindgen", -] - -[[package]] -name = "stdweb-derive" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" -dependencies = [ - "proc-macro2 1.0.36", - "quote 1.0.14", - "serde 1.0.133", - "serde_derive", - "syn 1.0.85", -] - -[[package]] -name = "stdweb-internal-macros" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" -dependencies = [ - "base-x", - "proc-macro2 1.0.36", - "quote 1.0.14", - "serde 1.0.133", - "serde_derive", - "serde_json", - "sha1", - "syn 1.0.85", -] - -[[package]] -name = "stdweb-internal-runtime" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" - [[package]] name = "string" version = "0.2.1" @@ -4130,9 +3429,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" [[package]] name = "structopt" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40b9788f4202aa75c240ecc9c15c65185e6a39ccdeb0fd5d008b98825464c87c" +checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" dependencies = [ "clap", "lazy_static", @@ -4148,16 +3447,10 @@ dependencies = [ "heck", "proc-macro-error", "proc-macro2 1.0.36", - "quote 1.0.14", - "syn 1.0.85", + "quote 1.0.15", + "syn 1.0.86", ] -[[package]] -name = "subtle" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" - [[package]] name = "syn" version = "0.15.44" @@ -4171,12 +3464,12 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.85" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a684ac3dcd8913827e18cd09a68384ee66c1de24157e3c556c9ab16d85695fb7" +checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b" dependencies = [ "proc-macro2 1.0.36", - "quote 1.0.14", + "quote 1.0.15", "unicode-xid 0.2.2", ] @@ -4187,8 +3480,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2 1.0.36", - "quote 1.0.14", - "syn 1.0.85", + "quote 1.0.15", + "syn 1.0.86", "unicode-xid 0.2.2", ] @@ -4240,7 +3533,7 @@ dependencies = [ "cfg-if 1.0.0", "fastrand", "libc", - "redox_syscall 0.2.10", + "redox_syscall 0.2.11", "remove_dir_all", "winapi 0.3.9", ] @@ -4254,33 +3547,11 @@ dependencies = [ "random", ] -[[package]] -name = "tera" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3cac831b615c25bcef632d1cabf864fa05813baad3d526829db18eb70e8b58d" -dependencies = [ - "chrono", - "chrono-tz", - "globwalk", - "humansize", - "lazy_static", - "percent-encoding 2.1.0", - "pest", - "pest_derive", - "rand 0.8.4", - "regex", - "serde 1.0.133", - "serde_json", - "slug", - "unic-segment", -] - [[package]] name = "termcolor" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" dependencies = [ "winapi-util", ] @@ -4310,17 +3581,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" dependencies = [ "proc-macro2 1.0.36", - "quote 1.0.14", - "syn 1.0.85", + "quote 1.0.15", + "syn 1.0.86", ] [[package]] -name = "thread_local" -version = "1.1.3" +name = "threadpool" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" dependencies = [ - "once_cell", + "num_cpus", ] [[package]] @@ -4336,40 +3607,25 @@ dependencies = [ [[package]] name = "time" -version = "0.2.27" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4752a97f8eebd6854ff91f1c1824cd6160626ac4bd44287f7f4ea2035a02a242" +checksum = "004cbc98f30fa233c61a38bc77e96a9106e65c88f2d3bef182ae952027e5753d" dependencies = [ - "const_fn", "libc", - "standback", - "stdweb", - "time-macros", - "version_check 0.9.4", - "winapi 0.3.9", + "num_threads", ] [[package]] -name = "time-macros" -version = "0.1.1" +name = "tiny_http" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1" +checksum = "9ce51b50006056f590c9b7c3808c3bd70f0d1101666629713866c227d6e58d39" dependencies = [ - "proc-macro-hack", - "time-macros-impl", -] - -[[package]] -name = "time-macros-impl" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f" -dependencies = [ - "proc-macro-hack", - "proc-macro2 1.0.36", - "quote 1.0.14", - "standback", - "syn 1.0.85", + "ascii", + "chrono", + "chunked_transfer", + "log 0.4.14", + "url 2.2.2", ] [[package]] @@ -4431,19 +3687,17 @@ dependencies = [ [[package]] name = "tokio" -version = "1.15.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbbf1c778ec206785635ce8ad57fe52b3009ae9e0c9f574a728f3049d3e55838" +checksum = "2af73ac49756f3f7c01172e34a23e5d0216f6c32333757c2c61feb2bbff5a5ee" dependencies = [ "bytes 1.1.0", "libc", "memchr", - "mio 0.7.14", + "mio 0.8.0", "num_cpus", - "once_cell", "pin-project-lite", - "signal-hook-registry", - "tokio-macros", + "socket2", "winapi 0.3.9", ] @@ -4480,7 +3734,7 @@ dependencies = [ "iovec", "log 0.4.14", "mio 0.6.23", - "scoped-tls 0.1.2", + "scoped-tls", "tokio 0.1.22", "tokio-executor", "tokio-io", @@ -4530,17 +3784,6 @@ dependencies = [ "log 0.4.14", ] -[[package]] -name = "tokio-macros" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7" -dependencies = [ - "proc-macro2 1.0.36", - "quote 1.0.14", - "syn 1.0.85", -] - [[package]] name = "tokio-proto" version = "0.1.1" @@ -4595,7 +3838,7 @@ checksum = "50145484efff8818b5ccd256697f36863f587da82cf8b409c53adf1e840798e3" dependencies = [ "futures-core", "pin-project-lite", - "tokio 1.15.0", + "tokio 1.17.0", ] [[package]] @@ -4695,7 +3938,7 @@ dependencies = [ "futures-sink", "log 0.4.14", "pin-project-lite", - "tokio 1.15.0", + "tokio 1.17.0", ] [[package]] @@ -4705,7 +3948,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" dependencies = [ "indexmap", - "serde 1.0.133", + "serde 1.0.136", ] [[package]] @@ -4716,65 +3959,24 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.29" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" +checksum = "f6c650a8ef0cd2dd93736f033d21cbd1224c5a967aa0c258d00fcf7dafef9b9f" dependencies = [ "cfg-if 1.0.0", "pin-project-lite", - "tracing-attributes", "tracing-core", ] -[[package]] -name = "tracing-attributes" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e" -dependencies = [ - "proc-macro2 1.0.36", - "quote 1.0.14", - "syn 1.0.85", -] - [[package]] name = "tracing-core" -version = "0.1.21" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4" +checksum = "aa31669fa42c09c34d94d8165dd2012e8ff3c66aca50f3bb226b68f216f2706c" dependencies = [ "lazy_static", ] -[[package]] -name = "tracing-log" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3" -dependencies = [ - "lazy_static", - "log 0.4.14", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d81bfa81424cc98cb034b837c985b7a290f592e5b4322f353f94a0ab0f9f594" -dependencies = [ - "ansi_term", - "lazy_static", - "matchers", - "regex", - "sharded-slab", - "smallvec 1.7.0", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", -] - [[package]] name = "try-lock" version = "0.1.0" @@ -4787,87 +3989,21 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" +[[package]] +name = "twoway" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59b11b2b5241ba34be09c3cc85a36e56e48f9888862e19cedf23336d35316ed1" +dependencies = [ + "memchr", +] + [[package]] name = "typenum" version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" -[[package]] -name = "ubyte" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42756bb9e708855de2f8a98195643dff31a97f0485d90d8467b39dc24be9e8fe" -dependencies = [ - "serde 1.0.133", -] - -[[package]] -name = "ucd-trie" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" - -[[package]] -name = "uncased" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5baeed7327e25054889b9bd4f975f32e5f4c5d434042d59ab6cd4142c0a76ed0" -dependencies = [ - "serde 1.0.133", - "version_check 0.9.4", -] - -[[package]] -name = "unic-char-property" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" -dependencies = [ - "unic-char-range", -] - -[[package]] -name = "unic-char-range" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" - -[[package]] -name = "unic-common" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" - -[[package]] -name = "unic-segment" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ed5d26be57f84f176157270c112ef57b86debac9cd21daaabbe56db0f88f23" -dependencies = [ - "unic-ucd-segment", -] - -[[package]] -name = "unic-ucd-segment" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2079c122a62205b421f499da10f3ee0f7697f012f55b675e002483c73ea34700" -dependencies = [ - "unic-char-property", - "unic-char-range", - "unic-ucd-version", -] - -[[package]] -name = "unic-ucd-version" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" -dependencies = [ - "unic-common", -] - [[package]] name = "unicase" version = "2.6.0" @@ -4894,9 +4030,9 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" +checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" [[package]] name = "unicode-width" @@ -4916,27 +4052,29 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" -[[package]] -name = "universal-hash" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" -dependencies = [ - "generic-array 0.14.5", - "subtle", -] - [[package]] name = "url" version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" dependencies = [ - "idna", + "idna 0.1.5", "matches", "percent-encoding 1.0.1", ] +[[package]] +name = "url" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +dependencies = [ + "form_urlencoded", + "idna 0.2.3", + "matches", + "percent-encoding 2.1.0", +] + [[package]] name = "value-bag" version = "1.0.0-alpha.8" @@ -5052,8 +4190,8 @@ dependencies = [ "lazy_static", "log 0.4.14", "proc-macro2 1.0.36", - "quote 1.0.14", - "syn 1.0.85", + "quote 1.0.15", + "syn 1.0.86", "wasm-bindgen-shared", ] @@ -5075,7 +4213,7 @@ version = "0.2.79" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f4203d69e40a52ee523b2529a773d5ffc1dc0071801c87b3d270b471b80ed01" dependencies = [ - "quote 1.0.14", + "quote 1.0.15", "wasm-bindgen-macro-support", ] @@ -5086,8 +4224,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa8a30d46208db204854cadbb5d4baf5fcf8071ba5bf48190c3e59937962ebc" dependencies = [ "proc-macro2 1.0.36", - "quote 1.0.14", - "syn 1.0.85", + "quote 1.0.15", + "syn 1.0.86", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -5184,7 +4322,7 @@ dependencies = [ "rand 0.6.5", "sha-1", "slab 0.4.5", - "url", + "url 1.7.2", ] [[package]] @@ -5199,11 +4337,11 @@ dependencies = [ [[package]] name = "xdg" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a23fe958c70412687039c86f578938b4a0bb50ec788e96bce4d6ab00ddd5803" +checksum = "0c4583db5cbd4c4c0303df2d15af80f0539db703fa1c68802d4cbbd2dd0f88f6" dependencies = [ - "dirs 3.0.2", + "dirs 4.0.0", ] [[package]] @@ -5214,9 +4352,3 @@ checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" dependencies = [ "linked-hash-map 0.5.4", ] - -[[package]] -name = "yansi" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc79f4a1e39857fc00c3f662cbf2651c771f00e9c15fe2abc341806bd46bd71" diff --git a/peach-web/Cargo.toml b/peach-web/Cargo.toml index 4e29dbd..97c4a92 100644 --- a/peach-web/Cargo.toml +++ b/peach-web/Cargo.toml @@ -38,21 +38,13 @@ maintenance = { status = "actively-developed" } base64 = "0.13.0" dirs = "4.0.0" env_logger = "0.8" -#golgi = "0.1.0" golgi = { path = "/home/glyph/Projects/playground/rust/golgi" } lazy_static = "1.4.0" log = "0.4" -nest = "1.0.0" +maud = "0.23.0" peach-lib = { path = "../peach-lib" } -peach-network = { path = "../peach-network", features = ["serde_support"] } -peach-stats = { path = "../peach-stats", features = ["serde_support"] } -rocket = { version = "0.5.0-rc.1", features = ["json", "secrets"] } -serde = { version = "1.0", features = ["derive"] } -serde_json = "1.0" +peach-network = { path = "../peach-network" } +peach-stats = { path = "../peach-stats" } +rouille = "3.5.0" temporary = "0.6.4" -tera = { version = "1.12.1", features = ["builtins"] } xdg = "2.2.0" - -[dependencies.rocket_dyn_templates] -version = "0.1.0-rc.1" -features = ["tera"] diff --git a/peach-web/rouille_refactor b/peach-web/rouille_refactor new file mode 100644 index 0000000..3f651c4 --- /dev/null +++ b/peach-web/rouille_refactor @@ -0,0 +1,19 @@ + + +go slow and steady. + +optimise for few dependencies and short compilation times. + +we do not need to be super fast or feature-rich. + +[ architecture ] + + - use the one-file-per-route patten + +[ tasks ] + + - write the nav and base templates + - get the homepage loading properly + - route handler + - template + - file loading (static assets) diff --git a/peach-web/src/context/mod.rs b/peach-web/src/context/mod.rs index 019dd88..65581c1 100644 --- a/peach-web/src/context/mod.rs +++ b/peach-web/src/context/mod.rs @@ -1,3 +1,3 @@ -pub mod dns; -pub mod network; -pub mod scuttlebutt; +//pub mod dns; +//pub mod network; +//pub mod scuttlebutt; diff --git a/peach-web/src/main.rs b/peach-web/src/main.rs index 8150710..7389d1a 100644 --- a/peach-web/src/main.rs +++ b/peach-web/src/main.rs @@ -8,39 +8,34 @@ //! ## Design //! //! `peach-web` is written primarily in Rust and presents a web interface for -//! interacting with the device. The stack currently consists of Rocket (Rust -//! web framework), Tera (Rust template engine inspired by Jinja2 and the Django -//! template language), HTML, CSS and JavaScript. Additional functionality is -//! provided by JSON-RPC clients for the `peach-network` and `peach-stats` -//! microservices. -//! -//! HTML is rendered server-side. Request handlers call JSON-RPC microservices -//! and serve HTML and assets. A JSON API is exposed for remote calls and -//! dynamic client-side content updates via vanilla JavaScript following -//! unobstructive design principles. Each Tera template is passed a context -//! object. In the case of Rust, this object is a `struct` and must implement -//! `Serialize`. The fields of the context object are available in the context -//! of the template to be rendered. +//! interacting with the device. The stack currently consists of Rouille (Rust +//! micro-web-framework), Maud (an HTML template engine for Rust), HTML and +//! CSS. -mod context; +//mod context; pub mod error; -mod router; -pub mod routes; -#[cfg(test)] -mod tests; +//mod router; +//pub mod routes; +//#[cfg(test)] +//mod tests; +mod templates; pub mod utils; -use std::{process, sync::RwLock}; +use std::sync::RwLock; use lazy_static::lazy_static; -use log::{debug, error, info}; -use peach_lib::{config_manager, config_manager::YAML_PATH as PEACH_CONFIG}; -use rocket::{fairing::AdHoc, serde::Deserialize, Build, Rocket}; +//use log::{debug, error, info}; +use log::info; +//use peach_lib::{config_manager, config_manager::YAML_PATH as PEACH_CONFIG}; +//use rocket::{fairing::AdHoc, serde::Deserialize, Build, Rocket}; + +use rouille::{router, Response}; use utils::Theme; pub type BoxError = Box; +/* /// Application configuration parameters. /// These values are extracted from Rocket's default configuration provider: /// `Config::figment()`. As such, the values are drawn from `Rocket.toml` or @@ -52,14 +47,16 @@ pub struct RocketConfig { disable_auth: bool, standalone_mode: bool, } +*/ lazy_static! { static ref THEME: RwLock = RwLock::new(Theme::Light); } -static WLAN_IFACE: &str = "wlan0"; -static AP_IFACE: &str = "ap0"; +//static WLAN_IFACE: &str = "wlan0"; +//static AP_IFACE: &str = "ap0"; +/* pub fn init_rocket() -> Rocket { info!("Initializing Rocket"); // build a basic rocket instance @@ -84,13 +81,16 @@ pub fn init_rocket() -> Rocket { info!("Attaching application configuration to managed state"); mounted_rocket.attach(AdHoc::config::()) } +*/ -/// Launch the peach-web rocket server. -#[rocket::main] -async fn main() { +const HOSTNAME_AND_PORT: &str = "localhost:8000"; + +/// Launch the peach-web server. +fn main() { // initialize logger env_logger::init(); + /* // check if /var/lib/peachcloud/config.yml exists if !std::path::Path::new(PEACH_CONFIG).exists() { info!("PeachCloud configuration file not found; loading default values"); @@ -102,14 +102,29 @@ async fn main() { // this ensures a config file is created if it does not already exist config_manager::save_peach_config(config).expect("peachcloud configuration saving failed"); } + */ - // initialize rocket - let rocket = init_rocket(); + info!("Launching web server..."); - // launch rocket - info!("Launching Rocket"); - if let Err(e) = rocket.launch().await { - error!("Error in Rocket application: {}", e); - process::exit(1); - } + // the `start_server` starts listening forever on the given address. + rouille::start_server(HOSTNAME_AND_PORT, move |request| { + info!("Now listening on {}", HOSTNAME_AND_PORT); + + // static file server + // matches on assets in the `static` directory + let response = rouille::match_assets(&request, "static"); + if response.is_success() { + return response; + } + + router!(request, + (GET) (/) => { + Response::html(templates::home::build()) + }, + + // The code block is called if none of the other blocks matches the request. + // We return an empty response with a 404 status code. + _ => Response::empty_404() + ) + }); } diff --git a/peach-web/src/routes/mod.rs b/peach-web/src/routes/mod.rs index 830e23b..d7078c2 100644 --- a/peach-web/src/routes/mod.rs +++ b/peach-web/src/routes/mod.rs @@ -1,6 +1,6 @@ -pub mod authentication; -pub mod catchers; +//pub mod authentication; +//pub mod catchers; pub mod index; -pub mod scuttlebutt; -pub mod settings; -pub mod status; +//pub mod scuttlebutt; +//pub mod settings; +//pub mod status; diff --git a/peach-web/src/templates/base.rs b/peach-web/src/templates/base.rs new file mode 100644 index 0000000..48430af --- /dev/null +++ b/peach-web/src/templates/base.rs @@ -0,0 +1,23 @@ +use maud::{html, PreEscaped, DOCTYPE}; + +/// Base template builder. +/// +/// Takes an HTML body as input and splices it into the base template. +pub fn build(body: PreEscaped) -> PreEscaped { + html! { + (DOCTYPE) + html lang="en" data-theme="light"; + head { + meta charset="utf-8"; + meta name="description" content="PeachCloud web interface"; + meta name="author" content="glyph and notplants"; + meta name="viewport" content="width=devide-width, initial-scale=1.0"; + link rel="stylesheet" href="/css/peachcloud.css"; + link rel="stylesheet" href="/css/_variables.css"; + title { "PeachCloud" } + } + body { + (body) + } + } +} diff --git a/peach-web/src/templates/home.rs b/peach-web/src/templates/home.rs new file mode 100644 index 0000000..2dc1223 --- /dev/null +++ b/peach-web/src/templates/home.rs @@ -0,0 +1,118 @@ +use maud::{html, PreEscaped}; +use peach_lib::sbot::SbotStatus; + +use crate::templates; + +/// Read the state of the go-sbot process and define status-related +/// elements accordingly. +fn render_status_elements<'a>() -> (&'a str, &'a str, &'a str) { + // retrieve go-sbot systemd process status + let sbot_status = SbotStatus::read(); + + // conditionally render the center circle class, center circle text and + // status circle class color based on the go-sbot process state + if let Ok(status) = sbot_status { + if status.state == Some("active".to_string()) { + ( + "circle circle-large circle-success", + "^_^", + "circle circle-small border-circle-small border-success", + ) + } else if status.state == Some("inactive".to_string()) { + ( + "circle circle-large circle-warning", + "z_z", + "circle circle-small border-circle-small border-warning", + ) + } else { + ( + "circle circle-large circle-danger", + "x_x", + "circle circle-small border-circle-small border-danger", + ) + } + } else { + ( + "circle circle-large circle-danger", + "x_x", + "circle circle-small border-circle-small border-danger", + ) + } +} + +/// Home template builder. +pub fn build<'a>() -> PreEscaped { + let (center_circle_class, center_circle_text, status_circle_class) = render_status_elements(); + + // render the home template html + let home_template = html! { + (PreEscaped("")) + div class="grid" { + (PreEscaped("")) + (PreEscaped("")) + a class="top-left" href="/scuttlebutt/peers" title="Scuttlebutt Peers" { + div class="circle circle-small border-circle-small border-ssb" { + img class="icon-medium" src="/icons/users.svg"; + } + } + (PreEscaped("")) + (PreEscaped("")) + a class="top-middle" href="/scuttlebutt/profile" title="Profile" { + div class="circle circle-small border-circle-small border-ssb" { + img class="icon-medium" src="/icons/user.svg"; + } + } + (PreEscaped("")) + (PreEscaped("")) + a class="top-right" href="/scuttlebutt/private" title="Private Messages" { + div class="circle circle-small border-circle-small border-ssb" { + img class="icon-medium" src="/icons/envelope.svg"; + } + } + (PreEscaped("")) + a class="middle" { + div class=(center_circle_class) { + p style="font-size: 4rem; color: var(--near-black);" { + (center_circle_text) + } + } + } + (PreEscaped("")) + (PreEscaped("")) + a class="bottom-left" href="/status/scuttlebutt" title="Status" { + div class=(status_circle_class) { + img class="icon-medium" src="/icons/heart-pulse.svg"; + } + } + /* + TODO: render the path of the status circle button based on the mode + {%- if standalone_mode == true -%} + + {% else -%} + + {%- endif -%} + */ + (PreEscaped("")) + (PreEscaped("")) + a class="bottom-middle" href="/guide" title="Guide" { + div class="circle circle-small border-circle-small border-info" { + img class="icon-medium" src="/icons/book.svg"; + } + } + (PreEscaped("")) + (PreEscaped("")) + a class="bottom-right" href="/settings" title="Settings" { + div class="circle circle-small border-circle-small border-settings" { + img class="icon-medium" src="/icons/cog.svg"; + } + } + } + }; + + // wrap the nav bars around the home template content + // title is "" and back button link is `None` because this is the homepage + let body = templates::nav::build(home_template, "", None); + + // render the base template with the provided body + templates::base::build(body) +} diff --git a/peach-web/src/templates/mod.rs b/peach-web/src/templates/mod.rs new file mode 100644 index 0000000..7bfc9fc --- /dev/null +++ b/peach-web/src/templates/mod.rs @@ -0,0 +1,3 @@ +mod base; +pub mod home; +pub mod nav; diff --git a/peach-web/src/templates/nav.rs b/peach-web/src/templates/nav.rs new file mode 100644 index 0000000..7c67ff2 --- /dev/null +++ b/peach-web/src/templates/nav.rs @@ -0,0 +1,59 @@ +use maud::{html, PreEscaped}; + +use crate::utils; + +/// Navigation template builder. +/// +/// Takes the main HTML content as input and splices it into the navigation template. +pub fn build(main: PreEscaped, title: &str, back: Option<&str>) -> PreEscaped { + // retrieve the current theme value + let theme = utils::get_theme(); + + // conditionally render the hermies icon and theme-switcher icon with correct link + let (hermies, switcher) = match theme.as_str() { + // if we're using the dark theme, render light icons and "light" query param + "dark" => ( + "/icons/hermies_hex_light.svg", + html! { + a class="nav-item" href="/theme?theme=light" { + img class="icon-medium nav-icon-right icon-active" title="Toggle theme" src="/icons/sun.png" alt="Sun"; + } + }, + ), + // otherwise, assume we're using light mode + _ => ( + "/icons/hermies_hex.svg", + html! { + a class="nav-item" href="/theme?theme=dark" { + img class="icon-medium nav-icon-right icon-active" title="Toggle theme" src="/icons/moon.png" alt="Moon"; + } + }, + ), + }; + + html! { + (PreEscaped("")) + nav class="nav-bar" { + a class="nav-item" href=[back] title="Back" { + img class="icon-medium nav-icon-left icon-active" src="/icons/back.svg" alt="Back"; + } + h1 class="nav-title" { (title) } + a class="nav-item" id="logoutButton" href="/logout" title="Logout" { + img class="icon-medium nav-icon-right icon-active" src="/icons/enter.svg" alt="Enter"; + } + } + (PreEscaped("")) + main { (main) } + (PreEscaped("")) + nav class="nav-bar" { + a class="nav-item" href="https://scuttlebutt.nz/" { + img class="icon-medium nav-icon-left" title="Scuttlebutt Website" src=(hermies) alt="Secure Scuttlebutt"; + } + a class="nav-item" href="/" { + img class="icon nav-icon-left" src="/icons/peach-icon.png" alt="PeachCloud" title="Home"; + } + // render the pre-defined theme-switcher icon + (switcher) + } + } +} diff --git a/peach-web/src/utils.rs b/peach-web/src/utils.rs index 5b85099..fc63575 100644 --- a/peach-web/src/utils.rs +++ b/peach-web/src/utils.rs @@ -1,3 +1,30 @@ +use log::info; + +use crate::THEME; + +// THEME FUNCTIONS + +#[derive(Debug, Copy, Clone)] +pub enum Theme { + Light, + Dark, +} + +pub fn get_theme() -> String { + let current_theme = THEME.read().unwrap(); + match *current_theme { + Theme::Dark => "dark".to_string(), + _ => "light".to_string(), + } +} + +pub fn set_theme(theme: Theme) { + info!("set ui theme to: {:?}", theme); + let mut writable_theme = THEME.write().unwrap(); + *writable_theme = theme; +} + +/* pub mod monitor; use std::io::prelude::*; @@ -84,28 +111,6 @@ pub async fn write_blob_to_store(file: &mut TempFile<'_>) -> Result String { - let current_theme = THEME.read().unwrap(); - match *current_theme { - Theme::Dark => "dark".to_string(), - _ => "light".to_string(), - } -} - -pub fn set_theme(theme: Theme) { - info!("set ui theme to: {:?}", theme); - let mut writable_theme = THEME.write().unwrap(); - *writable_theme = theme; -} - // HELPER FUNCTIONS #[derive(Debug, Serialize)] @@ -122,3 +127,4 @@ pub enum TemplateOrRedirect { Template(Template), Redirect(Redirect), } +*/