diff --git a/Cargo.lock b/Cargo.lock index f969e285bc..aa7b5354bb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,133 +2,139 @@ # It is not intended for manual editing. [[package]] name = "actix" -version = "0.8.3" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671ce3d27313f236827a5dd153a1073ad03ef31fc77f562020263e7830cf1ef7" +checksum = "a4af87564ff659dee8f9981540cac9418c45e910c8072fdedd643a262a38fcaf" dependencies = [ "actix-http", "actix-rt", "actix_derive", "bitflags", - "bytes 0.4.12", - "crossbeam-channel 0.3.9", - "derive_more 0.14.1", + "bytes", + "crossbeam-channel", + "derive_more", "futures", - "hashbrown 0.3.1", "lazy_static", "log", - "parking_lot 0.8.0", - "smallvec 0.6.13", - "tokio-codec", - "tokio-executor", - "tokio-io", - "tokio-tcp", - "tokio-timer", + "parking_lot 0.10.2", + "pin-project", + "smallvec", + "tokio", + "tokio-util 0.2.0", + "trust-dns-proto", "trust-dns-resolver", ] [[package]] name = "actix-codec" -version = "0.1.2" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f2c11af4b06dc935d8e1b1491dad56bfb32febc49096a91e773f8535c176453" +checksum = "09e55f0a5c2ca15795035d90c46bd0e73a5123b72f68f12596d6ba5282051380" dependencies = [ - "bytes 0.4.12", - "futures", + "bitflags", + "bytes", + "futures-core", + "futures-sink", "log", - "tokio-codec", - "tokio-io", + "tokio", + "tokio-util 0.2.0", ] [[package]] name = "actix-connect" -version = "0.2.5" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fade9bd4bb46bacde89f1e726c7a3dd230536092712f5d94d77ca57c087fca0" +checksum = "c95cc9569221e9802bf4c377f6c18b90ef10227d787611decf79fd47d2a8e76c" dependencies = [ "actix-codec", "actix-rt", "actix-service", "actix-utils", - "derive_more 0.15.0", + "derive_more", "either", "futures", - "http 0.1.21", + "http", "log", "openssl", - "tokio-current-thread", + "rustls 0.16.0", "tokio-openssl", - "tokio-tcp", + "tokio-rustls 0.12.3", + "trust-dns-proto", "trust-dns-resolver", + "webpki", ] [[package]] name = "actix-cors" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66e5b071c68ac8ab182e7b7717167ef29ea93e166bc26391f678f19ac08ed129" +checksum = "0a6206917d5c0fdd79d81cec9ef02d3e802df4abf276d96241e1f595d971e002" dependencies = [ "actix-service", "actix-web", - "derive_more 0.14.1", + "derive_more", "futures", ] [[package]] name = "actix-files" -version = "0.1.7" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1ee66089e3453334aac7e96ed10c48b6659f21f407826b92014c8097e4c0511" +checksum = "193b22cb1f7b4ff12a4eb2415d6d19e47e44ea93e05930b30d05375ea29d3529" dependencies = [ "actix-http", "actix-service", "actix-web", "bitflags", - "bytes 0.4.12", - "derive_more 0.15.0", - "futures", + "bytes", + "derive_more", + "futures-core", + "futures-util", "log", "mime", "mime_guess", - "percent-encoding 2.1.0", + "percent-encoding", "v_htmlescape", ] [[package]] name = "actix-http" -version = "0.2.11" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb50f77cd28240d344fd54afd205bae8760a3b0ad448b1716a2aa31e24db139" +checksum = "c16664cc4fdea8030837ad5a845eb231fb93fc3c5c171edfefb52fad92ce9019" dependencies = [ "actix-codec", "actix-connect", - "actix-server-config", + "actix-rt", "actix-service", "actix-threadpool", + "actix-tls", "actix-utils", - "base64 0.10.1", + "base64 0.11.0", "bitflags", "brotli2", - "bytes 0.4.12", + "bytes", "chrono", "copyless", - "derive_more 0.15.0", + "derive_more", "either", "encoding_rs", "failure", "flate2", - "futures", - "h2 0.1.26", - "hashbrown 0.6.3", - "http 0.1.21", + "futures-channel", + "futures-core", + "futures-util", + "fxhash", + "h2", + "http", "httparse", "indexmap", "language-tags", "lazy_static", "log", "mime", - "openssl", - "percent-encoding 2.1.0", + "percent-encoding", + "pin-project", "rand 0.7.3", "regex", "serde", @@ -137,190 +143,203 @@ dependencies = [ "sha1", "slab", "time", - "tokio-current-thread", - "tokio-tcp", - "tokio-timer", - "trust-dns-resolver", +] + +[[package]] +name = "actix-macros" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a60f9ba7c4e6df97f3aacb14bb5c0cd7d98a49dcbaed0d7f292912ad9a6a3ed2" +dependencies = [ + "quote", + "syn", ] [[package]] name = "actix-router" -version = "0.1.5" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23224bb527e204261d0291102cb9b52713084def67d94f7874923baefe04ccf7" +checksum = "9d7a10ca4d94e8c8e7a87c5173aba1b97ba9a6563ca02b0e1cd23531093d3ec8" dependencies = [ - "bytes 0.4.12", - "http 0.1.21", + "bytestring", + "http", "log", "regex", "serde", - "string", ] [[package]] name = "actix-rt" -version = "0.2.6" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88c9da1d06603d82ec2b6690fc5b80eb626cd2d6b573f3d9a71d5252e06d098e" +checksum = "143fcc2912e0d1de2bcf4e2f720d2a60c28652ab4179685a1ee159e0fb3db227" dependencies = [ + "actix-macros", "actix-threadpool", "copyless", - "futures", - "tokio-current-thread", - "tokio-executor", - "tokio-reactor", - "tokio-timer", + "futures-channel", + "futures-util", + "smallvec", + "tokio", ] [[package]] name = "actix-server" -version = "0.6.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd626534af8d0a738e5f74901fe603af0445708f91b86a7d763d80df10d562a5" +checksum = "e6d74b464215a473c973a2d7d03a69cc10f4ce1f4b38a7659c5193dc5c675630" dependencies = [ + "actix-codec", "actix-rt", - "actix-server-config", "actix-service", - "futures", + "actix-utils", + "futures-channel", + "futures-util", "log", "mio", - "net2", + "mio-uds", "num_cpus", - "openssl", "slab", - "tokio-io", - "tokio-openssl", - "tokio-reactor", - "tokio-signal", - "tokio-tcp", - "tokio-timer", -] - -[[package]] -name = "actix-server-config" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "483a34989c682d93142bacad6300375bb6ad8002d2e0bb249dbad86128b9ff30" -dependencies = [ - "futures", - "tokio-io", - "tokio-openssl", - "tokio-tcp", + "socket2", ] [[package]] name = "actix-service" -version = "0.4.2" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bca5b48e928841ff7e7dce1fdb5b0d4582f6b1b976e08f4bac3f640643e0773f" +checksum = "0052435d581b5be835d11f4eb3bce417c8af18d87ddf8ace99f8e67e595882bb" dependencies = [ - "futures", + "futures-util", + "pin-project", ] [[package]] name = "actix-testing" -version = "0.1.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af001e97ac6750994824d400a1b7087055aab14317aa012f528d0b2b363f37f1" +checksum = "47239ca38799ab74ee6a8a94d1ce857014b2ac36f242f70f3f75a66f691e791c" dependencies = [ + "actix-macros", "actix-rt", "actix-server", - "actix-server-config", "actix-service", - "futures", "log", - "net2", - "tokio-reactor", - "tokio-tcp", + "socket2", ] [[package]] name = "actix-threadpool" -version = "0.1.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b5ae85d13da7e6fb86b1b7bc83185e0e3bd4cc5f421c887e1803796c034d35d" +checksum = "d209f04d002854b9afd3743032a27b066158817965bf5d036824d19ac2cc0e30" dependencies = [ - "derive_more 0.15.0", - "futures", + "derive_more", + "futures-channel", "lazy_static", "log", "num_cpus", - "parking_lot 0.9.0", + "parking_lot 0.11.0", "threadpool", ] +[[package]] +name = "actix-tls" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e5b4faaf105e9a6d389c606c298dcdb033061b00d532af9df56ff3a54995a8" +dependencies = [ + "actix-codec", + "actix-rt", + "actix-service", + "actix-utils", + "derive_more", + "either", + "futures", + "log", + "openssl", + "rustls 0.16.0", + "tokio-openssl", + "tokio-rustls 0.12.3", + "webpki", + "webpki-roots 0.17.0", +] + [[package]] name = "actix-utils" -version = "0.4.7" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "908c3109948f5c37a8b57fd343a37dcad5bb1d90bfd06300ac96b17bbe017b95" +checksum = "fcf8f5631bf01adec2267808f00e228b761c60c0584cc9fa0b5364f41d147f4e" dependencies = [ "actix-codec", + "actix-rt", "actix-service", - "bytes 0.4.12", + "bitflags", + "bytes", "either", "futures", "log", - "tokio-current-thread", - "tokio-timer", + "pin-project", + "slab", ] [[package]] name = "actix-web" -version = "1.0.9" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af3a1b967cdbacb903c4b9ae71257a7f098d881b25eb483d0c468b7dac579b03" +checksum = "3158e822461040822f0dbf1735b9c2ce1f95f93b651d7a7aded00b1efbb1f635" dependencies = [ "actix-codec", "actix-http", + "actix-macros", "actix-router", "actix-rt", "actix-server", - "actix-server-config", "actix-service", "actix-testing", "actix-threadpool", + "actix-tls", "actix-utils", "actix-web-codegen", "awc", - "bytes 0.4.12", - "derive_more 0.15.0", + "bytes", + "derive_more", "encoding_rs", "futures", - "hashbrown 0.6.3", + "fxhash", "log", "mime", "net2", "openssl", - "parking_lot 0.9.0", + "pin-project", "regex", + "rustls 0.16.0", "serde", "serde_json", "serde_urlencoded", "time", - "url 2.1.1", + "url", ] [[package]] name = "actix-web-codegen" -version = "0.1.3" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "068a33520e21c1eea89726be4d6b3ce2e6b81046904367e1677287695a043abb" +checksum = "a71bf475cbe07281d0b3696abb48212db118e7e23219f13596ce865235ff5766" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.38", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "actix_derive" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf5f6d7bf2d220ae8b4a7ae02a572bb35b7c4806b24049af905ab8110de156c" +checksum = "b95aceadaf327f18f0df5962fedc1bde2f870566a0b9f65c89508a3b1f79334c" dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "syn 0.15.44", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -344,15 +363,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" -[[package]] -name = "ahash" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f33b5018f120946c1dcf279194f238a9f146725593ead1c08fa47ff22b0b5d3" -dependencies = [ - "const-random", -] - [[package]] name = "aho-corasick" version = "0.7.13" @@ -415,9 +425,9 @@ version = "0.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "caae68055714ff28740f310927e04f2eba76ff580b16fb18ed90073ee71646f7" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.38", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -445,26 +455,27 @@ checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" [[package]] name = "awc" -version = "0.2.8" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e995283278dd3bf0449e7534e77184adb1570c0de8b6a50bf7c9d01ad8db8c4" +checksum = "d7601d4d1d7ef2335d6597a41b5fe069f6ab799b85f53565ab390e7b7065aac5" dependencies = [ "actix-codec", "actix-http", + "actix-rt", "actix-service", - "base64 0.10.1", - "bytes 0.4.12", - "derive_more 0.15.0", - "futures", + "base64 0.11.0", + "bytes", + "derive_more", + "futures-core", "log", "mime", "openssl", - "percent-encoding 2.1.0", + "percent-encoding", "rand 0.7.3", + "rustls 0.16.0", "serde", "serde_json", "serde_urlencoded", - "tokio-timer", ] [[package]] @@ -616,19 +627,18 @@ checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" [[package]] name = "bytes" -version = "0.4.12" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" -dependencies = [ - "byteorder", - "iovec", -] +checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" [[package]] -name = "bytes" -version = "0.5.6" +name = "bytestring" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" +checksum = "fc7c05fa5172da78a62d9949d662d2ac89d4cc7355d7b49adee5163f1fb3f363" +dependencies = [ + "bytes", +] [[package]] name = "candid" @@ -659,9 +669,9 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab31ccaf3ab1184bab4a139afb0d23c3aa54144d4a92ef0d0de7653cad4f679f" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.38", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -805,26 +815,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "const-random" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f1af9ac737b2dd2d577701e59fd09ba34822f6f2ebdb30a7647405d9e55e16a" -dependencies = [ - "const-random-macro", - "proc-macro-hack", -] - -[[package]] -name = "const-random-macro" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25e4c606eb459dd29f7c57b2e0879f2b6f14ee130918c2b78ccb58a9624e6c7a" -dependencies = [ - "getrandom", - "proc-macro-hack", -] - [[package]] name = "constant_time_eq" version = "0.1.5" @@ -875,20 +865,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69323bff1fb41c635347b8ead484a5ca6c3f11914d784170b158d8449ab07f8e" dependencies = [ "cfg-if", - "crossbeam-channel 0.4.3", + "crossbeam-channel", "crossbeam-deque", "crossbeam-epoch", "crossbeam-queue", - "crossbeam-utils 0.7.2", -] - -[[package]] -name = "crossbeam-channel" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ec7fcd21571dc78f96cc96243cab8d8f035247c3efd16c687be154c3fa9efa" -dependencies = [ - "crossbeam-utils 0.6.6", + "crossbeam-utils", ] [[package]] @@ -898,7 +879,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ee0cc8804d5393478d743b035099520087a5186f3b93fa58cec08fa62407b6" dependencies = [ "cfg-if", - "crossbeam-utils 0.7.2", + "crossbeam-utils", ] [[package]] @@ -908,7 +889,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" dependencies = [ "crossbeam-epoch", - "crossbeam-utils 0.7.2", + "crossbeam-utils", "maybe-uninit", ] @@ -920,7 +901,7 @@ checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" dependencies = [ "autocfg 1.0.0", "cfg-if", - "crossbeam-utils 0.7.2", + "crossbeam-utils", "lazy_static", "maybe-uninit", "memoffset", @@ -934,20 +915,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" dependencies = [ "cfg-if", - "crossbeam-utils 0.7.2", + "crossbeam-utils", "maybe-uninit", ] -[[package]] -name = "crossbeam-utils" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6" -dependencies = [ - "cfg-if", - "lazy_static", -] - [[package]] name = "crossbeam-utils" version = "0.7.2" @@ -971,35 +942,20 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb582b60359da160a9477ee80f15c8d784c477e69c217ef2cdd4169c24ea380f" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.38", -] - -[[package]] -name = "derive_more" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d944ac6003ed268757ef1ee686753b57efc5fcf0ebe7b64c9fc81e7e32ff839" -dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "rustc_version", - "syn 0.15.44", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "derive_more" -version = "0.15.0" +version = "0.99.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a141330240c921ec6d074a3e188a7c7ef95668bb95e7d44fa0e5778ec2a7afe" +checksum = "298998b1cf6b5b2c8a7b023dfd45821825ce3ba8a8af55c921a0e734e4653f76" dependencies = [ - "lazy_static", - "proc-macro2 0.4.30", - "quote 0.6.13", - "regex", - "rustc_version", - "syn 0.15.44", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -1058,7 +1014,7 @@ dependencies = [ "thiserror", "tokio", "toml", - "url 2.1.1", + "url", "walkdir", "wasmparser", ] @@ -1198,13 +1154,14 @@ dependencies = [ [[package]] name = "enum-as-inner" -version = "0.2.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d58266c97445680766be408285e798d3401c6d4c378ec5552e78737e681e37d" +checksum = "7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595" dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "syn 0.15.44", + "heck", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -1236,9 +1193,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f47da3a72ec598d9c8937a7ebca8962a5c7a1f28444e38c2b33c771ba3f55f05" dependencies = [ "proc-macro-error", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.38", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -1257,9 +1214,9 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.38", + "proc-macro2", + "quote", + "syn", "synstructure", ] @@ -1296,7 +1253,6 @@ dependencies = [ "cfg-if", "crc32fast", "libc", - "miniz-sys", "miniz_oxide", ] @@ -1379,9 +1335,18 @@ checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" [[package]] name = "futures" -version = "0.1.29" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef" +checksum = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] [[package]] name = "futures-channel" @@ -1390,6 +1355,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5" dependencies = [ "futures-core", + "futures-sink", ] [[package]] @@ -1398,6 +1364,17 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399" +[[package]] +name = "futures-executor" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + [[package]] name = "futures-io" version = "0.3.5" @@ -1411,9 +1388,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39" dependencies = [ "proc-macro-hack", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.38", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -1437,9 +1414,11 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6" dependencies = [ + "futures-channel", "futures-core", "futures-io", "futures-macro", + "futures-sink", "futures-task", "memchr", "pin-project", @@ -1449,6 +1428,15 @@ dependencies = [ "slab", ] +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + [[package]] name = "generic-array" version = "0.12.3" @@ -1485,40 +1473,22 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aaf91faf136cb47367fa430cd46e37a788775e7fa104f8b4bcb3861dc389b724" -[[package]] -name = "h2" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5b34c246847f938a410a03c5458c7fee2274436675e76d8b903c08efc29c462" -dependencies = [ - "byteorder", - "bytes 0.4.12", - "fnv", - "futures", - "http 0.1.21", - "indexmap", - "log", - "slab", - "string", - "tokio-io", -] - [[package]] name = "h2" version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "993f9e0baeed60001cf565546b0d3dbe6a6ad23f2bd31644a133c641eccf6d53" dependencies = [ - "bytes 0.5.6", + "bytes", "fnv", "futures-core", "futures-sink", "futures-util", - "http 0.2.1", + "http", "indexmap", "slab", "tokio", - "tokio-util", + "tokio-util 0.3.1", "tracing", ] @@ -1530,27 +1500,20 @@ checksum = "d36fab90f82edc3c747f9d438e06cf0a491055896f2a279638bb5beed6c40177" [[package]] name = "hashbrown" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29fba9abe4742d586dfd0c06ae4f7e73a1c2d86b856933509b269d82cdf06e18" - -[[package]] -name = "hashbrown" -version = "0.6.3" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6073d0ca812575946eb5f35ff68dbe519907b25c42530389ff946dc84c6ead" +checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25" dependencies = [ - "ahash", - "autocfg 0.1.7", + "autocfg 1.0.0", ] [[package]] -name = "hashbrown" -version = "0.8.2" +name = "heck" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25" +checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" dependencies = [ - "autocfg 1.0.0", + "unicode-segmentation", ] [[package]] @@ -1589,24 +1552,13 @@ dependencies = [ "notify", ] -[[package]] -name = "http" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6ccf5ede3a895d8856620237b2f02972c1bbc78d2965ad7fe8838d4a0ed41f0" -dependencies = [ - "bytes 0.4.12", - "fnv", - "itoa", -] - [[package]] name = "http" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9" dependencies = [ - "bytes 0.5.6", + "bytes", "fnv", "itoa", ] @@ -1617,8 +1569,8 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" dependencies = [ - "bytes 0.5.6", - "http 0.2.1", + "bytes", + "http", ] [[package]] @@ -1642,12 +1594,12 @@ version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e68a8dd9716185d9e64ea473ea6ef63529252e3e27623295a0378a19665d5eb" dependencies = [ - "bytes 0.5.6", + "bytes", "futures-channel", "futures-core", "futures-util", - "h2 0.2.6", - "http 0.2.1", + "h2", + "http", "http-body", "httparse", "itoa", @@ -1666,13 +1618,13 @@ version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37743cc83e8ee85eacfce90f2f4102030d9ff0a95244098d781e9bee4a90abb6" dependencies = [ - "bytes 0.5.6", + "bytes", "futures-util", "hyper", "log", - "rustls", + "rustls 0.18.0", "tokio", - "tokio-rustls", + "tokio-rustls 0.14.0", "webpki", ] @@ -1682,7 +1634,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d979acc56dcb5b8dddba3917601745e877576475aa046df3226eabdecef78eed" dependencies = [ - "bytes 0.5.6", + "bytes", "hyper", "native-tls", "tokio", @@ -1708,12 +1660,12 @@ dependencies = [ "rand 0.7.3", "reqwest", "ring", - "rustls", + "rustls 0.18.0", "serde", "serde_bytes", "serde_cbor", "thiserror", - "url 2.1.1", + "url", "webpki-roots 0.20.0", ] @@ -1729,17 +1681,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "idna" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" -dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", -] - [[package]] name = "idna" version = "0.2.0" @@ -1758,7 +1699,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b45e59b16c76b11bf9738fd5d38879d3bd28ad292d7b313608becb17ae2df9" dependencies = [ "autocfg 1.0.0", - "hashbrown 0.8.2", + "hashbrown", ] [[package]] @@ -1882,7 +1823,7 @@ dependencies = [ "sha2 0.8.2", "string_cache", "term 0.5.2", - "unicode-xid 0.2.1", + "unicode-xid", ] [[package]] @@ -1945,15 +1886,6 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a" -[[package]] -name = "lock_api" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed946d4529956a20f2d63ebe1b69996d5a2137c91913fe3ebbeff957f5bca7ff" -dependencies = [ - "scopeguard", -] - [[package]] name = "lock_api" version = "0.3.4" @@ -1998,10 +1930,10 @@ checksum = "797b1f8a0571b331c1b47e7db245af3dc634838da7a92b3bef4e30376ae1c347" dependencies = [ "beef", "fnv", - "proc-macro2 1.0.19", - "quote 1.0.7", + "proc-macro2", + "quote", "regex-syntax", - "syn 1.0.38", + "syn", "utf8-ranges", ] @@ -2063,16 +1995,6 @@ dependencies = [ "unicase", ] -[[package]] -name = "miniz-sys" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9e3ae51cea1576ceba0dde3d484d30e6e5b86dee0b2d412fe3a16a15c98202" -dependencies = [ - "cc", - "libc", -] - [[package]] name = "miniz_oxide" version = "0.4.0" @@ -2158,9 +2080,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5a615a1ad92048ad5d9633251edb7492b8abc057d7a679a9898476aef173935" dependencies = [ "cfg-if", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.38", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -2307,9 +2229,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c0fd9eba1d5db0994a239e09c1be402d35622277e35468ba891aa5e3188ce7e" dependencies = [ "proc-macro-crate", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.38", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -2377,24 +2299,12 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7767817701cce701d5585b9c4db3cdd02086398322c1d7e8bf5094a96a2ce7" -dependencies = [ - "lock_api 0.2.0", - "parking_lot_core 0.5.0", - "rustc_version", -] - -[[package]] -name = "parking_lot" -version = "0.9.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" +checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e" dependencies = [ "lock_api 0.3.4", - "parking_lot_core 0.6.2", - "rustc_version", + "parking_lot_core 0.7.2", ] [[package]] @@ -2410,32 +2320,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb88cb1cb3790baa6776844f968fea3be44956cf184fa1be5a03341f5491278c" -dependencies = [ - "cfg-if", - "cloudabi 0.0.3", - "libc", - "rand 0.6.5", - "redox_syscall", - "rustc_version", - "smallvec 0.6.13", - "winapi 0.3.9", -] - -[[package]] -name = "parking_lot_core" -version = "0.6.2" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" +checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3" dependencies = [ "cfg-if", "cloudabi 0.0.3", "libc", "redox_syscall", - "rustc_version", - "smallvec 0.6.13", + "smallvec", "winapi 0.3.9", ] @@ -2450,7 +2343,7 @@ dependencies = [ "instant", "libc", "redox_syscall", - "smallvec 1.4.2", + "smallvec", "winapi 0.3.9", ] @@ -2482,12 +2375,6 @@ dependencies = [ "regex", ] -[[package]] -name = "percent-encoding" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" - [[package]] name = "percent-encoding" version = "2.1.0" @@ -2528,9 +2415,9 @@ version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c0e815c3ee9a031fdf5af21c10aa17c573c9c6a566328d99e3936c34e36461f" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.38", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -2618,9 +2505,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.38", + "proc-macro2", + "quote", + "syn", "version_check 0.9.2", ] @@ -2630,8 +2517,8 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", + "proc-macro2", + "quote", "version_check 0.9.2", ] @@ -2647,22 +2534,13 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" -[[package]] -name = "proc-macro2" -version = "0.4.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" -dependencies = [ - "unicode-xid 0.1.0", -] - [[package]] name = "proc-macro2" version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12" dependencies = [ - "unicode-xid 0.2.1", + "unicode-xid", ] [[package]] @@ -2691,22 +2569,13 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" -[[package]] -name = "quote" -version = "0.6.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" -dependencies = [ - "proc-macro2 0.4.30", -] - [[package]] name = "quote" version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" dependencies = [ - "proc-macro2 1.0.19", + "proc-macro2", ] [[package]] @@ -2876,7 +2745,7 @@ checksum = "e92e15d89083484e11353891f1af602cc661426deb9564c298b270c726973280" dependencies = [ "crossbeam-deque", "crossbeam-queue", - "crossbeam-utils 0.7.2", + "crossbeam-utils", "lazy_static", "num_cpus", ] @@ -2941,11 +2810,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12427a5577082c24419c9c417db35cfeb65962efc7675bb6b0d5f1f9d315bfe6" dependencies = [ "base64 0.12.3", - "bytes 0.5.6", + "bytes", "encoding_rs", "futures-core", "futures-util", - "http 0.2.1", + "http", "http-body", "hyper", "hyper-rustls", @@ -2957,16 +2826,16 @@ dependencies = [ "mime", "mime_guess", "native-tls", - "percent-encoding 2.1.0", + "percent-encoding", "pin-project-lite", - "rustls", + "rustls 0.18.0", "serde", "serde_json", "serde_urlencoded", "tokio", - "tokio-rustls", + "tokio-rustls 0.14.0", "tokio-tls", - "url 2.1.1", + "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -3014,7 +2883,7 @@ dependencies = [ "base64 0.11.0", "blake2b_simd", "constant_time_eq", - "crossbeam-utils 0.7.2", + "crossbeam-utils", ] [[package]] @@ -3024,12 +2893,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" [[package]] -name = "rustc_version" -version = "0.2.3" +name = "rustls" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +checksum = "b25a18b1bf7387f0145e7f8324e700805aade3842dd3db2e74e4cdeb4677c09e" dependencies = [ - "semver", + "base64 0.10.1", + "log", + "ring", + "sct", + "webpki", ] [[package]] @@ -3170,9 +3043,9 @@ version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "609feed1d0a73cc36a0182a840a9b37b4a82f0b1150369f0536a9e3f2a31dc48" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.38", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -3192,9 +3065,9 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dc6b7951b17b051f3210b063f12cc17320e2fe30ae05b0fe2a3abb068551c76" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.38", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -3206,7 +3079,7 @@ dependencies = [ "dtoa", "itoa", "serde", - "url 2.1.1", + "url", ] [[package]] @@ -3290,7 +3163,7 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51b3336ce47ce2f96673499fc07eb85e3472727b9a7a2959964b002c2ce8fbbb" dependencies = [ - "crossbeam-channel 0.4.3", + "crossbeam-channel", "slog", "take_mut", "thread_local", @@ -3309,15 +3182,6 @@ dependencies = [ "thread_local", ] -[[package]] -name = "smallvec" -version = "0.6.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6" -dependencies = [ - "maybe-uninit", -] - [[package]] name = "smallvec" version = "1.4.2" @@ -3342,15 +3206,6 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" -[[package]] -name = "string" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24114bfcceb867ca7f71a0d3fe45d45619ec47a6fbfa98cb14e14250bfa5d6d" -dependencies = [ - "bytes 0.4.12", -] - [[package]] name = "string_cache" version = "0.8.0" @@ -3376,26 +3231,15 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" -[[package]] -name = "syn" -version = "0.15.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" -dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "unicode-xid 0.1.0", -] - [[package]] name = "syn" version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e69abc24912995b3038597a7a593be5053eb0fb44f3cc5beec0deb421790c1f4" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "unicode-xid 0.2.1", + "proc-macro2", + "quote", + "unicode-xid", ] [[package]] @@ -3404,10 +3248,10 @@ version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.38", - "unicode-xid 0.2.1", + "proc-macro2", + "quote", + "syn", + "unicode-xid", ] [[package]] @@ -3528,9 +3372,9 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.38", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -3573,88 +3417,42 @@ version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d34ca54d84bf2b5b4d7d31e901a8464f7b60ac145a284fba25ceb801f2ddccd" dependencies = [ - "bytes 0.5.6", + "bytes", "fnv", "futures-core", "iovec", "lazy_static", + "libc", "memchr", "mio", + "mio-uds", "num_cpus", "pin-project-lite", + "signal-hook-registry", "slab", -] - -[[package]] -name = "tokio-codec" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b" -dependencies = [ - "bytes 0.4.12", - "futures", - "tokio-io", -] - -[[package]] -name = "tokio-current-thread" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e" -dependencies = [ - "futures", - "tokio-executor", -] - -[[package]] -name = "tokio-executor" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" -dependencies = [ - "crossbeam-utils 0.7.2", - "futures", -] - -[[package]] -name = "tokio-io" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" -dependencies = [ - "bytes 0.4.12", - "futures", - "log", + "winapi 0.3.9", ] [[package]] name = "tokio-openssl" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771d6246b170ae108d67d9963c23f31a579016c016d73bd4bd7d6ef0252afda7" +checksum = "3c4b08c5f4208e699ede3df2520aca2e82401b2de33f45e96696a074480be594" dependencies = [ - "futures", "openssl", - "tokio-io", + "tokio", ] [[package]] -name = "tokio-reactor" -version = "0.1.12" +name = "tokio-rustls" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" +checksum = "3068d891551949b37681724d6b73666787cc63fa8e255c812a41d2513aff9775" dependencies = [ - "crossbeam-utils 0.7.2", - "futures", - "lazy_static", - "log", - "mio", - "num_cpus", - "parking_lot 0.9.0", - "slab", - "tokio-executor", - "tokio-io", - "tokio-sync", + "futures-core", + "rustls 0.16.0", + "tokio", + "webpki", ] [[package]] @@ -3664,64 +3462,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "228139ddd4fea3fa345a29233009635235833e52807af7ea6448ead03890d6a9" dependencies = [ "futures-core", - "rustls", + "rustls 0.18.0", "tokio", "webpki", ] -[[package]] -name = "tokio-signal" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c34c6e548f101053321cba3da7cbb87a610b85555884c41b07da2eb91aff12" -dependencies = [ - "futures", - "libc", - "mio", - "mio-uds", - "signal-hook-registry", - "tokio-executor", - "tokio-io", - "tokio-reactor", - "winapi 0.3.9", -] - -[[package]] -name = "tokio-sync" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee" -dependencies = [ - "fnv", - "futures", -] - -[[package]] -name = "tokio-tcp" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72" -dependencies = [ - "bytes 0.4.12", - "futures", - "iovec", - "mio", - "tokio-io", - "tokio-reactor", -] - -[[package]] -name = "tokio-timer" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" -dependencies = [ - "crossbeam-utils 0.7.2", - "futures", - "slab", - "tokio-executor", -] - [[package]] name = "tokio-tls" version = "0.3.1" @@ -3733,18 +3478,17 @@ dependencies = [ ] [[package]] -name = "tokio-udp" -version = "0.1.6" +name = "tokio-util" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82" +checksum = "571da51182ec208780505a32528fc5512a8fe1443ab960b3f2f3ef093cd16930" dependencies = [ - "bytes 0.4.12", - "futures", + "bytes", + "futures-core", + "futures-sink", "log", - "mio", - "tokio-codec", - "tokio-io", - "tokio-reactor", + "pin-project-lite", + "tokio", ] [[package]] @@ -3753,7 +3497,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" dependencies = [ - "bytes 0.5.6", + "bytes", "futures-core", "futures-sink", "log", @@ -3804,34 +3548,29 @@ checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41" [[package]] name = "trust-dns-proto" -version = "0.7.4" +version = "0.18.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5559ebdf6c2368ddd11e20b11d6bbaf9e46deb803acd7815e93f5a7b4a6d2901" +checksum = "2a7f3a2ab8a919f5eca52a468866a67ed7d3efa265d48a652a9a3452272b413f" dependencies = [ - "byteorder", + "async-trait", "enum-as-inner", "failure", "futures", - "idna 0.1.5", + "idna", "lazy_static", "log", - "rand 0.6.5", - "smallvec 0.6.13", + "rand 0.7.3", + "smallvec", "socket2", - "tokio-executor", - "tokio-io", - "tokio-reactor", - "tokio-tcp", - "tokio-timer", - "tokio-udp", - "url 1.7.2", + "tokio", + "url", ] [[package]] name = "trust-dns-resolver" -version = "0.11.1" +version = "0.18.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c9992e58dba365798803c0b91018ff6c8d3fc77e06977c4539af2a6bfe0a039" +checksum = "6f90b1502b226f8b2514c6d5b37bafa8c200d7ca4102d57dc36ee0f3b7a04a2f" dependencies = [ "cfg-if", "failure", @@ -3841,8 +3580,8 @@ dependencies = [ "log", "lru-cache", "resolv-conf", - "smallvec 0.6.13", - "tokio-executor", + "smallvec", + "tokio", "trust-dns-proto", ] @@ -3892,16 +3631,16 @@ dependencies = [ ] [[package]] -name = "unicode-width" -version = "0.1.8" +name = "unicode-segmentation" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" +checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0" [[package]] -name = "unicode-xid" -version = "0.1.0" +name = "unicode-width" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" +checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" [[package]] name = "unicode-xid" @@ -3915,26 +3654,15 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" -[[package]] -name = "url" -version = "1.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" -dependencies = [ - "idna 0.1.5", - "matches", - "percent-encoding 1.0.1", -] - [[package]] name = "url" version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb" dependencies = [ - "idna 0.2.0", + "idna", "matches", - "percent-encoding 2.1.0", + "percent-encoding", ] [[package]] @@ -3959,9 +3687,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2ca2a14bc3fc5b64d188b087a7d3a927df87b152e941ccfbc66672e20c467ae" dependencies = [ "nom", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.38", + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -4055,9 +3783,9 @@ dependencies = [ "bumpalo", "lazy_static", "log", - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.38", + "proc-macro2", + "quote", + "syn", "wasm-bindgen-shared", ] @@ -4079,7 +3807,7 @@ version = "0.2.67" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97c57cefa5fa80e2ba15641578b44d36e7a64279bc5ed43c6dbaf329457a2ed2" dependencies = [ - "quote 1.0.7", + "quote", "wasm-bindgen-macro-support", ] @@ -4089,9 +3817,9 @@ version = "0.2.67" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841a6d1c35c6f596ccea1f82504a192a60378f64b3bb0261904ad8f2f5657556" dependencies = [ - "proc-macro2 1.0.19", - "quote 1.0.7", - "syn 1.0.38", + "proc-macro2", + "quote", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -4128,6 +3856,15 @@ dependencies = [ "untrusted", ] +[[package]] +name = "webpki-roots" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a262ae37dd9d60f60dd473d1158f9fbebf110ba7b6a5051c8160460f6043718b" +dependencies = [ + "webpki", +] + [[package]] name = "webpki-roots" version = "0.19.0" diff --git a/src/dfx/Cargo.toml b/src/dfx/Cargo.toml index e301954379..2e24f991f0 100644 --- a/src/dfx/Cargo.toml +++ b/src/dfx/Cargo.toml @@ -14,11 +14,11 @@ flate2 = "1.0.11" tar = "0.4.26" [dependencies] -actix = "0.8.3" -actix-cors = "0.1" -actix-files = "0.1.4" -actix-server = "0.6.1" -actix-web = { version = "1.0.8", features = [ "default", "openssl", "ssl" ] } +actix = "0.9.0" +actix-cors = "0.2.0" +actix-files = "0.2.2" +actix-server = "1.0.3" +actix-web = { version = "2.0.0", features = [ "default", "openssl", "rustls" ] } atty = "0.2.13" base64 = "0.11.0" candid = "0.6.0" @@ -30,7 +30,7 @@ delay = "0.2.0" dialoguer = "0.6.2" erased-serde = "0.3.10" flate2 = "1.0.11" -futures = "0.1.28" +futures = "0.3.5" hex = "0.4.2" indicatif = "0.13.0" lazy-init = "0.3.0" diff --git a/src/dfx/src/commands/start.rs b/src/dfx/src/commands/start.rs index 8dc1ffbc9b..997942ee9d 100644 --- a/src/dfx/src/commands/start.rs +++ b/src/dfx/src/commands/start.rs @@ -11,7 +11,7 @@ use clap::{App, Arg, ArgMatches, SubCommand}; use crossbeam::channel::{Receiver, Sender}; use crossbeam::unbounded; use delay::{Delay, Waiter}; -use futures::future::Future; +use futures::executor::block_on; use ic_agent::{Agent, AgentConfig}; use indicatif::{ProgressBar, ProgressDrawTarget}; use std::fs; @@ -247,19 +247,13 @@ pub fn exec(env: &dyn Environment, args: &ArgMatches<'_>) -> DfxResult { // block. b.set_message("Terminating proxy..."); - actix_handler - .recv() - .expect("Failed to receive server") - .stop(true) - // We do not use await here on purpose. We should probably follow up - // and have this function be async, internal of exec. - .wait() - .map_err(|e| { - DfxError::RuntimeError(Error::new( - ErrorKind::Other, - format!("Failed to stop server: {:?}", e), - )) - })?; + block_on( + actix_handler + .recv() + .expect("Failed to receive server") + .stop(true), + ); + b.set_message("Gathering proxy thread..."); // Join and handle errors for the frontend watchdog thread. frontend_watchdog.join().map_err(|e| { diff --git a/src/dfx/src/lib/proxy.rs b/src/dfx/src/lib/proxy.rs index 65304d714f..4eab5d939a 100644 --- a/src/dfx/src/lib/proxy.rs +++ b/src/dfx/src/lib/proxy.rs @@ -2,7 +2,6 @@ use crate::lib::network::network_descriptor::NetworkDescriptor; use crate::lib::webserver::run_webserver; use actix_server::Server; use crossbeam::channel::{Receiver, Sender}; -use futures::future::Future; use std::io::Result; use std::io::{Error, ErrorKind}; use std::net::SocketAddr; @@ -49,7 +48,7 @@ impl Proxy { } // Shutdown and start are private (for now). - fn shutdown(self) -> Result { + async fn shutdown(self) -> Result { match self.server_handle { // In case the server is down we recall new() as in the // future we might add more bookkeeping logic, which will @@ -67,10 +66,7 @@ impl Proxy { )) })? .stop(true) - .wait() - .map_err(|e| { - Error::new(ErrorKind::Other, format!("Failed to stop server: {:?}", e)) - })?; + .await; Ok(Self { config: self.config, server_handle: ProxyServer::Down, @@ -119,9 +115,9 @@ impl Proxy { } /// Restart a proxy with a new configuration. - pub fn restart(self, sender: Sender, receiver: Receiver) -> Result { + pub async fn restart(self, sender: Sender, receiver: Receiver) -> Result { let config = self.config.clone(); - let mut handle = self.shutdown()?; + let mut handle = self.shutdown().await?; handle.config = config; handle.start(sender, receiver) } diff --git a/src/dfx/src/lib/proxy_process.rs b/src/dfx/src/lib/proxy_process.rs index 9562940418..60ed331200 100644 --- a/src/dfx/src/lib/proxy_process.rs +++ b/src/dfx/src/lib/proxy_process.rs @@ -2,6 +2,7 @@ use crate::lib::error::DfxError; use crate::lib::proxy::{CoordinateProxy, Proxy, ProxyConfig}; use crossbeam::unbounded; +use futures::executor::block_on; use hotwatch::{Event, Hotwatch}; use indicatif::ProgressBar; use std::fs; @@ -90,18 +91,17 @@ pub fn spawn_and_update_proxy( let _ = hotwatch; let proxy = proxy.set_client_api_port(port.clone()); b.set_message(format!("Replica bound at {}", port).as_str()); - proxy - .restart( - proxy_supervisor.inform_parent.clone(), - proxy_supervisor.server_receiver.clone(), - ) - .unwrap_or_else(|e| { - proxy_supervisor - .request_stop_echo - .try_send(()) - .expect("Replica thread couldn't signal parent to stop"); - panic!("Failed to restart the proxy {:?}", e); - }); + block_on(proxy.restart( + proxy_supervisor.inform_parent.clone(), + proxy_supervisor.server_receiver.clone(), + )) + .unwrap_or_else(|e| { + proxy_supervisor + .request_stop_echo + .try_send(()) + .expect("Replica thread couldn't signal parent to stop"); + panic!("Failed to restart the proxy {:?}", e); + }); while proxy_supervisor.is_killed.is_empty() { std::thread::sleep(Duration::from_millis(1000)); diff --git a/src/dfx/src/lib/webserver.rs b/src/dfx/src/lib/webserver.rs index 9e35707e8d..bc038cf757 100644 --- a/src/dfx/src/lib/webserver.rs +++ b/src/dfx/src/lib/webserver.rs @@ -3,7 +3,6 @@ use crate::lib::locations::canister_did_location; use crate::lib::models::canister_id_store::CanisterIdStore; use crate::lib::network::network_descriptor::NetworkDescriptor; use crate::util::check_candid_file; -use actix::dev::Stream; use actix::System; use actix_cors::Cors; use actix_server::Server; @@ -12,7 +11,7 @@ use actix_web::{ http, middleware, web, App, Error, HttpMessage, HttpRequest, HttpResponse, HttpServer, }; use crossbeam::channel::Sender; -use futures::Future; +use futures::StreamExt; use serde::Deserialize; use slog::{debug, info, trace, Logger}; use std::net::SocketAddr; @@ -49,7 +48,7 @@ struct CandidRequest { format: Option, } -fn candid( +async fn candid( web::Query(info): web::Query, data: web::Data>, ) -> DfxResult { @@ -79,12 +78,12 @@ fn candid( Ok(response) } -fn forward( +async fn forward( req: HttpRequest, - payload: web::Payload, + mut payload: web::Payload, client: web::Data, actix_data: web::Data>>, -) -> impl Future { +) -> Result { let mut data = actix_data.lock().unwrap(); data.counter += 1; let count = data.counter; @@ -118,59 +117,51 @@ fn forward( // TODO(hansl): move this all to async/await. Jeez.... // (PS: the reason I don't do this yet is moving actix to async/await is a bit more // involved than replacing this single function) - payload - .map_err(Error::from) - .fold(web::BytesMut::new(), move |mut body, chunk| { - body.extend_from_slice(&chunk); - Ok::<_, Error>(body) - }) - .and_then(move |req_body| { - // We streamed the whole body in memory. Let's log some informations. - debug!( - logger, - "Request ({}) to replica ({})", - indicatif::HumanBytes(req_body.len() as u64), - url, - ); - trace!(logger, " headers"); - for (k, v) in req.head().headers.iter() { - trace!(logger, " {}: {}", k, v.to_str().unwrap()); - } - trace!(logger, " body {}", hex::encode(&req_body)); + let mut req_body = web::BytesMut::new(); + while let Some(item) = payload.next().await { + req_body.extend_from_slice(&item?); + } + debug!( + logger, + "Request ({}) to replica ({})", + indicatif::HumanBytes(req_body.len() as u64), + url, + ); + trace!(logger, " headers"); + for (k, v) in req.head().headers.iter() { + trace!(logger, " {}: {}", k, v.to_str().unwrap()); + } + trace!(logger, " body {}", hex::encode(&req_body)); + let mut response = forwarded_req + .send_body(req_body) + .await + .map_err(Error::from)?; - forwarded_req - .send_body(req_body) - .map_err(Error::from) - .and_then(|mut res| { - res.take_payload() - .map_err(Error::from) - .fold(web::BytesMut::new(), move |mut body, chunk| { - body.extend_from_slice(&chunk); - Ok::<_, Error>(body) - }) - .and_then(move |res_body| { - let mut client_resp = HttpResponse::build(res.status()); - for (header_name, header_value) in res - .headers() - .iter() - .filter(|(h, _)| *h != "connection" && *h != "content-length") - { - client_resp.header(header_name.clone(), header_value.clone()); - } + let mut payload = response.take_payload(); + let mut resp_body = web::BytesMut::new(); + while let Some(item) = payload.next().await { + resp_body.extend_from_slice(&item?); + } - debug!( - logger, - "Response ({}) with status code {}", - indicatif::HumanBytes(res_body.len() as u64), - res.status().as_u16() - ); - trace!(logger, " type {}", res.content_type()); - trace!(logger, " body {}", hex::encode(&res_body)); + let mut client_resp = HttpResponse::build(response.status()); + for (header_name, header_value) in response + .headers() + .iter() + .filter(|(h, _)| *h != "connection" && *h != "content-length") + { + client_resp.header(header_name.clone(), header_value.clone()); + } - client_resp.body(res_body) - }) - }) - }) + debug!( + logger, + "Response ({}) with status code {}", + indicatif::HumanBytes(resp_body.len() as u64), + response.status().as_u16() + ); + trace!(logger, " type {}", response.content_type()); + trace!(logger, " body {}", hex::encode(&resp_body)); + + Ok(client_resp.body(resp_body)) } /// Run the webserver in the current thread. @@ -220,10 +211,11 @@ pub fn run_webserver( .allowed_headers(vec![http::header::AUTHORIZATION, http::header::ACCEPT]) .allowed_header(http::header::CONTENT_TYPE) .send_wildcard() - .max_age(3600), + .max_age(3600) + .finish(), ) .wrap(middleware::Logger::default()) - .service(web::scope("/api").default_service(web::to_async(forward))) + .service(web::scope("/api").default_service(web::to(forward))) .service(web::resource("/_/candid").route(web::get().to(candid))) .default_service(actix_files::Files::new("/", &serve_dir).index_file("index.html")) }) @@ -231,7 +223,7 @@ pub fn run_webserver( // N.B. This is an arbitrary timeout for now. .shutdown_timeout(SHUTDOWN_WAIT_TIME) .system_exit() - .start(); + .run(); // Warning: Note that HttpServer provides its own signal // handler. That means if we provide signal handling beyond basic