├── .gitignore ├── src ├── lib.rs ├── main.rs ├── config.rs ├── worker.rs └── status.rs ├── .travis.yml ├── Cargo.toml ├── README.md └── Cargo.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | **/*.rs.bk 3 | -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- 1 | pub mod config; 2 | pub mod status; 3 | pub mod worker; 4 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: rust 2 | rust: 3 | - stable 4 | - beta 5 | - nightly 6 | matrix: 7 | allow_failures: 8 | - rust: nightly 9 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use disturbance::config::Config; 2 | use disturbance::worker::workers; 3 | use failure::Error; 4 | use structopt::StructOpt; 5 | 6 | fn main() -> Result<(), Error> { 7 | let config = Config::from_args(); 8 | workers(config) 9 | } 10 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "disturbance" 3 | description = "Monitor disturbances in a web service's behaviour." 4 | homepage = "https://github.com/crodjer/disturbance" 5 | repository = "https://github.com/crodjer/disturbance" 6 | keywords = ["deployment", "benchmarking", "monitoring", "web"] 7 | version = "0.2.0" 8 | authors = ["Rohan Jain "] 9 | license = "GPL-3.0-or-later" 10 | edition = "2018" 11 | readme = "README.md" 12 | 13 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 14 | 15 | [dependencies] 16 | crossbeam = "0.7.0" 17 | ctrlc = "3.1.3" 18 | failure = "0.1.6" 19 | reqwest = "0.9.22" 20 | structopt = "0.3.1" 21 | -------------------------------------------------------------------------------- /src/config.rs: -------------------------------------------------------------------------------- 1 | use structopt::StructOpt; 2 | 3 | /// Monitor disturbances in a web service's behaviour. 4 | #[derive(Clone, StructOpt, Debug)] 5 | pub struct Config { 6 | /// The web service's URL to monitor 7 | pub url: String, 8 | /// Response should match 9 | #[structopt(short, long)] 10 | pub matches: Option, 11 | /// Response should not match 12 | #[structopt(short, long)] 13 | pub excludes: Option, 14 | /// Wait time (in ms) between requests per worker. 15 | #[structopt(short = "w", long = "wait", default_value = "100")] 16 | pub wait: u64, 17 | /// Request timeout in seconds 18 | #[structopt(short = "t", long = "timeout", default_value = "5")] 19 | pub timeout: usize, 20 | /// Parallelism 21 | #[structopt(short = "p", long = "parallelism", default_value = "2")] 22 | pub parallelism: usize, 23 | } 24 | -------------------------------------------------------------------------------- /src/worker.rs: -------------------------------------------------------------------------------- 1 | use crossbeam::channel::{select, unbounded, Receiver, Sender}; 2 | use ctrlc; 3 | 4 | use failure::Error; 5 | 6 | use std::collections::HashMap; 7 | use std::io::stdout; 8 | use std::io::Write; 9 | use std::thread; 10 | use std::time::Duration; 11 | 12 | use crate::config::Config; 13 | use crate::status::Status; 14 | 15 | const CLEAR_SCREEN: &str = "\x1b[2J\x1b[0f"; 16 | 17 | enum Event { 18 | Status(usize, Status), 19 | Interrupt, 20 | } 21 | 22 | fn render(distribution: &HashMap) -> String { 23 | distribution 24 | .iter() 25 | .map(|(status, count)| format!("{} => {}", status, count)) 26 | .collect::>() 27 | .join("\n") 28 | } 29 | 30 | fn worker(id: usize, config: Config, tx: Sender) -> (Sender<()>, thread::JoinHandle<()>) { 31 | let (int_tx, int_rx): (Sender<()>, Receiver<()>) = unbounded(); 32 | let worker = thread::spawn(move || loop { 33 | select! { 34 | recv(int_rx) -> _ => break, 35 | default(Duration::from_millis(config.wait)) => (), 36 | } 37 | 38 | if tx.send(Event::Status(id, Status::check(&config))).is_err() { 39 | break; 40 | } 41 | }); 42 | 43 | (int_tx, worker) 44 | } 45 | 46 | pub fn workers(config: Config) -> Result<(), Error> { 47 | let (tx, rx): (Sender, Receiver) = unbounded(); 48 | let mut children = Vec::new(); 49 | let mut interrupt_channels = Vec::new(); 50 | let mut distribution = HashMap::new(); 51 | 52 | for id in 0..config.parallelism { 53 | let (int_tx, child) = worker(id, config.clone(), tx.clone()); 54 | interrupt_channels.push(int_tx); 55 | children.push(child); 56 | } 57 | 58 | ctrlc::set_handler(move || { 59 | for int_tx in &interrupt_channels { 60 | int_tx.send(()).unwrap(); 61 | } 62 | 63 | tx.clone().send(Event::Interrupt).unwrap(); 64 | })?; 65 | 66 | loop { 67 | match rx.recv()? { 68 | Event::Status(_id, status) => { 69 | let count = match distribution.get(&status) { 70 | Some(count) => count + 1, 71 | None => 1, 72 | }; 73 | distribution.insert(status, count); 74 | println!("{}{}", CLEAR_SCREEN, render(&distribution)); 75 | stdout().flush()?; 76 | } 77 | Event::Interrupt => { 78 | break; 79 | } 80 | }; 81 | } 82 | 83 | for child in children { 84 | let _ = child.join(); 85 | } 86 | 87 | println!("{}", render(&distribution)); 88 | 89 | Ok(()) 90 | } 91 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Disturbance 2 | 3 | [![Crate](https://img.shields.io/crates/v/disturbance.svg)](https://crates.io/crates/disturbance) 4 | [![Build Status](https://travis-ci.com/crodjer/disturbance.svg?branch=master)](https://travis-ci.com/crodjer/disturbance) 5 | 6 | Monitor disturbances in a web service's behaviour. 7 | 8 | You may use `disturbance` as a monitoring utility which is up over an 9 | extended period of time to know if a service ever went down/unhealthy. 10 | Eg: Uptime during a deployment. 11 | 12 | ## Usage 13 | ``` 14 | USAGE: 15 | disturbance [OPTIONS] 16 | 17 | FLAGS: 18 | -h, --help Prints help information 19 | -V, --version Prints version information 20 | 21 | OPTIONS: 22 | -e, --excludes Response should not match 23 | -m, --matches Response should match 24 | -p, --parallelism Parallelism [default: 2] 25 | -t, --timeout Request timeout in seconds [default: 5] 26 | -w, --wait Wait time (in ms) between requests per worker. [default: 100] 27 | 28 | ARGS: 29 | The web service's URL to monitor`` 30 | ``` 31 | 32 | ## Example 33 | 34 | - Check a website's response distribution to simple `GET` requets. 35 | ``` 36 | $ disturbance https://example.com/ 37 | Success(200) => 14 38 | ``` 39 | 40 | - Check a website while also requring a pattern to be present. 41 | With a pattern that isn't present in the responses: 42 | ``` 43 | $ disturbance https://example.com/ -m test 44 | DoesNotMatch => 407 45 | ``` 46 | With intermittent matches (potentially unstable website): 47 | ``` 48 | $ disturbance https://example.com/ -m true 49 | Success(200) => 64, DoesNotMatch => 10 50 | ``` 51 | - Use an exlusion pattern, to ensure that responses never contain the 52 | string that you paas. 53 | ``` 54 | $ disturbance https://example.com/ -e '"success":false' 55 | DoesNotExclude => 12 56 | ``` 57 | Or a good service: 58 | ``` 59 | $ disturbance https://example.com/ -e '"success":true' 60 | Success(200) => 18 61 | ``` 62 | - Configure parallelism to control the number of parallel workers 63 | (defaults to 2). 64 | ``` 65 | $ disturbance https://example.com/ -p 4 66 | Success(200) => 128 67 | ``` 68 | 69 | - Set a custom timeout in seconds (default 5) 70 | ``` 71 | $ disturbance https://example.com/ -t 1 72 | ErrorResponse("https://example.com/: timed out") => 4 73 | ``` 74 | 75 | - Set a custom wait time between requests (default: 100 ms), per 76 | worker. If you want 77 | ``` 78 | $ disturbance https://example.com/ -t 1 -w 500 79 | ErrorResponse("https://example.com/: timed out") => 4 80 | ``` 81 | -------------------------------------------------------------------------------- /src/status.rs: -------------------------------------------------------------------------------- 1 | use crate::config::Config; 2 | use reqwest; 3 | use std::fmt; 4 | use std::time::Duration; 5 | 6 | #[derive(Debug, PartialEq, Eq, Hash)] 7 | pub enum Status { 8 | Success(u16), 9 | DoesNotMatch, 10 | DoesNotExclude, 11 | ErrorStatus(u16), 12 | ErrorResponse(String), 13 | } 14 | 15 | fn categorise_response(status: u16, text: &str, config: &Config) -> Status { 16 | if status >= 400 { 17 | Status::ErrorStatus(status) 18 | } else if config 19 | .matches 20 | .as_ref() 21 | .map_or(false, |pattern| !text.contains(pattern)) 22 | { 23 | Status::DoesNotMatch 24 | } else if config 25 | .excludes 26 | .as_ref() 27 | .map_or(false, |pattern| text.contains(pattern)) 28 | { 29 | Status::DoesNotExclude 30 | } else { 31 | Status::Success(status) 32 | } 33 | } 34 | 35 | impl From for Status { 36 | fn from(err: reqwest::Error) -> Self { 37 | Status::ErrorResponse(err.to_string()) 38 | } 39 | } 40 | 41 | impl fmt::Display for Status { 42 | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { 43 | write!(f, "{:?}", self) 44 | } 45 | } 46 | 47 | impl Status { 48 | fn check_result(config: &Config) -> Result { 49 | let client = reqwest::Client::builder() 50 | .timeout(Duration::from_secs(config.timeout as u64)) 51 | .build()?; 52 | let mut resp = client.get(&config.url).send()?; 53 | let text = resp.text()?; 54 | 55 | Ok(categorise_response(resp.status().as_u16(), &text, config)) 56 | } 57 | 58 | pub fn check(config: &Config) -> Status { 59 | Self::check_result(config).unwrap_or_else(|status| status) 60 | } 61 | } 62 | 63 | #[cfg(test)] 64 | mod test { 65 | use super::*; 66 | 67 | #[test] 68 | fn test_categorize_response_with_matches_and_excludes() { 69 | let config = Config { 70 | url: "https://example.com".to_string(), 71 | matches: Some("Foo".to_string()), 72 | excludes: Some("Baz".to_string()), 73 | parallelism: 1, 74 | wait: 100, 75 | timeout: 5, 76 | }; 77 | 78 | assert_eq!( 79 | categorise_response(200, "Foo Bar", &config), 80 | Status::Success(200) 81 | ); 82 | 83 | assert_eq!( 84 | categorise_response(200, "Bar", &config), 85 | Status::DoesNotMatch 86 | ); 87 | 88 | assert_eq!( 89 | categorise_response(200, "Foo Bar Baz", &config), 90 | Status::DoesNotExclude 91 | ); 92 | 93 | assert_eq!( 94 | categorise_response(500, "", &config), 95 | Status::ErrorStatus(500) 96 | ) 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "adler32" 7 | version = "1.0.4" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2" 10 | 11 | [[package]] 12 | name = "aho-corasick" 13 | version = "0.7.20" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" 16 | dependencies = [ 17 | "memchr", 18 | ] 19 | 20 | [[package]] 21 | name = "ansi_term" 22 | version = "0.11.0" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" 25 | dependencies = [ 26 | "winapi 0.3.8", 27 | ] 28 | 29 | [[package]] 30 | name = "arrayvec" 31 | version = "0.4.12" 32 | source = "registry+https://github.com/rust-lang/crates.io-index" 33 | checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" 34 | dependencies = [ 35 | "nodrop", 36 | ] 37 | 38 | [[package]] 39 | name = "atty" 40 | version = "0.2.13" 41 | source = "registry+https://github.com/rust-lang/crates.io-index" 42 | checksum = "1803c647a3ec87095e7ae7acfca019e98de5ec9a7d01343f611cf3152ed71a90" 43 | dependencies = [ 44 | "libc", 45 | "winapi 0.3.8", 46 | ] 47 | 48 | [[package]] 49 | name = "autocfg" 50 | version = "0.1.6" 51 | source = "registry+https://github.com/rust-lang/crates.io-index" 52 | checksum = "b671c8fb71b457dd4ae18c4ba1e59aa81793daacc361d82fcd410cef0d491875" 53 | 54 | [[package]] 55 | name = "backtrace" 56 | version = "0.3.38" 57 | source = "registry+https://github.com/rust-lang/crates.io-index" 58 | checksum = "690a62be8920ccf773ee00ef0968649b0e724cda8bd5b12286302b4ae955fdf5" 59 | dependencies = [ 60 | "backtrace-sys", 61 | "cfg-if 0.1.10", 62 | "libc", 63 | "rustc-demangle", 64 | ] 65 | 66 | [[package]] 67 | name = "backtrace-sys" 68 | version = "0.1.31" 69 | source = "registry+https://github.com/rust-lang/crates.io-index" 70 | checksum = "82a830b4ef2d1124a711c71d263c5abdc710ef8e907bd508c88be475cebc422b" 71 | dependencies = [ 72 | "cc", 73 | "libc", 74 | ] 75 | 76 | [[package]] 77 | name = "base64" 78 | version = "0.10.1" 79 | source = "registry+https://github.com/rust-lang/crates.io-index" 80 | checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" 81 | dependencies = [ 82 | "byteorder", 83 | ] 84 | 85 | [[package]] 86 | name = "bitflags" 87 | version = "1.2.1" 88 | source = "registry+https://github.com/rust-lang/crates.io-index" 89 | checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" 90 | 91 | [[package]] 92 | name = "byteorder" 93 | version = "1.3.2" 94 | source = "registry+https://github.com/rust-lang/crates.io-index" 95 | checksum = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5" 96 | 97 | [[package]] 98 | name = "bytes" 99 | version = "0.4.12" 100 | source = "registry+https://github.com/rust-lang/crates.io-index" 101 | checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" 102 | dependencies = [ 103 | "byteorder", 104 | "either", 105 | "iovec", 106 | ] 107 | 108 | [[package]] 109 | name = "c2-chacha" 110 | version = "0.2.2" 111 | source = "registry+https://github.com/rust-lang/crates.io-index" 112 | checksum = "7d64d04786e0f528460fc884753cf8dddcc466be308f6026f8e355c41a0e4101" 113 | dependencies = [ 114 | "lazy_static", 115 | "ppv-lite86", 116 | ] 117 | 118 | [[package]] 119 | name = "cc" 120 | version = "1.0.79" 121 | source = "registry+https://github.com/rust-lang/crates.io-index" 122 | checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" 123 | 124 | [[package]] 125 | name = "cfg-if" 126 | version = "0.1.10" 127 | source = "registry+https://github.com/rust-lang/crates.io-index" 128 | checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" 129 | 130 | [[package]] 131 | name = "cfg-if" 132 | version = "1.0.0" 133 | source = "registry+https://github.com/rust-lang/crates.io-index" 134 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 135 | 136 | [[package]] 137 | name = "clap" 138 | version = "2.33.0" 139 | source = "registry+https://github.com/rust-lang/crates.io-index" 140 | checksum = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" 141 | dependencies = [ 142 | "ansi_term", 143 | "atty", 144 | "bitflags", 145 | "strsim", 146 | "textwrap", 147 | "unicode-width", 148 | "vec_map", 149 | ] 150 | 151 | [[package]] 152 | name = "cloudabi" 153 | version = "0.0.3" 154 | source = "registry+https://github.com/rust-lang/crates.io-index" 155 | checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" 156 | dependencies = [ 157 | "bitflags", 158 | ] 159 | 160 | [[package]] 161 | name = "cookie" 162 | version = "0.12.0" 163 | source = "registry+https://github.com/rust-lang/crates.io-index" 164 | checksum = "888604f00b3db336d2af898ec3c1d5d0ddf5e6d462220f2ededc33a87ac4bbd5" 165 | dependencies = [ 166 | "time", 167 | "url 1.7.2", 168 | ] 169 | 170 | [[package]] 171 | name = "cookie_store" 172 | version = "0.7.0" 173 | source = "registry+https://github.com/rust-lang/crates.io-index" 174 | checksum = "46750b3f362965f197996c4448e4a0935e791bf7d6631bfce9ee0af3d24c919c" 175 | dependencies = [ 176 | "cookie", 177 | "failure", 178 | "idna 0.1.5", 179 | "log", 180 | "publicsuffix", 181 | "serde", 182 | "serde_json", 183 | "time", 184 | "try_from", 185 | "url 1.7.2", 186 | ] 187 | 188 | [[package]] 189 | name = "core-foundation" 190 | version = "0.6.4" 191 | source = "registry+https://github.com/rust-lang/crates.io-index" 192 | checksum = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d" 193 | dependencies = [ 194 | "core-foundation-sys", 195 | "libc", 196 | ] 197 | 198 | [[package]] 199 | name = "core-foundation-sys" 200 | version = "0.6.2" 201 | source = "registry+https://github.com/rust-lang/crates.io-index" 202 | checksum = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b" 203 | 204 | [[package]] 205 | name = "crc32fast" 206 | version = "1.2.0" 207 | source = "registry+https://github.com/rust-lang/crates.io-index" 208 | checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" 209 | dependencies = [ 210 | "cfg-if 0.1.10", 211 | ] 212 | 213 | [[package]] 214 | name = "crossbeam" 215 | version = "0.7.0" 216 | source = "registry+https://github.com/rust-lang/crates.io-index" 217 | checksum = "c0ed8eb69717048f2cff523d82eff984adf9f1dce1f40995d8c9aa254ebfd9f5" 218 | dependencies = [ 219 | "cfg-if 0.1.10", 220 | "crossbeam-channel", 221 | "crossbeam-deque", 222 | "crossbeam-epoch", 223 | "crossbeam-queue", 224 | "crossbeam-utils", 225 | ] 226 | 227 | [[package]] 228 | name = "crossbeam-channel" 229 | version = "0.3.9" 230 | source = "registry+https://github.com/rust-lang/crates.io-index" 231 | checksum = "c8ec7fcd21571dc78f96cc96243cab8d8f035247c3efd16c687be154c3fa9efa" 232 | dependencies = [ 233 | "crossbeam-utils", 234 | ] 235 | 236 | [[package]] 237 | name = "crossbeam-deque" 238 | version = "0.7.1" 239 | source = "registry+https://github.com/rust-lang/crates.io-index" 240 | checksum = "b18cd2e169ad86297e6bc0ad9aa679aee9daa4f19e8163860faf7c164e4f5a71" 241 | dependencies = [ 242 | "crossbeam-epoch", 243 | "crossbeam-utils", 244 | ] 245 | 246 | [[package]] 247 | name = "crossbeam-epoch" 248 | version = "0.7.2" 249 | source = "registry+https://github.com/rust-lang/crates.io-index" 250 | checksum = "fedcd6772e37f3da2a9af9bf12ebe046c0dfe657992377b4df982a2b54cd37a9" 251 | dependencies = [ 252 | "arrayvec", 253 | "cfg-if 0.1.10", 254 | "crossbeam-utils", 255 | "lazy_static", 256 | "memoffset", 257 | "scopeguard", 258 | ] 259 | 260 | [[package]] 261 | name = "crossbeam-queue" 262 | version = "0.1.2" 263 | source = "registry+https://github.com/rust-lang/crates.io-index" 264 | checksum = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b" 265 | dependencies = [ 266 | "crossbeam-utils", 267 | ] 268 | 269 | [[package]] 270 | name = "crossbeam-utils" 271 | version = "0.6.6" 272 | source = "registry+https://github.com/rust-lang/crates.io-index" 273 | checksum = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6" 274 | dependencies = [ 275 | "cfg-if 0.1.10", 276 | "lazy_static", 277 | ] 278 | 279 | [[package]] 280 | name = "ctrlc" 281 | version = "3.1.3" 282 | source = "registry+https://github.com/rust-lang/crates.io-index" 283 | checksum = "c7dfd2d8b4c82121dfdff120f818e09fc4380b0b7e17a742081a89b94853e87f" 284 | dependencies = [ 285 | "nix", 286 | "winapi 0.3.8", 287 | ] 288 | 289 | [[package]] 290 | name = "disturbance" 291 | version = "0.2.0" 292 | dependencies = [ 293 | "crossbeam", 294 | "ctrlc", 295 | "failure", 296 | "reqwest", 297 | "structopt", 298 | ] 299 | 300 | [[package]] 301 | name = "dtoa" 302 | version = "0.4.4" 303 | source = "registry+https://github.com/rust-lang/crates.io-index" 304 | checksum = "ea57b42383d091c85abcc2706240b94ab2a8fa1fc81c10ff23c4de06e2a90b5e" 305 | 306 | [[package]] 307 | name = "either" 308 | version = "1.5.3" 309 | source = "registry+https://github.com/rust-lang/crates.io-index" 310 | checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" 311 | 312 | [[package]] 313 | name = "encoding_rs" 314 | version = "0.8.20" 315 | source = "registry+https://github.com/rust-lang/crates.io-index" 316 | checksum = "87240518927716f79692c2ed85bfe6e98196d18c6401ec75355760233a7e12e9" 317 | dependencies = [ 318 | "cfg-if 0.1.10", 319 | ] 320 | 321 | [[package]] 322 | name = "error-chain" 323 | version = "0.12.1" 324 | source = "registry+https://github.com/rust-lang/crates.io-index" 325 | checksum = "3ab49e9dcb602294bc42f9a7dfc9bc6e936fca4418ea300dbfb84fe16de0b7d9" 326 | dependencies = [ 327 | "backtrace", 328 | "version_check", 329 | ] 330 | 331 | [[package]] 332 | name = "failure" 333 | version = "0.1.6" 334 | source = "registry+https://github.com/rust-lang/crates.io-index" 335 | checksum = "f8273f13c977665c5db7eb2b99ae520952fe5ac831ae4cd09d80c4c7042b5ed9" 336 | dependencies = [ 337 | "backtrace", 338 | "failure_derive", 339 | ] 340 | 341 | [[package]] 342 | name = "failure_derive" 343 | version = "0.1.6" 344 | source = "registry+https://github.com/rust-lang/crates.io-index" 345 | checksum = "0bc225b78e0391e4b8683440bf2e63c2deeeb2ce5189eab46e2b68c6d3725d08" 346 | dependencies = [ 347 | "proc-macro2", 348 | "quote", 349 | "syn", 350 | "synstructure", 351 | ] 352 | 353 | [[package]] 354 | name = "flate2" 355 | version = "1.0.12" 356 | source = "registry+https://github.com/rust-lang/crates.io-index" 357 | checksum = "ad3c5233c9a940c8719031b423d7e6c16af66e031cb0420b0896f5245bf181d3" 358 | dependencies = [ 359 | "cfg-if 0.1.10", 360 | "crc32fast", 361 | "libc", 362 | "miniz_oxide", 363 | ] 364 | 365 | [[package]] 366 | name = "fnv" 367 | version = "1.0.6" 368 | source = "registry+https://github.com/rust-lang/crates.io-index" 369 | checksum = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" 370 | 371 | [[package]] 372 | name = "foreign-types" 373 | version = "0.3.2" 374 | source = "registry+https://github.com/rust-lang/crates.io-index" 375 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 376 | dependencies = [ 377 | "foreign-types-shared", 378 | ] 379 | 380 | [[package]] 381 | name = "foreign-types-shared" 382 | version = "0.1.1" 383 | source = "registry+https://github.com/rust-lang/crates.io-index" 384 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 385 | 386 | [[package]] 387 | name = "fuchsia-cprng" 388 | version = "0.1.1" 389 | source = "registry+https://github.com/rust-lang/crates.io-index" 390 | checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" 391 | 392 | [[package]] 393 | name = "fuchsia-zircon" 394 | version = "0.3.3" 395 | source = "registry+https://github.com/rust-lang/crates.io-index" 396 | checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" 397 | dependencies = [ 398 | "bitflags", 399 | "fuchsia-zircon-sys", 400 | ] 401 | 402 | [[package]] 403 | name = "fuchsia-zircon-sys" 404 | version = "0.3.3" 405 | source = "registry+https://github.com/rust-lang/crates.io-index" 406 | checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" 407 | 408 | [[package]] 409 | name = "futures" 410 | version = "0.1.29" 411 | source = "registry+https://github.com/rust-lang/crates.io-index" 412 | checksum = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef" 413 | 414 | [[package]] 415 | name = "futures-cpupool" 416 | version = "0.1.8" 417 | source = "registry+https://github.com/rust-lang/crates.io-index" 418 | checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" 419 | dependencies = [ 420 | "futures", 421 | "num_cpus", 422 | ] 423 | 424 | [[package]] 425 | name = "getrandom" 426 | version = "0.1.12" 427 | source = "registry+https://github.com/rust-lang/crates.io-index" 428 | checksum = "473a1265acc8ff1e808cd0a1af8cee3c2ee5200916058a2ca113c29f2d903571" 429 | dependencies = [ 430 | "cfg-if 0.1.10", 431 | "libc", 432 | "wasi", 433 | ] 434 | 435 | [[package]] 436 | name = "h2" 437 | version = "0.1.26" 438 | source = "registry+https://github.com/rust-lang/crates.io-index" 439 | checksum = "a5b34c246847f938a410a03c5458c7fee2274436675e76d8b903c08efc29c462" 440 | dependencies = [ 441 | "byteorder", 442 | "bytes", 443 | "fnv", 444 | "futures", 445 | "http", 446 | "indexmap", 447 | "log", 448 | "slab", 449 | "string", 450 | "tokio-io", 451 | ] 452 | 453 | [[package]] 454 | name = "heck" 455 | version = "0.3.1" 456 | source = "registry+https://github.com/rust-lang/crates.io-index" 457 | checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" 458 | dependencies = [ 459 | "unicode-segmentation", 460 | ] 461 | 462 | [[package]] 463 | name = "http" 464 | version = "0.1.21" 465 | source = "registry+https://github.com/rust-lang/crates.io-index" 466 | checksum = "d6ccf5ede3a895d8856620237b2f02972c1bbc78d2965ad7fe8838d4a0ed41f0" 467 | dependencies = [ 468 | "bytes", 469 | "fnv", 470 | "itoa", 471 | ] 472 | 473 | [[package]] 474 | name = "http-body" 475 | version = "0.1.0" 476 | source = "registry+https://github.com/rust-lang/crates.io-index" 477 | checksum = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d" 478 | dependencies = [ 479 | "bytes", 480 | "futures", 481 | "http", 482 | "tokio-buf", 483 | ] 484 | 485 | [[package]] 486 | name = "httparse" 487 | version = "1.3.4" 488 | source = "registry+https://github.com/rust-lang/crates.io-index" 489 | checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" 490 | 491 | [[package]] 492 | name = "hyper" 493 | version = "0.12.36" 494 | source = "registry+https://github.com/rust-lang/crates.io-index" 495 | checksum = "5c843caf6296fc1f93444735205af9ed4e109a539005abb2564ae1d6fad34c52" 496 | dependencies = [ 497 | "bytes", 498 | "futures", 499 | "futures-cpupool", 500 | "h2", 501 | "http", 502 | "http-body", 503 | "httparse", 504 | "iovec", 505 | "itoa", 506 | "log", 507 | "net2", 508 | "rustc_version", 509 | "time", 510 | "tokio", 511 | "tokio-buf", 512 | "tokio-executor", 513 | "tokio-io", 514 | "tokio-reactor", 515 | "tokio-tcp", 516 | "tokio-threadpool", 517 | "tokio-timer", 518 | "want", 519 | ] 520 | 521 | [[package]] 522 | name = "hyper-tls" 523 | version = "0.3.2" 524 | source = "registry+https://github.com/rust-lang/crates.io-index" 525 | checksum = "3a800d6aa50af4b5850b2b0f659625ce9504df908e9733b635720483be26174f" 526 | dependencies = [ 527 | "bytes", 528 | "futures", 529 | "hyper", 530 | "native-tls", 531 | "tokio-io", 532 | ] 533 | 534 | [[package]] 535 | name = "idna" 536 | version = "0.1.5" 537 | source = "registry+https://github.com/rust-lang/crates.io-index" 538 | checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" 539 | dependencies = [ 540 | "matches", 541 | "unicode-bidi", 542 | "unicode-normalization", 543 | ] 544 | 545 | [[package]] 546 | name = "idna" 547 | version = "0.2.0" 548 | source = "registry+https://github.com/rust-lang/crates.io-index" 549 | checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" 550 | dependencies = [ 551 | "matches", 552 | "unicode-bidi", 553 | "unicode-normalization", 554 | ] 555 | 556 | [[package]] 557 | name = "indexmap" 558 | version = "1.2.0" 559 | source = "registry+https://github.com/rust-lang/crates.io-index" 560 | checksum = "a61202fbe46c4a951e9404a720a0180bcf3212c750d735cb5c4ba4dc551299f3" 561 | 562 | [[package]] 563 | name = "iovec" 564 | version = "0.1.4" 565 | source = "registry+https://github.com/rust-lang/crates.io-index" 566 | checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" 567 | dependencies = [ 568 | "libc", 569 | ] 570 | 571 | [[package]] 572 | name = "itoa" 573 | version = "0.4.4" 574 | source = "registry+https://github.com/rust-lang/crates.io-index" 575 | checksum = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f" 576 | 577 | [[package]] 578 | name = "kernel32-sys" 579 | version = "0.2.2" 580 | source = "registry+https://github.com/rust-lang/crates.io-index" 581 | checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" 582 | dependencies = [ 583 | "winapi 0.2.8", 584 | "winapi-build", 585 | ] 586 | 587 | [[package]] 588 | name = "lazy_static" 589 | version = "1.4.0" 590 | source = "registry+https://github.com/rust-lang/crates.io-index" 591 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 592 | 593 | [[package]] 594 | name = "libc" 595 | version = "0.2.64" 596 | source = "registry+https://github.com/rust-lang/crates.io-index" 597 | checksum = "74dfca3d9957906e8d1e6a0b641dc9a59848e793f1da2165889fd4f62d10d79c" 598 | 599 | [[package]] 600 | name = "lock_api" 601 | version = "0.3.1" 602 | source = "registry+https://github.com/rust-lang/crates.io-index" 603 | checksum = "f8912e782533a93a167888781b836336a6ca5da6175c05944c86cf28c31104dc" 604 | dependencies = [ 605 | "scopeguard", 606 | ] 607 | 608 | [[package]] 609 | name = "log" 610 | version = "0.4.8" 611 | source = "registry+https://github.com/rust-lang/crates.io-index" 612 | checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" 613 | dependencies = [ 614 | "cfg-if 0.1.10", 615 | ] 616 | 617 | [[package]] 618 | name = "matches" 619 | version = "0.1.8" 620 | source = "registry+https://github.com/rust-lang/crates.io-index" 621 | checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" 622 | 623 | [[package]] 624 | name = "maybe-uninit" 625 | version = "2.0.0" 626 | source = "registry+https://github.com/rust-lang/crates.io-index" 627 | checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" 628 | 629 | [[package]] 630 | name = "memchr" 631 | version = "2.5.0" 632 | source = "registry+https://github.com/rust-lang/crates.io-index" 633 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 634 | 635 | [[package]] 636 | name = "memoffset" 637 | version = "0.5.1" 638 | source = "registry+https://github.com/rust-lang/crates.io-index" 639 | checksum = "ce6075db033bbbb7ee5a0bbd3a3186bbae616f57fb001c485c7ff77955f8177f" 640 | dependencies = [ 641 | "rustc_version", 642 | ] 643 | 644 | [[package]] 645 | name = "mime" 646 | version = "0.3.14" 647 | source = "registry+https://github.com/rust-lang/crates.io-index" 648 | checksum = "dd1d63acd1b78403cc0c325605908475dd9b9a3acbf65ed8bcab97e27014afcf" 649 | 650 | [[package]] 651 | name = "mime_guess" 652 | version = "2.0.1" 653 | source = "registry+https://github.com/rust-lang/crates.io-index" 654 | checksum = "1a0ed03949aef72dbdf3116a383d7b38b4768e6f960528cd6a6044aa9ed68599" 655 | dependencies = [ 656 | "mime", 657 | "unicase", 658 | ] 659 | 660 | [[package]] 661 | name = "miniz_oxide" 662 | version = "0.3.3" 663 | source = "registry+https://github.com/rust-lang/crates.io-index" 664 | checksum = "304f66c19be2afa56530fa7c39796192eef38618da8d19df725ad7c6d6b2aaae" 665 | dependencies = [ 666 | "adler32", 667 | ] 668 | 669 | [[package]] 670 | name = "mio" 671 | version = "0.6.19" 672 | source = "registry+https://github.com/rust-lang/crates.io-index" 673 | checksum = "83f51996a3ed004ef184e16818edc51fadffe8e7ca68be67f9dee67d84d0ff23" 674 | dependencies = [ 675 | "fuchsia-zircon", 676 | "fuchsia-zircon-sys", 677 | "iovec", 678 | "kernel32-sys", 679 | "libc", 680 | "log", 681 | "miow", 682 | "net2", 683 | "slab", 684 | "winapi 0.2.8", 685 | ] 686 | 687 | [[package]] 688 | name = "miow" 689 | version = "0.2.2" 690 | source = "registry+https://github.com/rust-lang/crates.io-index" 691 | checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" 692 | dependencies = [ 693 | "kernel32-sys", 694 | "net2", 695 | "winapi 0.2.8", 696 | "ws2_32-sys", 697 | ] 698 | 699 | [[package]] 700 | name = "native-tls" 701 | version = "0.2.3" 702 | source = "registry+https://github.com/rust-lang/crates.io-index" 703 | checksum = "4b2df1a4c22fd44a62147fd8f13dd0f95c9d8ca7b2610299b2a2f9cf8964274e" 704 | dependencies = [ 705 | "lazy_static", 706 | "libc", 707 | "log", 708 | "openssl", 709 | "openssl-probe", 710 | "openssl-sys", 711 | "schannel", 712 | "security-framework", 713 | "security-framework-sys", 714 | "tempfile", 715 | ] 716 | 717 | [[package]] 718 | name = "net2" 719 | version = "0.2.38" 720 | source = "registry+https://github.com/rust-lang/crates.io-index" 721 | checksum = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631" 722 | dependencies = [ 723 | "cfg-if 0.1.10", 724 | "libc", 725 | "winapi 0.3.8", 726 | ] 727 | 728 | [[package]] 729 | name = "nix" 730 | version = "0.14.1" 731 | source = "registry+https://github.com/rust-lang/crates.io-index" 732 | checksum = "6c722bee1037d430d0f8e687bbdbf222f27cc6e4e68d5caf630857bb2b6dbdce" 733 | dependencies = [ 734 | "bitflags", 735 | "cc", 736 | "cfg-if 0.1.10", 737 | "libc", 738 | "void", 739 | ] 740 | 741 | [[package]] 742 | name = "nodrop" 743 | version = "0.1.14" 744 | source = "registry+https://github.com/rust-lang/crates.io-index" 745 | checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" 746 | 747 | [[package]] 748 | name = "num_cpus" 749 | version = "1.10.1" 750 | source = "registry+https://github.com/rust-lang/crates.io-index" 751 | checksum = "bcef43580c035376c0705c42792c294b66974abbfd2789b511784023f71f3273" 752 | dependencies = [ 753 | "libc", 754 | ] 755 | 756 | [[package]] 757 | name = "once_cell" 758 | version = "1.17.1" 759 | source = "registry+https://github.com/rust-lang/crates.io-index" 760 | checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" 761 | 762 | [[package]] 763 | name = "openssl" 764 | version = "0.10.55" 765 | source = "registry+https://github.com/rust-lang/crates.io-index" 766 | checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d" 767 | dependencies = [ 768 | "bitflags", 769 | "cfg-if 1.0.0", 770 | "foreign-types", 771 | "libc", 772 | "once_cell", 773 | "openssl-macros", 774 | "openssl-sys", 775 | ] 776 | 777 | [[package]] 778 | name = "openssl-macros" 779 | version = "0.1.0" 780 | source = "registry+https://github.com/rust-lang/crates.io-index" 781 | checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" 782 | dependencies = [ 783 | "proc-macro2", 784 | "quote", 785 | "syn", 786 | ] 787 | 788 | [[package]] 789 | name = "openssl-probe" 790 | version = "0.1.2" 791 | source = "registry+https://github.com/rust-lang/crates.io-index" 792 | checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" 793 | 794 | [[package]] 795 | name = "openssl-sys" 796 | version = "0.9.90" 797 | source = "registry+https://github.com/rust-lang/crates.io-index" 798 | checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6" 799 | dependencies = [ 800 | "cc", 801 | "libc", 802 | "pkg-config", 803 | "vcpkg", 804 | ] 805 | 806 | [[package]] 807 | name = "parking_lot" 808 | version = "0.9.0" 809 | source = "registry+https://github.com/rust-lang/crates.io-index" 810 | checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" 811 | dependencies = [ 812 | "lock_api", 813 | "parking_lot_core", 814 | "rustc_version", 815 | ] 816 | 817 | [[package]] 818 | name = "parking_lot_core" 819 | version = "0.6.2" 820 | source = "registry+https://github.com/rust-lang/crates.io-index" 821 | checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" 822 | dependencies = [ 823 | "cfg-if 0.1.10", 824 | "cloudabi", 825 | "libc", 826 | "redox_syscall", 827 | "rustc_version", 828 | "smallvec", 829 | "winapi 0.3.8", 830 | ] 831 | 832 | [[package]] 833 | name = "percent-encoding" 834 | version = "1.0.1" 835 | source = "registry+https://github.com/rust-lang/crates.io-index" 836 | checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" 837 | 838 | [[package]] 839 | name = "percent-encoding" 840 | version = "2.1.0" 841 | source = "registry+https://github.com/rust-lang/crates.io-index" 842 | checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" 843 | 844 | [[package]] 845 | name = "pkg-config" 846 | version = "0.3.16" 847 | source = "registry+https://github.com/rust-lang/crates.io-index" 848 | checksum = "72d5370d90f49f70bd033c3d75e87fc529fbfff9d6f7cccef07d6170079d91ea" 849 | 850 | [[package]] 851 | name = "ppv-lite86" 852 | version = "0.2.5" 853 | source = "registry+https://github.com/rust-lang/crates.io-index" 854 | checksum = "e3cbf9f658cdb5000fcf6f362b8ea2ba154b9f146a61c7a20d647034c6b6561b" 855 | 856 | [[package]] 857 | name = "proc-macro-error" 858 | version = "0.2.6" 859 | source = "registry+https://github.com/rust-lang/crates.io-index" 860 | checksum = "aeccfe4d5d8ea175d5f0e4a2ad0637e0f4121d63bd99d356fb1f39ab2e7c6097" 861 | dependencies = [ 862 | "proc-macro2", 863 | "quote", 864 | "syn", 865 | ] 866 | 867 | [[package]] 868 | name = "proc-macro2" 869 | version = "1.0.5" 870 | source = "registry+https://github.com/rust-lang/crates.io-index" 871 | checksum = "90cf5f418035b98e655e9cdb225047638296b862b42411c4e45bb88d700f7fc0" 872 | dependencies = [ 873 | "unicode-xid", 874 | ] 875 | 876 | [[package]] 877 | name = "publicsuffix" 878 | version = "1.5.3" 879 | source = "registry+https://github.com/rust-lang/crates.io-index" 880 | checksum = "9bf259a81de2b2eb9850ec990ec78e6a25319715584fd7652b9b26f96fcb1510" 881 | dependencies = [ 882 | "error-chain", 883 | "idna 0.2.0", 884 | "lazy_static", 885 | "regex", 886 | "url 2.1.0", 887 | ] 888 | 889 | [[package]] 890 | name = "quote" 891 | version = "1.0.2" 892 | source = "registry+https://github.com/rust-lang/crates.io-index" 893 | checksum = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe" 894 | dependencies = [ 895 | "proc-macro2", 896 | ] 897 | 898 | [[package]] 899 | name = "rand" 900 | version = "0.6.5" 901 | source = "registry+https://github.com/rust-lang/crates.io-index" 902 | checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" 903 | dependencies = [ 904 | "autocfg", 905 | "libc", 906 | "rand_chacha 0.1.1", 907 | "rand_core 0.4.2", 908 | "rand_hc 0.1.0", 909 | "rand_isaac", 910 | "rand_jitter", 911 | "rand_os", 912 | "rand_pcg", 913 | "rand_xorshift", 914 | "winapi 0.3.8", 915 | ] 916 | 917 | [[package]] 918 | name = "rand" 919 | version = "0.7.2" 920 | source = "registry+https://github.com/rust-lang/crates.io-index" 921 | checksum = "3ae1b169243eaf61759b8475a998f0a385e42042370f3a7dbaf35246eacc8412" 922 | dependencies = [ 923 | "getrandom", 924 | "libc", 925 | "rand_chacha 0.2.1", 926 | "rand_core 0.5.1", 927 | "rand_hc 0.2.0", 928 | ] 929 | 930 | [[package]] 931 | name = "rand_chacha" 932 | version = "0.1.1" 933 | source = "registry+https://github.com/rust-lang/crates.io-index" 934 | checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" 935 | dependencies = [ 936 | "autocfg", 937 | "rand_core 0.3.1", 938 | ] 939 | 940 | [[package]] 941 | name = "rand_chacha" 942 | version = "0.2.1" 943 | source = "registry+https://github.com/rust-lang/crates.io-index" 944 | checksum = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853" 945 | dependencies = [ 946 | "c2-chacha", 947 | "rand_core 0.5.1", 948 | ] 949 | 950 | [[package]] 951 | name = "rand_core" 952 | version = "0.3.1" 953 | source = "registry+https://github.com/rust-lang/crates.io-index" 954 | checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" 955 | dependencies = [ 956 | "rand_core 0.4.2", 957 | ] 958 | 959 | [[package]] 960 | name = "rand_core" 961 | version = "0.4.2" 962 | source = "registry+https://github.com/rust-lang/crates.io-index" 963 | checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" 964 | 965 | [[package]] 966 | name = "rand_core" 967 | version = "0.5.1" 968 | source = "registry+https://github.com/rust-lang/crates.io-index" 969 | checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" 970 | dependencies = [ 971 | "getrandom", 972 | ] 973 | 974 | [[package]] 975 | name = "rand_hc" 976 | version = "0.1.0" 977 | source = "registry+https://github.com/rust-lang/crates.io-index" 978 | checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" 979 | dependencies = [ 980 | "rand_core 0.3.1", 981 | ] 982 | 983 | [[package]] 984 | name = "rand_hc" 985 | version = "0.2.0" 986 | source = "registry+https://github.com/rust-lang/crates.io-index" 987 | checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" 988 | dependencies = [ 989 | "rand_core 0.5.1", 990 | ] 991 | 992 | [[package]] 993 | name = "rand_isaac" 994 | version = "0.1.1" 995 | source = "registry+https://github.com/rust-lang/crates.io-index" 996 | checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" 997 | dependencies = [ 998 | "rand_core 0.3.1", 999 | ] 1000 | 1001 | [[package]] 1002 | name = "rand_jitter" 1003 | version = "0.1.4" 1004 | source = "registry+https://github.com/rust-lang/crates.io-index" 1005 | checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" 1006 | dependencies = [ 1007 | "libc", 1008 | "rand_core 0.4.2", 1009 | "winapi 0.3.8", 1010 | ] 1011 | 1012 | [[package]] 1013 | name = "rand_os" 1014 | version = "0.1.3" 1015 | source = "registry+https://github.com/rust-lang/crates.io-index" 1016 | checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" 1017 | dependencies = [ 1018 | "cloudabi", 1019 | "fuchsia-cprng", 1020 | "libc", 1021 | "rand_core 0.4.2", 1022 | "rdrand", 1023 | "winapi 0.3.8", 1024 | ] 1025 | 1026 | [[package]] 1027 | name = "rand_pcg" 1028 | version = "0.1.2" 1029 | source = "registry+https://github.com/rust-lang/crates.io-index" 1030 | checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" 1031 | dependencies = [ 1032 | "autocfg", 1033 | "rand_core 0.4.2", 1034 | ] 1035 | 1036 | [[package]] 1037 | name = "rand_xorshift" 1038 | version = "0.1.1" 1039 | source = "registry+https://github.com/rust-lang/crates.io-index" 1040 | checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" 1041 | dependencies = [ 1042 | "rand_core 0.3.1", 1043 | ] 1044 | 1045 | [[package]] 1046 | name = "rdrand" 1047 | version = "0.4.0" 1048 | source = "registry+https://github.com/rust-lang/crates.io-index" 1049 | checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" 1050 | dependencies = [ 1051 | "rand_core 0.3.1", 1052 | ] 1053 | 1054 | [[package]] 1055 | name = "redox_syscall" 1056 | version = "0.1.56" 1057 | source = "registry+https://github.com/rust-lang/crates.io-index" 1058 | checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" 1059 | 1060 | [[package]] 1061 | name = "regex" 1062 | version = "1.7.3" 1063 | source = "registry+https://github.com/rust-lang/crates.io-index" 1064 | checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d" 1065 | dependencies = [ 1066 | "aho-corasick", 1067 | "memchr", 1068 | "regex-syntax", 1069 | ] 1070 | 1071 | [[package]] 1072 | name = "regex-syntax" 1073 | version = "0.6.29" 1074 | source = "registry+https://github.com/rust-lang/crates.io-index" 1075 | checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" 1076 | 1077 | [[package]] 1078 | name = "remove_dir_all" 1079 | version = "0.5.2" 1080 | source = "registry+https://github.com/rust-lang/crates.io-index" 1081 | checksum = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e" 1082 | dependencies = [ 1083 | "winapi 0.3.8", 1084 | ] 1085 | 1086 | [[package]] 1087 | name = "reqwest" 1088 | version = "0.9.22" 1089 | source = "registry+https://github.com/rust-lang/crates.io-index" 1090 | checksum = "2c2064233e442ce85c77231ebd67d9eca395207dec2127fe0bbedde4bd29a650" 1091 | dependencies = [ 1092 | "base64", 1093 | "bytes", 1094 | "cookie", 1095 | "cookie_store", 1096 | "encoding_rs", 1097 | "flate2", 1098 | "futures", 1099 | "http", 1100 | "hyper", 1101 | "hyper-tls", 1102 | "log", 1103 | "mime", 1104 | "mime_guess", 1105 | "native-tls", 1106 | "serde", 1107 | "serde_json", 1108 | "serde_urlencoded", 1109 | "time", 1110 | "tokio", 1111 | "tokio-executor", 1112 | "tokio-io", 1113 | "tokio-threadpool", 1114 | "tokio-timer", 1115 | "url 1.7.2", 1116 | "uuid", 1117 | "winreg", 1118 | ] 1119 | 1120 | [[package]] 1121 | name = "rustc-demangle" 1122 | version = "0.1.16" 1123 | source = "registry+https://github.com/rust-lang/crates.io-index" 1124 | checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" 1125 | 1126 | [[package]] 1127 | name = "rustc_version" 1128 | version = "0.2.3" 1129 | source = "registry+https://github.com/rust-lang/crates.io-index" 1130 | checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" 1131 | dependencies = [ 1132 | "semver", 1133 | ] 1134 | 1135 | [[package]] 1136 | name = "ryu" 1137 | version = "1.0.2" 1138 | source = "registry+https://github.com/rust-lang/crates.io-index" 1139 | checksum = "bfa8506c1de11c9c4e4c38863ccbe02a305c8188e85a05a784c9e11e1c3910c8" 1140 | 1141 | [[package]] 1142 | name = "schannel" 1143 | version = "0.1.16" 1144 | source = "registry+https://github.com/rust-lang/crates.io-index" 1145 | checksum = "87f550b06b6cba9c8b8be3ee73f391990116bf527450d2556e9b9ce263b9a021" 1146 | dependencies = [ 1147 | "lazy_static", 1148 | "winapi 0.3.8", 1149 | ] 1150 | 1151 | [[package]] 1152 | name = "scopeguard" 1153 | version = "1.0.0" 1154 | source = "registry+https://github.com/rust-lang/crates.io-index" 1155 | checksum = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d" 1156 | 1157 | [[package]] 1158 | name = "security-framework" 1159 | version = "0.3.1" 1160 | source = "registry+https://github.com/rust-lang/crates.io-index" 1161 | checksum = "eee63d0f4a9ec776eeb30e220f0bc1e092c3ad744b2a379e3993070364d3adc2" 1162 | dependencies = [ 1163 | "core-foundation", 1164 | "core-foundation-sys", 1165 | "libc", 1166 | "security-framework-sys", 1167 | ] 1168 | 1169 | [[package]] 1170 | name = "security-framework-sys" 1171 | version = "0.3.1" 1172 | source = "registry+https://github.com/rust-lang/crates.io-index" 1173 | checksum = "9636f8989cbf61385ae4824b98c1aaa54c994d7d8b41f11c601ed799f0549a56" 1174 | dependencies = [ 1175 | "core-foundation-sys", 1176 | ] 1177 | 1178 | [[package]] 1179 | name = "semver" 1180 | version = "0.9.0" 1181 | source = "registry+https://github.com/rust-lang/crates.io-index" 1182 | checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" 1183 | dependencies = [ 1184 | "semver-parser", 1185 | ] 1186 | 1187 | [[package]] 1188 | name = "semver-parser" 1189 | version = "0.7.0" 1190 | source = "registry+https://github.com/rust-lang/crates.io-index" 1191 | checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" 1192 | 1193 | [[package]] 1194 | name = "serde" 1195 | version = "1.0.101" 1196 | source = "registry+https://github.com/rust-lang/crates.io-index" 1197 | checksum = "9796c9b7ba2ffe7a9ce53c2287dfc48080f4b2b362fcc245a259b3a7201119dd" 1198 | dependencies = [ 1199 | "serde_derive", 1200 | ] 1201 | 1202 | [[package]] 1203 | name = "serde_derive" 1204 | version = "1.0.101" 1205 | source = "registry+https://github.com/rust-lang/crates.io-index" 1206 | checksum = "4b133a43a1ecd55d4086bd5b4dc6c1751c68b1bfbeba7a5040442022c7e7c02e" 1207 | dependencies = [ 1208 | "proc-macro2", 1209 | "quote", 1210 | "syn", 1211 | ] 1212 | 1213 | [[package]] 1214 | name = "serde_json" 1215 | version = "1.0.41" 1216 | source = "registry+https://github.com/rust-lang/crates.io-index" 1217 | checksum = "2f72eb2a68a7dc3f9a691bfda9305a1c017a6215e5a4545c258500d2099a37c2" 1218 | dependencies = [ 1219 | "itoa", 1220 | "ryu", 1221 | "serde", 1222 | ] 1223 | 1224 | [[package]] 1225 | name = "serde_urlencoded" 1226 | version = "0.5.5" 1227 | source = "registry+https://github.com/rust-lang/crates.io-index" 1228 | checksum = "642dd69105886af2efd227f75a520ec9b44a820d65bc133a9131f7d229fd165a" 1229 | dependencies = [ 1230 | "dtoa", 1231 | "itoa", 1232 | "serde", 1233 | "url 1.7.2", 1234 | ] 1235 | 1236 | [[package]] 1237 | name = "slab" 1238 | version = "0.4.2" 1239 | source = "registry+https://github.com/rust-lang/crates.io-index" 1240 | checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" 1241 | 1242 | [[package]] 1243 | name = "smallvec" 1244 | version = "0.6.14" 1245 | source = "registry+https://github.com/rust-lang/crates.io-index" 1246 | checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0" 1247 | dependencies = [ 1248 | "maybe-uninit", 1249 | ] 1250 | 1251 | [[package]] 1252 | name = "string" 1253 | version = "0.2.1" 1254 | source = "registry+https://github.com/rust-lang/crates.io-index" 1255 | checksum = "d24114bfcceb867ca7f71a0d3fe45d45619ec47a6fbfa98cb14e14250bfa5d6d" 1256 | dependencies = [ 1257 | "bytes", 1258 | ] 1259 | 1260 | [[package]] 1261 | name = "strsim" 1262 | version = "0.8.0" 1263 | source = "registry+https://github.com/rust-lang/crates.io-index" 1264 | checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" 1265 | 1266 | [[package]] 1267 | name = "structopt" 1268 | version = "0.3.3" 1269 | source = "registry+https://github.com/rust-lang/crates.io-index" 1270 | checksum = "6d4f66a4c0ddf7aee4677995697366de0749b0139057342eccbb609b12d0affc" 1271 | dependencies = [ 1272 | "clap", 1273 | "structopt-derive", 1274 | ] 1275 | 1276 | [[package]] 1277 | name = "structopt-derive" 1278 | version = "0.3.3" 1279 | source = "registry+https://github.com/rust-lang/crates.io-index" 1280 | checksum = "8fe0c13e476b4e21ff7f5c4ace3818b6d7bdc16897c31c73862471bc1663acae" 1281 | dependencies = [ 1282 | "heck", 1283 | "proc-macro-error", 1284 | "proc-macro2", 1285 | "quote", 1286 | "syn", 1287 | ] 1288 | 1289 | [[package]] 1290 | name = "syn" 1291 | version = "1.0.5" 1292 | source = "registry+https://github.com/rust-lang/crates.io-index" 1293 | checksum = "66850e97125af79138385e9b88339cbcd037e3f28ceab8c5ad98e64f0f1f80bf" 1294 | dependencies = [ 1295 | "proc-macro2", 1296 | "quote", 1297 | "unicode-xid", 1298 | ] 1299 | 1300 | [[package]] 1301 | name = "synstructure" 1302 | version = "0.12.1" 1303 | source = "registry+https://github.com/rust-lang/crates.io-index" 1304 | checksum = "3f085a5855930c0441ca1288cf044ea4aecf4f43a91668abdb870b4ba546a203" 1305 | dependencies = [ 1306 | "proc-macro2", 1307 | "quote", 1308 | "syn", 1309 | "unicode-xid", 1310 | ] 1311 | 1312 | [[package]] 1313 | name = "tempfile" 1314 | version = "3.1.0" 1315 | source = "registry+https://github.com/rust-lang/crates.io-index" 1316 | checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" 1317 | dependencies = [ 1318 | "cfg-if 0.1.10", 1319 | "libc", 1320 | "rand 0.7.2", 1321 | "redox_syscall", 1322 | "remove_dir_all", 1323 | "winapi 0.3.8", 1324 | ] 1325 | 1326 | [[package]] 1327 | name = "textwrap" 1328 | version = "0.11.0" 1329 | source = "registry+https://github.com/rust-lang/crates.io-index" 1330 | checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" 1331 | dependencies = [ 1332 | "unicode-width", 1333 | ] 1334 | 1335 | [[package]] 1336 | name = "time" 1337 | version = "0.1.42" 1338 | source = "registry+https://github.com/rust-lang/crates.io-index" 1339 | checksum = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" 1340 | dependencies = [ 1341 | "libc", 1342 | "redox_syscall", 1343 | "winapi 0.3.8", 1344 | ] 1345 | 1346 | [[package]] 1347 | name = "tokio" 1348 | version = "0.1.22" 1349 | source = "registry+https://github.com/rust-lang/crates.io-index" 1350 | checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6" 1351 | dependencies = [ 1352 | "bytes", 1353 | "futures", 1354 | "mio", 1355 | "num_cpus", 1356 | "tokio-current-thread", 1357 | "tokio-executor", 1358 | "tokio-io", 1359 | "tokio-reactor", 1360 | "tokio-tcp", 1361 | "tokio-threadpool", 1362 | "tokio-timer", 1363 | ] 1364 | 1365 | [[package]] 1366 | name = "tokio-buf" 1367 | version = "0.1.1" 1368 | source = "registry+https://github.com/rust-lang/crates.io-index" 1369 | checksum = "8fb220f46c53859a4b7ec083e41dec9778ff0b1851c0942b211edb89e0ccdc46" 1370 | dependencies = [ 1371 | "bytes", 1372 | "either", 1373 | "futures", 1374 | ] 1375 | 1376 | [[package]] 1377 | name = "tokio-current-thread" 1378 | version = "0.1.6" 1379 | source = "registry+https://github.com/rust-lang/crates.io-index" 1380 | checksum = "d16217cad7f1b840c5a97dfb3c43b0c871fef423a6e8d2118c604e843662a443" 1381 | dependencies = [ 1382 | "futures", 1383 | "tokio-executor", 1384 | ] 1385 | 1386 | [[package]] 1387 | name = "tokio-executor" 1388 | version = "0.1.8" 1389 | source = "registry+https://github.com/rust-lang/crates.io-index" 1390 | checksum = "0f27ee0e6db01c5f0b2973824547ce7e637b2ed79b891a9677b0de9bd532b6ac" 1391 | dependencies = [ 1392 | "crossbeam-utils", 1393 | "futures", 1394 | ] 1395 | 1396 | [[package]] 1397 | name = "tokio-io" 1398 | version = "0.1.12" 1399 | source = "registry+https://github.com/rust-lang/crates.io-index" 1400 | checksum = "5090db468dad16e1a7a54c8c67280c5e4b544f3d3e018f0b913b400261f85926" 1401 | dependencies = [ 1402 | "bytes", 1403 | "futures", 1404 | "log", 1405 | ] 1406 | 1407 | [[package]] 1408 | name = "tokio-reactor" 1409 | version = "0.1.10" 1410 | source = "registry+https://github.com/rust-lang/crates.io-index" 1411 | checksum = "c56391be9805bc80163151c0b9e5164ee64f4b0200962c346fea12773158f22d" 1412 | dependencies = [ 1413 | "crossbeam-utils", 1414 | "futures", 1415 | "lazy_static", 1416 | "log", 1417 | "mio", 1418 | "num_cpus", 1419 | "parking_lot", 1420 | "slab", 1421 | "tokio-executor", 1422 | "tokio-io", 1423 | "tokio-sync", 1424 | ] 1425 | 1426 | [[package]] 1427 | name = "tokio-sync" 1428 | version = "0.1.7" 1429 | source = "registry+https://github.com/rust-lang/crates.io-index" 1430 | checksum = "d06554cce1ae4a50f42fba8023918afa931413aded705b560e29600ccf7c6d76" 1431 | dependencies = [ 1432 | "fnv", 1433 | "futures", 1434 | ] 1435 | 1436 | [[package]] 1437 | name = "tokio-tcp" 1438 | version = "0.1.3" 1439 | source = "registry+https://github.com/rust-lang/crates.io-index" 1440 | checksum = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119" 1441 | dependencies = [ 1442 | "bytes", 1443 | "futures", 1444 | "iovec", 1445 | "mio", 1446 | "tokio-io", 1447 | "tokio-reactor", 1448 | ] 1449 | 1450 | [[package]] 1451 | name = "tokio-threadpool" 1452 | version = "0.1.16" 1453 | source = "registry+https://github.com/rust-lang/crates.io-index" 1454 | checksum = "2bd2c6a3885302581f4401c82af70d792bb9df1700e7437b0aeb4ada94d5388c" 1455 | dependencies = [ 1456 | "crossbeam-deque", 1457 | "crossbeam-queue", 1458 | "crossbeam-utils", 1459 | "futures", 1460 | "lazy_static", 1461 | "log", 1462 | "num_cpus", 1463 | "slab", 1464 | "tokio-executor", 1465 | ] 1466 | 1467 | [[package]] 1468 | name = "tokio-timer" 1469 | version = "0.2.11" 1470 | source = "registry+https://github.com/rust-lang/crates.io-index" 1471 | checksum = "f2106812d500ed25a4f38235b9cae8f78a09edf43203e16e59c3b769a342a60e" 1472 | dependencies = [ 1473 | "crossbeam-utils", 1474 | "futures", 1475 | "slab", 1476 | "tokio-executor", 1477 | ] 1478 | 1479 | [[package]] 1480 | name = "try-lock" 1481 | version = "0.2.2" 1482 | source = "registry+https://github.com/rust-lang/crates.io-index" 1483 | checksum = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" 1484 | 1485 | [[package]] 1486 | name = "try_from" 1487 | version = "0.3.2" 1488 | source = "registry+https://github.com/rust-lang/crates.io-index" 1489 | checksum = "283d3b89e1368717881a9d51dad843cc435380d8109c9e47d38780a324698d8b" 1490 | dependencies = [ 1491 | "cfg-if 0.1.10", 1492 | ] 1493 | 1494 | [[package]] 1495 | name = "unicase" 1496 | version = "2.5.1" 1497 | source = "registry+https://github.com/rust-lang/crates.io-index" 1498 | checksum = "2e2e6bd1e59e56598518beb94fd6db628ded570326f0a98c679a304bd9f00150" 1499 | dependencies = [ 1500 | "version_check", 1501 | ] 1502 | 1503 | [[package]] 1504 | name = "unicode-bidi" 1505 | version = "0.3.4" 1506 | source = "registry+https://github.com/rust-lang/crates.io-index" 1507 | checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" 1508 | dependencies = [ 1509 | "matches", 1510 | ] 1511 | 1512 | [[package]] 1513 | name = "unicode-normalization" 1514 | version = "0.1.8" 1515 | source = "registry+https://github.com/rust-lang/crates.io-index" 1516 | checksum = "141339a08b982d942be2ca06ff8b076563cbe223d1befd5450716790d44e2426" 1517 | dependencies = [ 1518 | "smallvec", 1519 | ] 1520 | 1521 | [[package]] 1522 | name = "unicode-segmentation" 1523 | version = "1.3.0" 1524 | source = "registry+https://github.com/rust-lang/crates.io-index" 1525 | checksum = "1967f4cdfc355b37fd76d2a954fb2ed3871034eb4f26d60537d88795cfc332a9" 1526 | 1527 | [[package]] 1528 | name = "unicode-width" 1529 | version = "0.1.6" 1530 | source = "registry+https://github.com/rust-lang/crates.io-index" 1531 | checksum = "7007dbd421b92cc6e28410fe7362e2e0a2503394908f417b68ec8d1c364c4e20" 1532 | 1533 | [[package]] 1534 | name = "unicode-xid" 1535 | version = "0.2.0" 1536 | source = "registry+https://github.com/rust-lang/crates.io-index" 1537 | checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" 1538 | 1539 | [[package]] 1540 | name = "url" 1541 | version = "1.7.2" 1542 | source = "registry+https://github.com/rust-lang/crates.io-index" 1543 | checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" 1544 | dependencies = [ 1545 | "idna 0.1.5", 1546 | "matches", 1547 | "percent-encoding 1.0.1", 1548 | ] 1549 | 1550 | [[package]] 1551 | name = "url" 1552 | version = "2.1.0" 1553 | source = "registry+https://github.com/rust-lang/crates.io-index" 1554 | checksum = "75b414f6c464c879d7f9babf951f23bc3743fb7313c081b2e6ca719067ea9d61" 1555 | dependencies = [ 1556 | "idna 0.2.0", 1557 | "matches", 1558 | "percent-encoding 2.1.0", 1559 | ] 1560 | 1561 | [[package]] 1562 | name = "uuid" 1563 | version = "0.7.4" 1564 | source = "registry+https://github.com/rust-lang/crates.io-index" 1565 | checksum = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a" 1566 | dependencies = [ 1567 | "rand 0.6.5", 1568 | ] 1569 | 1570 | [[package]] 1571 | name = "vcpkg" 1572 | version = "0.2.15" 1573 | source = "registry+https://github.com/rust-lang/crates.io-index" 1574 | checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 1575 | 1576 | [[package]] 1577 | name = "vec_map" 1578 | version = "0.8.1" 1579 | source = "registry+https://github.com/rust-lang/crates.io-index" 1580 | checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" 1581 | 1582 | [[package]] 1583 | name = "version_check" 1584 | version = "0.1.5" 1585 | source = "registry+https://github.com/rust-lang/crates.io-index" 1586 | checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" 1587 | 1588 | [[package]] 1589 | name = "void" 1590 | version = "1.0.2" 1591 | source = "registry+https://github.com/rust-lang/crates.io-index" 1592 | checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" 1593 | 1594 | [[package]] 1595 | name = "want" 1596 | version = "0.2.0" 1597 | source = "registry+https://github.com/rust-lang/crates.io-index" 1598 | checksum = "b6395efa4784b027708f7451087e647ec73cc74f5d9bc2e418404248d679a230" 1599 | dependencies = [ 1600 | "futures", 1601 | "log", 1602 | "try-lock", 1603 | ] 1604 | 1605 | [[package]] 1606 | name = "wasi" 1607 | version = "0.7.0" 1608 | source = "registry+https://github.com/rust-lang/crates.io-index" 1609 | checksum = "b89c3ce4ce14bdc6fb6beaf9ec7928ca331de5df7e5ea278375642a2f478570d" 1610 | 1611 | [[package]] 1612 | name = "winapi" 1613 | version = "0.2.8" 1614 | source = "registry+https://github.com/rust-lang/crates.io-index" 1615 | checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" 1616 | 1617 | [[package]] 1618 | name = "winapi" 1619 | version = "0.3.8" 1620 | source = "registry+https://github.com/rust-lang/crates.io-index" 1621 | checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" 1622 | dependencies = [ 1623 | "winapi-i686-pc-windows-gnu", 1624 | "winapi-x86_64-pc-windows-gnu", 1625 | ] 1626 | 1627 | [[package]] 1628 | name = "winapi-build" 1629 | version = "0.1.1" 1630 | source = "registry+https://github.com/rust-lang/crates.io-index" 1631 | checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" 1632 | 1633 | [[package]] 1634 | name = "winapi-i686-pc-windows-gnu" 1635 | version = "0.4.0" 1636 | source = "registry+https://github.com/rust-lang/crates.io-index" 1637 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 1638 | 1639 | [[package]] 1640 | name = "winapi-x86_64-pc-windows-gnu" 1641 | version = "0.4.0" 1642 | source = "registry+https://github.com/rust-lang/crates.io-index" 1643 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 1644 | 1645 | [[package]] 1646 | name = "winreg" 1647 | version = "0.6.2" 1648 | source = "registry+https://github.com/rust-lang/crates.io-index" 1649 | checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9" 1650 | dependencies = [ 1651 | "winapi 0.3.8", 1652 | ] 1653 | 1654 | [[package]] 1655 | name = "ws2_32-sys" 1656 | version = "0.2.1" 1657 | source = "registry+https://github.com/rust-lang/crates.io-index" 1658 | checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" 1659 | dependencies = [ 1660 | "winapi 0.2.8", 1661 | "winapi-build", 1662 | ] 1663 | --------------------------------------------------------------------------------