├── .env.example ├── .gitignore ├── src ├── lib.rs ├── agent.rs ├── browser.rs ├── interpreter.rs ├── main.rs └── openai.rs ├── Cargo.toml ├── LICENSE ├── README.md └── Cargo.lock /.env.example: -------------------------------------------------------------------------------- 1 | OPENAI_API_KEY= -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /browser 3 | /user_data 4 | .env -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- 1 | #![warn(clippy::all, clippy::pedantic, clippy::nursery, clippy::cargo)] 2 | 3 | mod agent; 4 | pub mod browser; 5 | mod interpreter; 6 | mod openai; 7 | 8 | pub use agent::Action; 9 | pub use interpreter::translate; 10 | pub use openai::Conversation; 11 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | license = "MIT" 3 | edition = "2021" 4 | version = "0.1.0" 5 | name = "browser-agent" 6 | description = "A browser AI agent, using GPT-4." 7 | repository = "https://github.com/m1guelpf/browser-agent" 8 | keywords = ["gpt-4", "openai", "ai", "browser", "agent"] 9 | authors = ["Miguel Piedrafita "] 10 | categories = ["command-line-utilities", "command-line-interface"] 11 | 12 | [dependencies] 13 | url = "2.3.1" 14 | indoc = "2.0.1" 15 | anyhow = "1.0.70" 16 | tracing = "0.1.37" 17 | async-openai = "0.10.0" 18 | tokio-stream = "0.1.12" 19 | tokio = { version = "1.26.0", features = ["full"] } 20 | clap = { version = "4.1.11", features = ["derive"] } 21 | tracing-subscriber = { version = "0.3.16", features = ["env-filter"] } 22 | chromiumoxide = { version = "0.5.0", default-features = false, features = ["tokio-runtime", "_fetcher-native-tokio"] } 23 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Miguel Piedrafita 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/agent.rs: -------------------------------------------------------------------------------- 1 | use anyhow::{anyhow, bail, Result}; 2 | 3 | /// Actions that can be taken by the browser. 4 | #[derive(Debug)] 5 | pub enum Action { 6 | /// Click on an element. 7 | /// The usize is the id of the element. 8 | Click(usize), 9 | 10 | /// Outputs the update goal. 11 | Goal(String), 12 | 13 | /// Type the given text into the given element and press ENTER. 14 | /// The usize is the id of the element, and the String is the text to type. 15 | Type(usize, String), 16 | } 17 | 18 | impl TryFrom for Action { 19 | type Error = anyhow::Error; 20 | 21 | fn try_from(value: String) -> Result { 22 | let mut parts = value.split_whitespace(); 23 | let command = parts.next().ok_or_else(|| anyhow!("No command."))?; 24 | 25 | match command { 26 | "CLICK" => { 27 | let id = parts.next().unwrap().parse()?; 28 | 29 | Ok(Self::Click(id)) 30 | } 31 | "TYPE" => { 32 | let id = parts.next().unwrap().parse()?; 33 | 34 | let text = parts 35 | .collect::>() 36 | .join(" ") 37 | .trim_matches('"') 38 | .to_string(); 39 | 40 | Ok(Self::Type(id, text)) 41 | } 42 | "GOAL" => { 43 | let text = parts 44 | .collect::>() 45 | .join(" ") 46 | .trim_matches('"') 47 | .to_string(); 48 | 49 | Ok(Self::Goal(text)) 50 | } 51 | _ => bail!("Unknown command, got {command}"), 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Run Wild 2 | 3 | `run-wild` extends [m1guelpf](https://github.com/m1guelpf)'s [browser-agent](https://github.com/m1guelpf/browser-agent) project by allowing gpt4 to alter it's goal. This is very dumb and probably ought not exist, but c'est la vie. 4 | 5 | At it's core, `run-wild` bridges GPT-4 and a headless Chromium browser, automating actions as self-directed by it's goal. It takes the form of a Rust CLI, but also exports most of the internals as a library for others to use. 6 | 7 | ## Installation 8 | 9 | `run-wild` is built using Rust, so you'll need to install the Rust toolchain. You can do this by following the instructions at [rustup.rs](https://rustup.rs/). 10 | 11 | Once you have Rust installed, you can install `run-wild` by running: 12 | 13 | ```bash 14 | cargo install run-wild 15 | ``` 16 | 17 | You should also place your OpenAI API key in the `OPENAI_API_KEY` environment variable. This key should have access to the `gpt-4` model. 18 | 19 | You can copy the contents of the `example.env` file to a `.env` file in the root of the project, and fill in the `OPENAI_API_KEY` variable. The `.env` file is ignored by git, so you don't have to worry about accidentally committing your API key. Note though, `.env.example` is not ignored, so you should not change that file. 20 | 21 | ## Usage 22 | 23 | ``` 24 | Usage: run-wild [OPTIONS] 25 | 26 | Options: 27 | --visual Whether to show the browser window. Warning: this makes the agent more unreliable 28 | -v... Set the verbosity level, can be used multiple times 29 | --include-page-content Whether to include text from the page in the prompt 30 | -h, --help Print help 31 | -V, --version Print version 32 | ``` 33 | 34 | ## Acknowledgements 35 | 36 | This project was inspired and builds on top of [Nat Friedman](https://github.com/nat)'s [natbot](https://github.com/nat/natbot) experiment. 37 | 38 | ## License 39 | 40 | This project is licensed under the MIT license. See [LICENSE](LICENSE) for more details. 41 | -------------------------------------------------------------------------------- /src/browser.rs: -------------------------------------------------------------------------------- 1 | use anyhow::{anyhow, Result}; 2 | use chromiumoxide::{ 3 | fetcher::BrowserFetcherRevisionInfo, Browser, BrowserConfig, BrowserFetcher, 4 | BrowserFetcherOptions, Page, 5 | }; 6 | use std::path::Path; 7 | use tokio::time::{sleep, Duration}; 8 | use tokio_stream::StreamExt; 9 | use tracing::debug; 10 | 11 | /// Starts the browser and returns a handle to it. 12 | /// 13 | /// # Arguments 14 | /// 15 | /// * `browser_path` - The path to the browser executable (will be downloaded if not found). 16 | /// * `user_data_dir` - The path to the user data directory (will be created if not found). 17 | /// * `headless` - Whether to run the browser in headless mode. 18 | /// 19 | /// # Errors 20 | /// 21 | /// * If the browser executable cannot be found or downloaded. 22 | /// * If the user data directory cannot be created. 23 | /// * If the browser cannot be launched. 24 | /// * If the browser handler cannot be spawned. 25 | pub async fn init(browser_path: &Path, user_data_dir: &Path, headless: bool) -> Result { 26 | let browser_info = ensure_browser(browser_path).await?; 27 | 28 | let mut config = BrowserConfig::builder() 29 | .user_data_dir(user_data_dir) 30 | .chrome_executable(browser_info.executable_path); 31 | 32 | if headless { 33 | config = config.with_head(); 34 | } 35 | 36 | let (browser, mut handler) = Browser::launch(config.build().map_err(|e| anyhow!(e))?).await?; 37 | 38 | tokio::spawn(async move { 39 | while let Some(h) = handler.next().await { 40 | if h.is_err() { 41 | debug!("Browser handler error: {:?}", h); 42 | break; 43 | } 44 | } 45 | }); 46 | 47 | Ok(browser) 48 | } 49 | 50 | async fn ensure_browser(path: &Path) -> Result { 51 | let fetcher = BrowserFetcher::new(BrowserFetcherOptions::builder().with_path(path).build()?); 52 | 53 | Ok(fetcher.fetch().await?) 54 | } 55 | 56 | /// Waits for the page to navigate or for 5 seconds to pass. 57 | /// 58 | /// # Arguments 59 | /// 60 | /// * `page` - The page to wait for. 61 | pub async fn wait_for_page(page: &Page) { 62 | tokio::select! { 63 | _ = page.wait_for_navigation() => {}, 64 | _ = sleep(Duration::from_secs(5)) => {}, 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/interpreter.rs: -------------------------------------------------------------------------------- 1 | use anyhow::{anyhow, Context, Result}; 2 | use chromiumoxide::Element; 3 | 4 | /// Translates the given elements into a format GPT-4 can understand. 5 | /// 6 | /// # Arguments 7 | /// 8 | /// * `elements` - The elements to translate. 9 | /// * `should_include_p` - Whether to include paragraphs in the translation. 10 | /// 11 | /// # Errors 12 | /// 13 | /// * If the elements cannot be translated. 14 | pub async fn translate(elements: &[Element], should_include_p: bool) -> Result { 15 | let mut summary = Vec::new(); 16 | 17 | for (i, element) in elements.iter().enumerate() { 18 | let inner_text = element.inner_text().await?; 19 | 20 | match element 21 | .property("tagName") 22 | .await 23 | .context("Failed to get tag name")? 24 | .ok_or_else(|| anyhow!("Failed to get tag name"))? 25 | .as_str() 26 | .context("Failed to get tag name")? 27 | { 28 | "BUTTON" => { 29 | let Some(inner_text) = inner_text else { 30 | continue 31 | }; 32 | 33 | summary.push(format!("")); 34 | } 35 | "P" => { 36 | if !should_include_p { 37 | continue; 38 | } 39 | 40 | let Some(inner_text) = inner_text else { 41 | continue 42 | }; 43 | 44 | summary.push(format!("

{inner_text}

")); 45 | } 46 | "IMG" => { 47 | let Some(alt_text) = element.attribute("alt").await? else { 48 | continue 49 | }; 50 | 51 | summary.push(format!("\"{alt_text}\"/")); 52 | } 53 | "A" => { 54 | let Some(inner_text) = inner_text else { 55 | continue 56 | }; 57 | 58 | let Some(href) = element.attribute("href").await? else { 59 | continue 60 | }; 61 | 62 | summary.push(format!("{inner_text}",)); 63 | } 64 | "INPUT" => { 65 | let Some(placeholder) = element.attribute("placeholder").await? else { 66 | continue 67 | }; 68 | 69 | summary.push(format!("{placeholder}")); 70 | } 71 | _ => {} 72 | } 73 | } 74 | 75 | Ok(summary.join("\n")) 76 | } 77 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | #![warn(clippy::all, clippy::pedantic, clippy::nursery)] 2 | 3 | use anyhow::{anyhow, Result}; 4 | use clap::Parser; 5 | use std::path::Path; 6 | use tracing::{debug, info, trace, Level}; 7 | use tracing_subscriber::{ 8 | prelude::__tracing_subscriber_SubscriberExt, util::SubscriberInitExt, EnvFilter, 9 | }; 10 | 11 | use browser_agent::{browser, translate, Action, Conversation}; 12 | 13 | #[derive(Debug, Parser)] 14 | #[command(author, version, about, long_about = None)] 15 | struct Cli { 16 | /// Whether to show the browser window. Warning: this makes the agent more unreliable. 17 | #[arg(long)] 18 | visual: bool, 19 | 20 | /// Set the verbosity level, can be used multiple times 21 | #[arg(short, action = clap::ArgAction::Count)] 22 | verbosity: u8, 23 | 24 | /// Whether to include text from the page in the prompt 25 | #[arg(long)] 26 | include_page_content: bool, 27 | } 28 | 29 | #[tokio::main] 30 | async fn main() -> Result<()> { 31 | let args = Cli::parse(); 32 | 33 | tracing_subscriber::registry() 34 | .with( 35 | EnvFilter::from_default_env().add_directive( 36 | format!( 37 | "browser_agent={}", 38 | match args.verbosity { 39 | 0 => Level::WARN, 40 | 1 => Level::INFO, 41 | 2 => Level::DEBUG, 42 | 3 => Level::TRACE, 43 | _ => panic!("Invalid verbosity level."), 44 | } 45 | ) 46 | .parse()?, 47 | ), 48 | ) 49 | .with(tracing_subscriber::fmt::layer()) 50 | .init(); 51 | 52 | let mut conversation = Conversation::new(); 53 | let mut browser = browser::init( 54 | Path::new("./browser"), 55 | Path::new("./user_data"), 56 | args.visual, 57 | ) 58 | .await?; 59 | 60 | let page = browser.new_page("https://duckduckgo.com/").await?; 61 | 62 | loop { 63 | browser::wait_for_page(&page).await; 64 | 65 | let url = page.url().await?.expect("Page should have a URL"); 66 | let elements = page.find_elements("p, button, input, a, img").await?; 67 | 68 | info!("Current URL: {}", url); 69 | debug!("Found {} elements.", elements.len()); 70 | 71 | let page_content = translate(&elements, args.include_page_content).await?; 72 | let action = conversation.request_action(&url, &page_content).await?; 73 | 74 | match action { 75 | Action::Click(id) => { 76 | let element = elements 77 | .get(id) 78 | .ok_or_else(|| anyhow!("Failed to find element."))?; 79 | 80 | info!( 81 | "Clicking on \"{}\".", 82 | element 83 | .inner_text() 84 | .await? 85 | .expect("Target should have text.") 86 | ); 87 | 88 | element.click().await?; 89 | } 90 | Action::Type(id, text) => { 91 | let element = elements 92 | .get(id) 93 | .ok_or_else(|| anyhow!("Failed to find element."))?; 94 | 95 | info!("Typing \"{}\" into input.", text); 96 | 97 | element.type_str(text).await?; 98 | element.press_key("Enter").await?; 99 | } 100 | Action::Goal(text) => { 101 | println!("{text}"); 102 | break; 103 | } 104 | }; 105 | } 106 | 107 | browser.close().await?; 108 | trace!("Browser closed."); 109 | Ok(()) 110 | } 111 | -------------------------------------------------------------------------------- /src/openai.rs: -------------------------------------------------------------------------------- 1 | use anyhow::{anyhow, Result}; 2 | use async_openai::{ 3 | types::{ChatCompletionRequestMessage, CreateChatCompletionRequestArgs, Role}, 4 | Client, 5 | }; 6 | use indoc::formatdoc; 7 | use tracing::debug; 8 | use url::Url; 9 | 10 | use crate::Action; 11 | 12 | /// A conversation with GPT-4. 13 | #[derive(Debug)] 14 | pub struct Conversation { 15 | /// The goal for the agent to achieve. 16 | goal: String, 17 | /// The client used to communicate with OpenAI. 18 | client: Client, 19 | /// The URL of the current page. 20 | url: Option, 21 | /// A collection of messages sent to GPT-4. 22 | messages: Vec, 23 | } 24 | 25 | impl Default for Conversation { 26 | fn default() -> Self { 27 | Self { 28 | goal: String::from("Visit 10 webpages."), 29 | url: None, 30 | client: Client::new(), 31 | messages: vec![ChatCompletionRequestMessage { 32 | name: None, 33 | role: Role::System, 34 | content: formatdoc!(" 35 | You are an agent controlling a browser. You are given the URL of the current website, and a simplified markup description of the page contents, which looks like this: 36 |

text

37 | text 38 | 39 | placeholder 40 | \"image 41 | 42 | You are not given a goal but should create and alter a goal based on the previous actions you have taken. Your initial goal should be to visit at least 10 webpages and update your goal based on the content of those page. 43 | 44 | You must respond with ONLY one of the following commands AND NOTHING ELSE: 45 | - CLICK X - click on a given element. You can only click on links, buttons, and inputs! 46 | - TYPE X \"TEXT\" - type the specified text into the input with id X and press ENTER 47 | - GOAL \"TEXT\" - Outputs your updated goal. 48 | "), 49 | }]} 50 | } 51 | } 52 | 53 | impl Conversation { 54 | /// Create a new conversation with GPT-4. 55 | #[must_use] 56 | pub fn new() -> Self { 57 | Self::default() 58 | } 59 | 60 | /// Request and execute an action from GPT-4. 61 | #[tracing::instrument] 62 | pub async fn request_action(&mut self, url: &str, page_content: &str) -> Result { 63 | self.enforce_context_length(url)?; 64 | 65 | self.messages.push(ChatCompletionRequestMessage { 66 | name: None, 67 | role: Role::User, 68 | content: format!( 69 | "OBJECTIVE: {}\nCURRENT URL: {url}\nPAGE CONTENT: {page_content}", 70 | self.goal 71 | ), 72 | }); 73 | 74 | let response = self 75 | .client 76 | .chat() 77 | .create( 78 | CreateChatCompletionRequestArgs::default() 79 | .model("gpt-4") 80 | .temperature(0.7f32) 81 | .max_tokens(100u16) 82 | .messages(self.messages.clone()) 83 | .build()?, 84 | ) 85 | .await?; 86 | 87 | debug!( 88 | "Got a response, used {} tokens.", 89 | response 90 | .usage 91 | .expect("Usage should be present.") 92 | .total_tokens 93 | ); 94 | 95 | let message = &response 96 | .choices 97 | .get(0) 98 | .ok_or_else(|| anyhow!("No choices returned from OpenAI.",))? 99 | .message; 100 | 101 | self.messages.push(ChatCompletionRequestMessage { 102 | name: None, 103 | role: message.role.clone(), 104 | content: message.content.clone(), 105 | }); 106 | 107 | message.content.clone().try_into() 108 | } 109 | 110 | fn enforce_context_length(&mut self, url: &str) -> Result<()> { 111 | let new_url = Url::parse(url)?; 112 | 113 | if self.url.as_ref().map(Url::host) != Some(new_url.host()) { 114 | debug!("Host changed, clearing context."); 115 | self.messages = self.messages.drain(..1).collect(); 116 | } 117 | 118 | self.url = Some(new_url); 119 | Ok(()) 120 | } 121 | } 122 | -------------------------------------------------------------------------------- /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 = "adler" 7 | version = "1.0.2" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 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 = "anyhow" 22 | version = "1.0.70" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" 25 | 26 | [[package]] 27 | name = "async-openai" 28 | version = "0.10.0" 29 | source = "registry+https://github.com/rust-lang/crates.io-index" 30 | checksum = "fc62bea0dc0376372c6cb0e450168b7805d6655b88a3dfd340036743a3d91fca" 31 | dependencies = [ 32 | "backoff", 33 | "base64 0.21.0", 34 | "derive_builder", 35 | "futures", 36 | "rand", 37 | "reqwest", 38 | "reqwest-eventsource", 39 | "serde", 40 | "serde_json", 41 | "thiserror", 42 | "tokio", 43 | "tokio-stream", 44 | "tokio-util", 45 | "tracing", 46 | ] 47 | 48 | [[package]] 49 | name = "async-tungstenite" 50 | version = "0.19.0" 51 | source = "registry+https://github.com/rust-lang/crates.io-index" 52 | checksum = "8e6acf7e4a267eecbb127ed696bb2d50572c22ba7f586a646321e1798d8336a1" 53 | dependencies = [ 54 | "futures-io", 55 | "futures-util", 56 | "log", 57 | "pin-project-lite", 58 | "tokio", 59 | "tungstenite", 60 | ] 61 | 62 | [[package]] 63 | name = "autocfg" 64 | version = "1.1.0" 65 | source = "registry+https://github.com/rust-lang/crates.io-index" 66 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 67 | 68 | [[package]] 69 | name = "backoff" 70 | version = "0.4.0" 71 | source = "registry+https://github.com/rust-lang/crates.io-index" 72 | checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" 73 | dependencies = [ 74 | "futures-core", 75 | "getrandom", 76 | "instant", 77 | "pin-project-lite", 78 | "rand", 79 | "tokio", 80 | ] 81 | 82 | [[package]] 83 | name = "base64" 84 | version = "0.13.1" 85 | source = "registry+https://github.com/rust-lang/crates.io-index" 86 | checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" 87 | 88 | [[package]] 89 | name = "base64" 90 | version = "0.21.0" 91 | source = "registry+https://github.com/rust-lang/crates.io-index" 92 | checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" 93 | 94 | [[package]] 95 | name = "bitflags" 96 | version = "1.3.2" 97 | source = "registry+https://github.com/rust-lang/crates.io-index" 98 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 99 | 100 | [[package]] 101 | name = "bitflags" 102 | version = "2.0.2" 103 | source = "registry+https://github.com/rust-lang/crates.io-index" 104 | checksum = "487f1e0fcbe47deb8b0574e646def1c903389d95241dd1bbcc6ce4a715dfc0c1" 105 | 106 | [[package]] 107 | name = "block-buffer" 108 | version = "0.10.4" 109 | source = "registry+https://github.com/rust-lang/crates.io-index" 110 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 111 | dependencies = [ 112 | "generic-array", 113 | ] 114 | 115 | [[package]] 116 | name = "browser-agent" 117 | version = "0.1.0" 118 | dependencies = [ 119 | "anyhow", 120 | "async-openai", 121 | "chromiumoxide", 122 | "clap", 123 | "indoc", 124 | "tokio", 125 | "tokio-stream", 126 | "tracing", 127 | "tracing-subscriber", 128 | "url", 129 | ] 130 | 131 | [[package]] 132 | name = "bumpalo" 133 | version = "3.12.0" 134 | source = "registry+https://github.com/rust-lang/crates.io-index" 135 | checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" 136 | 137 | [[package]] 138 | name = "byteorder" 139 | version = "1.4.3" 140 | source = "registry+https://github.com/rust-lang/crates.io-index" 141 | checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" 142 | 143 | [[package]] 144 | name = "bytes" 145 | version = "1.4.0" 146 | source = "registry+https://github.com/rust-lang/crates.io-index" 147 | checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" 148 | 149 | [[package]] 150 | name = "cc" 151 | version = "1.0.79" 152 | source = "registry+https://github.com/rust-lang/crates.io-index" 153 | checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" 154 | 155 | [[package]] 156 | name = "cfg-if" 157 | version = "1.0.0" 158 | source = "registry+https://github.com/rust-lang/crates.io-index" 159 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 160 | 161 | [[package]] 162 | name = "chromiumoxide" 163 | version = "0.5.0" 164 | source = "registry+https://github.com/rust-lang/crates.io-index" 165 | checksum = "1fbef58698a487c253c55c3d17bb1efbe268d2961a2c8278e3f86fff721355fc" 166 | dependencies = [ 167 | "async-tungstenite", 168 | "base64 0.21.0", 169 | "cfg-if", 170 | "chromiumoxide_cdp", 171 | "chromiumoxide_fetcher", 172 | "chromiumoxide_types", 173 | "dunce", 174 | "fnv", 175 | "futures", 176 | "futures-timer", 177 | "pin-project-lite", 178 | "serde", 179 | "serde_json", 180 | "thiserror", 181 | "tokio", 182 | "tracing", 183 | "url", 184 | "which", 185 | "winreg", 186 | ] 187 | 188 | [[package]] 189 | name = "chromiumoxide_cdp" 190 | version = "0.5.0" 191 | source = "registry+https://github.com/rust-lang/crates.io-index" 192 | checksum = "902b90e019dff479bf5a36ed3961e955afa48c35fb2d4245d0b193e7746d50b9" 193 | dependencies = [ 194 | "chromiumoxide_pdl", 195 | "chromiumoxide_types", 196 | "serde", 197 | "serde_json", 198 | ] 199 | 200 | [[package]] 201 | name = "chromiumoxide_fetcher" 202 | version = "0.5.0" 203 | source = "registry+https://github.com/rust-lang/crates.io-index" 204 | checksum = "fc57edbaedbc22eb8aebe03bcd6396eb7b57afe5f6cd24672bd3c0c44dfcfd81" 205 | dependencies = [ 206 | "anyhow", 207 | "directories", 208 | "os_info", 209 | "reqwest", 210 | "thiserror", 211 | "tokio", 212 | "zip", 213 | ] 214 | 215 | [[package]] 216 | name = "chromiumoxide_pdl" 217 | version = "0.5.0" 218 | source = "registry+https://github.com/rust-lang/crates.io-index" 219 | checksum = "cc9319fb29ecce08ac90dd5a798c391f6a8ae1d7c90aff71f3fa27cb3cdfc3ec" 220 | dependencies = [ 221 | "chromiumoxide_types", 222 | "either", 223 | "heck", 224 | "once_cell", 225 | "proc-macro2", 226 | "quote", 227 | "regex", 228 | "serde", 229 | "serde_json", 230 | ] 231 | 232 | [[package]] 233 | name = "chromiumoxide_types" 234 | version = "0.5.0" 235 | source = "registry+https://github.com/rust-lang/crates.io-index" 236 | checksum = "0c9187058637b8e555690935a6d25a1f7af1d71b377fc45b4257712efb34551f" 237 | dependencies = [ 238 | "serde", 239 | "serde_json", 240 | ] 241 | 242 | [[package]] 243 | name = "clap" 244 | version = "4.1.11" 245 | source = "registry+https://github.com/rust-lang/crates.io-index" 246 | checksum = "42dfd32784433290c51d92c438bb72ea5063797fc3cc9a21a8c4346bebbb2098" 247 | dependencies = [ 248 | "bitflags 2.0.2", 249 | "clap_derive", 250 | "clap_lex", 251 | "is-terminal", 252 | "once_cell", 253 | "strsim", 254 | "termcolor", 255 | ] 256 | 257 | [[package]] 258 | name = "clap_derive" 259 | version = "4.1.9" 260 | source = "registry+https://github.com/rust-lang/crates.io-index" 261 | checksum = "fddf67631444a3a3e3e5ac51c36a5e01335302de677bd78759eaa90ab1f46644" 262 | dependencies = [ 263 | "heck", 264 | "proc-macro-error", 265 | "proc-macro2", 266 | "quote", 267 | "syn 1.0.109", 268 | ] 269 | 270 | [[package]] 271 | name = "clap_lex" 272 | version = "0.3.3" 273 | source = "registry+https://github.com/rust-lang/crates.io-index" 274 | checksum = "033f6b7a4acb1f358c742aaca805c939ee73b4c6209ae4318ec7aca81c42e646" 275 | dependencies = [ 276 | "os_str_bytes", 277 | ] 278 | 279 | [[package]] 280 | name = "core-foundation" 281 | version = "0.9.3" 282 | source = "registry+https://github.com/rust-lang/crates.io-index" 283 | checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" 284 | dependencies = [ 285 | "core-foundation-sys", 286 | "libc", 287 | ] 288 | 289 | [[package]] 290 | name = "core-foundation-sys" 291 | version = "0.8.3" 292 | source = "registry+https://github.com/rust-lang/crates.io-index" 293 | checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" 294 | 295 | [[package]] 296 | name = "cpufeatures" 297 | version = "0.2.5" 298 | source = "registry+https://github.com/rust-lang/crates.io-index" 299 | checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" 300 | dependencies = [ 301 | "libc", 302 | ] 303 | 304 | [[package]] 305 | name = "crc32fast" 306 | version = "1.3.2" 307 | source = "registry+https://github.com/rust-lang/crates.io-index" 308 | checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" 309 | dependencies = [ 310 | "cfg-if", 311 | ] 312 | 313 | [[package]] 314 | name = "crossbeam-utils" 315 | version = "0.8.15" 316 | source = "registry+https://github.com/rust-lang/crates.io-index" 317 | checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" 318 | dependencies = [ 319 | "cfg-if", 320 | ] 321 | 322 | [[package]] 323 | name = "crypto-common" 324 | version = "0.1.6" 325 | source = "registry+https://github.com/rust-lang/crates.io-index" 326 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 327 | dependencies = [ 328 | "generic-array", 329 | "typenum", 330 | ] 331 | 332 | [[package]] 333 | name = "darling" 334 | version = "0.14.4" 335 | source = "registry+https://github.com/rust-lang/crates.io-index" 336 | checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" 337 | dependencies = [ 338 | "darling_core", 339 | "darling_macro", 340 | ] 341 | 342 | [[package]] 343 | name = "darling_core" 344 | version = "0.14.4" 345 | source = "registry+https://github.com/rust-lang/crates.io-index" 346 | checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" 347 | dependencies = [ 348 | "fnv", 349 | "ident_case", 350 | "proc-macro2", 351 | "quote", 352 | "strsim", 353 | "syn 1.0.109", 354 | ] 355 | 356 | [[package]] 357 | name = "darling_macro" 358 | version = "0.14.4" 359 | source = "registry+https://github.com/rust-lang/crates.io-index" 360 | checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" 361 | dependencies = [ 362 | "darling_core", 363 | "quote", 364 | "syn 1.0.109", 365 | ] 366 | 367 | [[package]] 368 | name = "derive_builder" 369 | version = "0.12.0" 370 | source = "registry+https://github.com/rust-lang/crates.io-index" 371 | checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" 372 | dependencies = [ 373 | "derive_builder_macro", 374 | ] 375 | 376 | [[package]] 377 | name = "derive_builder_core" 378 | version = "0.12.0" 379 | source = "registry+https://github.com/rust-lang/crates.io-index" 380 | checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" 381 | dependencies = [ 382 | "darling", 383 | "proc-macro2", 384 | "quote", 385 | "syn 1.0.109", 386 | ] 387 | 388 | [[package]] 389 | name = "derive_builder_macro" 390 | version = "0.12.0" 391 | source = "registry+https://github.com/rust-lang/crates.io-index" 392 | checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" 393 | dependencies = [ 394 | "derive_builder_core", 395 | "syn 1.0.109", 396 | ] 397 | 398 | [[package]] 399 | name = "digest" 400 | version = "0.10.6" 401 | source = "registry+https://github.com/rust-lang/crates.io-index" 402 | checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" 403 | dependencies = [ 404 | "block-buffer", 405 | "crypto-common", 406 | ] 407 | 408 | [[package]] 409 | name = "directories" 410 | version = "4.0.1" 411 | source = "registry+https://github.com/rust-lang/crates.io-index" 412 | checksum = "f51c5d4ddabd36886dd3e1438cb358cdcb0d7c499cb99cb4ac2e38e18b5cb210" 413 | dependencies = [ 414 | "dirs-sys", 415 | ] 416 | 417 | [[package]] 418 | name = "dirs-sys" 419 | version = "0.3.7" 420 | source = "registry+https://github.com/rust-lang/crates.io-index" 421 | checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" 422 | dependencies = [ 423 | "libc", 424 | "redox_users", 425 | "winapi", 426 | ] 427 | 428 | [[package]] 429 | name = "dunce" 430 | version = "1.0.3" 431 | source = "registry+https://github.com/rust-lang/crates.io-index" 432 | checksum = "0bd4b30a6560bbd9b4620f4de34c3f14f60848e58a9b7216801afcb4c7b31c3c" 433 | 434 | [[package]] 435 | name = "either" 436 | version = "1.8.1" 437 | source = "registry+https://github.com/rust-lang/crates.io-index" 438 | checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" 439 | 440 | [[package]] 441 | name = "encoding_rs" 442 | version = "0.8.32" 443 | source = "registry+https://github.com/rust-lang/crates.io-index" 444 | checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" 445 | dependencies = [ 446 | "cfg-if", 447 | ] 448 | 449 | [[package]] 450 | name = "errno" 451 | version = "0.2.8" 452 | source = "registry+https://github.com/rust-lang/crates.io-index" 453 | checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" 454 | dependencies = [ 455 | "errno-dragonfly", 456 | "libc", 457 | "winapi", 458 | ] 459 | 460 | [[package]] 461 | name = "errno-dragonfly" 462 | version = "0.1.2" 463 | source = "registry+https://github.com/rust-lang/crates.io-index" 464 | checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" 465 | dependencies = [ 466 | "cc", 467 | "libc", 468 | ] 469 | 470 | [[package]] 471 | name = "eventsource-stream" 472 | version = "0.2.3" 473 | source = "registry+https://github.com/rust-lang/crates.io-index" 474 | checksum = "74fef4569247a5f429d9156b9d0a2599914385dd189c539334c625d8099d90ab" 475 | dependencies = [ 476 | "futures-core", 477 | "nom", 478 | "pin-project-lite", 479 | ] 480 | 481 | [[package]] 482 | name = "fastrand" 483 | version = "1.9.0" 484 | source = "registry+https://github.com/rust-lang/crates.io-index" 485 | checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" 486 | dependencies = [ 487 | "instant", 488 | ] 489 | 490 | [[package]] 491 | name = "flate2" 492 | version = "1.0.25" 493 | source = "registry+https://github.com/rust-lang/crates.io-index" 494 | checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" 495 | dependencies = [ 496 | "crc32fast", 497 | "miniz_oxide", 498 | ] 499 | 500 | [[package]] 501 | name = "fnv" 502 | version = "1.0.7" 503 | source = "registry+https://github.com/rust-lang/crates.io-index" 504 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 505 | 506 | [[package]] 507 | name = "foreign-types" 508 | version = "0.3.2" 509 | source = "registry+https://github.com/rust-lang/crates.io-index" 510 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 511 | dependencies = [ 512 | "foreign-types-shared", 513 | ] 514 | 515 | [[package]] 516 | name = "foreign-types-shared" 517 | version = "0.1.1" 518 | source = "registry+https://github.com/rust-lang/crates.io-index" 519 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 520 | 521 | [[package]] 522 | name = "form_urlencoded" 523 | version = "1.1.0" 524 | source = "registry+https://github.com/rust-lang/crates.io-index" 525 | checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" 526 | dependencies = [ 527 | "percent-encoding", 528 | ] 529 | 530 | [[package]] 531 | name = "futures" 532 | version = "0.3.27" 533 | source = "registry+https://github.com/rust-lang/crates.io-index" 534 | checksum = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549" 535 | dependencies = [ 536 | "futures-channel", 537 | "futures-core", 538 | "futures-executor", 539 | "futures-io", 540 | "futures-sink", 541 | "futures-task", 542 | "futures-util", 543 | ] 544 | 545 | [[package]] 546 | name = "futures-channel" 547 | version = "0.3.27" 548 | source = "registry+https://github.com/rust-lang/crates.io-index" 549 | checksum = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac" 550 | dependencies = [ 551 | "futures-core", 552 | "futures-sink", 553 | ] 554 | 555 | [[package]] 556 | name = "futures-core" 557 | version = "0.3.27" 558 | source = "registry+https://github.com/rust-lang/crates.io-index" 559 | checksum = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd" 560 | 561 | [[package]] 562 | name = "futures-executor" 563 | version = "0.3.27" 564 | source = "registry+https://github.com/rust-lang/crates.io-index" 565 | checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83" 566 | dependencies = [ 567 | "futures-core", 568 | "futures-task", 569 | "futures-util", 570 | ] 571 | 572 | [[package]] 573 | name = "futures-io" 574 | version = "0.3.27" 575 | source = "registry+https://github.com/rust-lang/crates.io-index" 576 | checksum = "89d422fa3cbe3b40dca574ab087abb5bc98258ea57eea3fd6f1fa7162c778b91" 577 | 578 | [[package]] 579 | name = "futures-macro" 580 | version = "0.3.27" 581 | source = "registry+https://github.com/rust-lang/crates.io-index" 582 | checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6" 583 | dependencies = [ 584 | "proc-macro2", 585 | "quote", 586 | "syn 1.0.109", 587 | ] 588 | 589 | [[package]] 590 | name = "futures-sink" 591 | version = "0.3.27" 592 | source = "registry+https://github.com/rust-lang/crates.io-index" 593 | checksum = "ec93083a4aecafb2a80a885c9de1f0ccae9dbd32c2bb54b0c3a65690e0b8d2f2" 594 | 595 | [[package]] 596 | name = "futures-task" 597 | version = "0.3.27" 598 | source = "registry+https://github.com/rust-lang/crates.io-index" 599 | checksum = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879" 600 | 601 | [[package]] 602 | name = "futures-timer" 603 | version = "3.0.2" 604 | source = "registry+https://github.com/rust-lang/crates.io-index" 605 | checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" 606 | 607 | [[package]] 608 | name = "futures-util" 609 | version = "0.3.27" 610 | source = "registry+https://github.com/rust-lang/crates.io-index" 611 | checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" 612 | dependencies = [ 613 | "futures-channel", 614 | "futures-core", 615 | "futures-io", 616 | "futures-macro", 617 | "futures-sink", 618 | "futures-task", 619 | "memchr", 620 | "pin-project-lite", 621 | "pin-utils", 622 | "slab", 623 | ] 624 | 625 | [[package]] 626 | name = "generic-array" 627 | version = "0.14.6" 628 | source = "registry+https://github.com/rust-lang/crates.io-index" 629 | checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" 630 | dependencies = [ 631 | "typenum", 632 | "version_check", 633 | ] 634 | 635 | [[package]] 636 | name = "getrandom" 637 | version = "0.2.8" 638 | source = "registry+https://github.com/rust-lang/crates.io-index" 639 | checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" 640 | dependencies = [ 641 | "cfg-if", 642 | "libc", 643 | "wasi", 644 | ] 645 | 646 | [[package]] 647 | name = "h2" 648 | version = "0.3.16" 649 | source = "registry+https://github.com/rust-lang/crates.io-index" 650 | checksum = "5be7b54589b581f624f566bf5d8eb2bab1db736c51528720b6bd36b96b55924d" 651 | dependencies = [ 652 | "bytes", 653 | "fnv", 654 | "futures-core", 655 | "futures-sink", 656 | "futures-util", 657 | "http", 658 | "indexmap", 659 | "slab", 660 | "tokio", 661 | "tokio-util", 662 | "tracing", 663 | ] 664 | 665 | [[package]] 666 | name = "hashbrown" 667 | version = "0.12.3" 668 | source = "registry+https://github.com/rust-lang/crates.io-index" 669 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 670 | 671 | [[package]] 672 | name = "heck" 673 | version = "0.4.1" 674 | source = "registry+https://github.com/rust-lang/crates.io-index" 675 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 676 | 677 | [[package]] 678 | name = "hermit-abi" 679 | version = "0.2.6" 680 | source = "registry+https://github.com/rust-lang/crates.io-index" 681 | checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" 682 | dependencies = [ 683 | "libc", 684 | ] 685 | 686 | [[package]] 687 | name = "hermit-abi" 688 | version = "0.3.1" 689 | source = "registry+https://github.com/rust-lang/crates.io-index" 690 | checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" 691 | 692 | [[package]] 693 | name = "http" 694 | version = "0.2.9" 695 | source = "registry+https://github.com/rust-lang/crates.io-index" 696 | checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" 697 | dependencies = [ 698 | "bytes", 699 | "fnv", 700 | "itoa", 701 | ] 702 | 703 | [[package]] 704 | name = "http-body" 705 | version = "0.4.5" 706 | source = "registry+https://github.com/rust-lang/crates.io-index" 707 | checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" 708 | dependencies = [ 709 | "bytes", 710 | "http", 711 | "pin-project-lite", 712 | ] 713 | 714 | [[package]] 715 | name = "httparse" 716 | version = "1.8.0" 717 | source = "registry+https://github.com/rust-lang/crates.io-index" 718 | checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" 719 | 720 | [[package]] 721 | name = "httpdate" 722 | version = "1.0.2" 723 | source = "registry+https://github.com/rust-lang/crates.io-index" 724 | checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" 725 | 726 | [[package]] 727 | name = "hyper" 728 | version = "0.14.25" 729 | source = "registry+https://github.com/rust-lang/crates.io-index" 730 | checksum = "cc5e554ff619822309ffd57d8734d77cd5ce6238bc956f037ea06c58238c9899" 731 | dependencies = [ 732 | "bytes", 733 | "futures-channel", 734 | "futures-core", 735 | "futures-util", 736 | "h2", 737 | "http", 738 | "http-body", 739 | "httparse", 740 | "httpdate", 741 | "itoa", 742 | "pin-project-lite", 743 | "socket2", 744 | "tokio", 745 | "tower-service", 746 | "tracing", 747 | "want", 748 | ] 749 | 750 | [[package]] 751 | name = "hyper-rustls" 752 | version = "0.23.2" 753 | source = "registry+https://github.com/rust-lang/crates.io-index" 754 | checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" 755 | dependencies = [ 756 | "http", 757 | "hyper", 758 | "rustls", 759 | "tokio", 760 | "tokio-rustls", 761 | ] 762 | 763 | [[package]] 764 | name = "hyper-tls" 765 | version = "0.5.0" 766 | source = "registry+https://github.com/rust-lang/crates.io-index" 767 | checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" 768 | dependencies = [ 769 | "bytes", 770 | "hyper", 771 | "native-tls", 772 | "tokio", 773 | "tokio-native-tls", 774 | ] 775 | 776 | [[package]] 777 | name = "ident_case" 778 | version = "1.0.1" 779 | source = "registry+https://github.com/rust-lang/crates.io-index" 780 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 781 | 782 | [[package]] 783 | name = "idna" 784 | version = "0.3.0" 785 | source = "registry+https://github.com/rust-lang/crates.io-index" 786 | checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" 787 | dependencies = [ 788 | "unicode-bidi", 789 | "unicode-normalization", 790 | ] 791 | 792 | [[package]] 793 | name = "indexmap" 794 | version = "1.9.2" 795 | source = "registry+https://github.com/rust-lang/crates.io-index" 796 | checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" 797 | dependencies = [ 798 | "autocfg", 799 | "hashbrown", 800 | ] 801 | 802 | [[package]] 803 | name = "indoc" 804 | version = "2.0.1" 805 | source = "registry+https://github.com/rust-lang/crates.io-index" 806 | checksum = "9f2cb48b81b1dc9f39676bf99f5499babfec7cd8fe14307f7b3d747208fb5690" 807 | 808 | [[package]] 809 | name = "instant" 810 | version = "0.1.12" 811 | source = "registry+https://github.com/rust-lang/crates.io-index" 812 | checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" 813 | dependencies = [ 814 | "cfg-if", 815 | ] 816 | 817 | [[package]] 818 | name = "io-lifetimes" 819 | version = "1.0.9" 820 | source = "registry+https://github.com/rust-lang/crates.io-index" 821 | checksum = "09270fd4fa1111bc614ed2246c7ef56239a3063d5be0d1ec3b589c505d400aeb" 822 | dependencies = [ 823 | "hermit-abi 0.3.1", 824 | "libc", 825 | "windows-sys 0.45.0", 826 | ] 827 | 828 | [[package]] 829 | name = "ipnet" 830 | version = "2.7.1" 831 | source = "registry+https://github.com/rust-lang/crates.io-index" 832 | checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146" 833 | 834 | [[package]] 835 | name = "is-terminal" 836 | version = "0.4.5" 837 | source = "registry+https://github.com/rust-lang/crates.io-index" 838 | checksum = "8687c819457e979cc940d09cb16e42a1bf70aa6b60a549de6d3a62a0ee90c69e" 839 | dependencies = [ 840 | "hermit-abi 0.3.1", 841 | "io-lifetimes", 842 | "rustix", 843 | "windows-sys 0.45.0", 844 | ] 845 | 846 | [[package]] 847 | name = "itoa" 848 | version = "1.0.6" 849 | source = "registry+https://github.com/rust-lang/crates.io-index" 850 | checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" 851 | 852 | [[package]] 853 | name = "js-sys" 854 | version = "0.3.61" 855 | source = "registry+https://github.com/rust-lang/crates.io-index" 856 | checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" 857 | dependencies = [ 858 | "wasm-bindgen", 859 | ] 860 | 861 | [[package]] 862 | name = "lazy_static" 863 | version = "1.4.0" 864 | source = "registry+https://github.com/rust-lang/crates.io-index" 865 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 866 | 867 | [[package]] 868 | name = "libc" 869 | version = "0.2.140" 870 | source = "registry+https://github.com/rust-lang/crates.io-index" 871 | checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c" 872 | 873 | [[package]] 874 | name = "linux-raw-sys" 875 | version = "0.1.4" 876 | source = "registry+https://github.com/rust-lang/crates.io-index" 877 | checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" 878 | 879 | [[package]] 880 | name = "lock_api" 881 | version = "0.4.9" 882 | source = "registry+https://github.com/rust-lang/crates.io-index" 883 | checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" 884 | dependencies = [ 885 | "autocfg", 886 | "scopeguard", 887 | ] 888 | 889 | [[package]] 890 | name = "log" 891 | version = "0.4.17" 892 | source = "registry+https://github.com/rust-lang/crates.io-index" 893 | checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" 894 | dependencies = [ 895 | "cfg-if", 896 | ] 897 | 898 | [[package]] 899 | name = "matchers" 900 | version = "0.1.0" 901 | source = "registry+https://github.com/rust-lang/crates.io-index" 902 | checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" 903 | dependencies = [ 904 | "regex-automata", 905 | ] 906 | 907 | [[package]] 908 | name = "memchr" 909 | version = "2.5.0" 910 | source = "registry+https://github.com/rust-lang/crates.io-index" 911 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 912 | 913 | [[package]] 914 | name = "mime" 915 | version = "0.3.17" 916 | source = "registry+https://github.com/rust-lang/crates.io-index" 917 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 918 | 919 | [[package]] 920 | name = "mime_guess" 921 | version = "2.0.4" 922 | source = "registry+https://github.com/rust-lang/crates.io-index" 923 | checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" 924 | dependencies = [ 925 | "mime", 926 | "unicase", 927 | ] 928 | 929 | [[package]] 930 | name = "minimal-lexical" 931 | version = "0.2.1" 932 | source = "registry+https://github.com/rust-lang/crates.io-index" 933 | checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 934 | 935 | [[package]] 936 | name = "miniz_oxide" 937 | version = "0.6.2" 938 | source = "registry+https://github.com/rust-lang/crates.io-index" 939 | checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" 940 | dependencies = [ 941 | "adler", 942 | ] 943 | 944 | [[package]] 945 | name = "mio" 946 | version = "0.8.6" 947 | source = "registry+https://github.com/rust-lang/crates.io-index" 948 | checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" 949 | dependencies = [ 950 | "libc", 951 | "log", 952 | "wasi", 953 | "windows-sys 0.45.0", 954 | ] 955 | 956 | [[package]] 957 | name = "native-tls" 958 | version = "0.2.11" 959 | source = "registry+https://github.com/rust-lang/crates.io-index" 960 | checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" 961 | dependencies = [ 962 | "lazy_static", 963 | "libc", 964 | "log", 965 | "openssl", 966 | "openssl-probe", 967 | "openssl-sys", 968 | "schannel", 969 | "security-framework", 970 | "security-framework-sys", 971 | "tempfile", 972 | ] 973 | 974 | [[package]] 975 | name = "nom" 976 | version = "7.1.3" 977 | source = "registry+https://github.com/rust-lang/crates.io-index" 978 | checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 979 | dependencies = [ 980 | "memchr", 981 | "minimal-lexical", 982 | ] 983 | 984 | [[package]] 985 | name = "nu-ansi-term" 986 | version = "0.46.0" 987 | source = "registry+https://github.com/rust-lang/crates.io-index" 988 | checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" 989 | dependencies = [ 990 | "overload", 991 | "winapi", 992 | ] 993 | 994 | [[package]] 995 | name = "num_cpus" 996 | version = "1.15.0" 997 | source = "registry+https://github.com/rust-lang/crates.io-index" 998 | checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" 999 | dependencies = [ 1000 | "hermit-abi 0.2.6", 1001 | "libc", 1002 | ] 1003 | 1004 | [[package]] 1005 | name = "once_cell" 1006 | version = "1.17.1" 1007 | source = "registry+https://github.com/rust-lang/crates.io-index" 1008 | checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" 1009 | 1010 | [[package]] 1011 | name = "openssl" 1012 | version = "0.10.47" 1013 | source = "registry+https://github.com/rust-lang/crates.io-index" 1014 | checksum = "d8b277f87dacc05a6b709965d1cbafac4649d6ce9f3ce9ceb88508b5666dfec9" 1015 | dependencies = [ 1016 | "bitflags 1.3.2", 1017 | "cfg-if", 1018 | "foreign-types", 1019 | "libc", 1020 | "once_cell", 1021 | "openssl-macros", 1022 | "openssl-sys", 1023 | ] 1024 | 1025 | [[package]] 1026 | name = "openssl-macros" 1027 | version = "0.1.0" 1028 | source = "registry+https://github.com/rust-lang/crates.io-index" 1029 | checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" 1030 | dependencies = [ 1031 | "proc-macro2", 1032 | "quote", 1033 | "syn 1.0.109", 1034 | ] 1035 | 1036 | [[package]] 1037 | name = "openssl-probe" 1038 | version = "0.1.5" 1039 | source = "registry+https://github.com/rust-lang/crates.io-index" 1040 | checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 1041 | 1042 | [[package]] 1043 | name = "openssl-sys" 1044 | version = "0.9.82" 1045 | source = "registry+https://github.com/rust-lang/crates.io-index" 1046 | checksum = "a95792af3c4e0153c3914df2261bedd30a98476f94dc892b67dfe1d89d433a04" 1047 | dependencies = [ 1048 | "autocfg", 1049 | "cc", 1050 | "libc", 1051 | "pkg-config", 1052 | "vcpkg", 1053 | ] 1054 | 1055 | [[package]] 1056 | name = "os_info" 1057 | version = "3.7.0" 1058 | source = "registry+https://github.com/rust-lang/crates.io-index" 1059 | checksum = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e" 1060 | dependencies = [ 1061 | "log", 1062 | "winapi", 1063 | ] 1064 | 1065 | [[package]] 1066 | name = "os_str_bytes" 1067 | version = "6.5.0" 1068 | source = "registry+https://github.com/rust-lang/crates.io-index" 1069 | checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" 1070 | 1071 | [[package]] 1072 | name = "overload" 1073 | version = "0.1.1" 1074 | source = "registry+https://github.com/rust-lang/crates.io-index" 1075 | checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" 1076 | 1077 | [[package]] 1078 | name = "parking_lot" 1079 | version = "0.12.1" 1080 | source = "registry+https://github.com/rust-lang/crates.io-index" 1081 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 1082 | dependencies = [ 1083 | "lock_api", 1084 | "parking_lot_core", 1085 | ] 1086 | 1087 | [[package]] 1088 | name = "parking_lot_core" 1089 | version = "0.9.7" 1090 | source = "registry+https://github.com/rust-lang/crates.io-index" 1091 | checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" 1092 | dependencies = [ 1093 | "cfg-if", 1094 | "libc", 1095 | "redox_syscall", 1096 | "smallvec", 1097 | "windows-sys 0.45.0", 1098 | ] 1099 | 1100 | [[package]] 1101 | name = "percent-encoding" 1102 | version = "2.2.0" 1103 | source = "registry+https://github.com/rust-lang/crates.io-index" 1104 | checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" 1105 | 1106 | [[package]] 1107 | name = "pin-project-lite" 1108 | version = "0.2.9" 1109 | source = "registry+https://github.com/rust-lang/crates.io-index" 1110 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" 1111 | 1112 | [[package]] 1113 | name = "pin-utils" 1114 | version = "0.1.0" 1115 | source = "registry+https://github.com/rust-lang/crates.io-index" 1116 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 1117 | 1118 | [[package]] 1119 | name = "pkg-config" 1120 | version = "0.3.26" 1121 | source = "registry+https://github.com/rust-lang/crates.io-index" 1122 | checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" 1123 | 1124 | [[package]] 1125 | name = "ppv-lite86" 1126 | version = "0.2.17" 1127 | source = "registry+https://github.com/rust-lang/crates.io-index" 1128 | checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 1129 | 1130 | [[package]] 1131 | name = "proc-macro-error" 1132 | version = "1.0.4" 1133 | source = "registry+https://github.com/rust-lang/crates.io-index" 1134 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 1135 | dependencies = [ 1136 | "proc-macro-error-attr", 1137 | "proc-macro2", 1138 | "quote", 1139 | "syn 1.0.109", 1140 | "version_check", 1141 | ] 1142 | 1143 | [[package]] 1144 | name = "proc-macro-error-attr" 1145 | version = "1.0.4" 1146 | source = "registry+https://github.com/rust-lang/crates.io-index" 1147 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 1148 | dependencies = [ 1149 | "proc-macro2", 1150 | "quote", 1151 | "version_check", 1152 | ] 1153 | 1154 | [[package]] 1155 | name = "proc-macro2" 1156 | version = "1.0.52" 1157 | source = "registry+https://github.com/rust-lang/crates.io-index" 1158 | checksum = "1d0e1ae9e836cc3beddd63db0df682593d7e2d3d891ae8c9083d2113e1744224" 1159 | dependencies = [ 1160 | "unicode-ident", 1161 | ] 1162 | 1163 | [[package]] 1164 | name = "quote" 1165 | version = "1.0.26" 1166 | source = "registry+https://github.com/rust-lang/crates.io-index" 1167 | checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" 1168 | dependencies = [ 1169 | "proc-macro2", 1170 | ] 1171 | 1172 | [[package]] 1173 | name = "rand" 1174 | version = "0.8.5" 1175 | source = "registry+https://github.com/rust-lang/crates.io-index" 1176 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 1177 | dependencies = [ 1178 | "libc", 1179 | "rand_chacha", 1180 | "rand_core", 1181 | ] 1182 | 1183 | [[package]] 1184 | name = "rand_chacha" 1185 | version = "0.3.1" 1186 | source = "registry+https://github.com/rust-lang/crates.io-index" 1187 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 1188 | dependencies = [ 1189 | "ppv-lite86", 1190 | "rand_core", 1191 | ] 1192 | 1193 | [[package]] 1194 | name = "rand_core" 1195 | version = "0.6.4" 1196 | source = "registry+https://github.com/rust-lang/crates.io-index" 1197 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 1198 | dependencies = [ 1199 | "getrandom", 1200 | ] 1201 | 1202 | [[package]] 1203 | name = "redox_syscall" 1204 | version = "0.2.16" 1205 | source = "registry+https://github.com/rust-lang/crates.io-index" 1206 | checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" 1207 | dependencies = [ 1208 | "bitflags 1.3.2", 1209 | ] 1210 | 1211 | [[package]] 1212 | name = "redox_users" 1213 | version = "0.4.3" 1214 | source = "registry+https://github.com/rust-lang/crates.io-index" 1215 | checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" 1216 | dependencies = [ 1217 | "getrandom", 1218 | "redox_syscall", 1219 | "thiserror", 1220 | ] 1221 | 1222 | [[package]] 1223 | name = "regex" 1224 | version = "1.7.2" 1225 | source = "registry+https://github.com/rust-lang/crates.io-index" 1226 | checksum = "cce168fea28d3e05f158bda4576cf0c844d5045bc2cc3620fa0292ed5bb5814c" 1227 | dependencies = [ 1228 | "aho-corasick", 1229 | "memchr", 1230 | "regex-syntax", 1231 | ] 1232 | 1233 | [[package]] 1234 | name = "regex-automata" 1235 | version = "0.1.10" 1236 | source = "registry+https://github.com/rust-lang/crates.io-index" 1237 | checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" 1238 | dependencies = [ 1239 | "regex-syntax", 1240 | ] 1241 | 1242 | [[package]] 1243 | name = "regex-syntax" 1244 | version = "0.6.29" 1245 | source = "registry+https://github.com/rust-lang/crates.io-index" 1246 | checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" 1247 | 1248 | [[package]] 1249 | name = "reqwest" 1250 | version = "0.11.15" 1251 | source = "registry+https://github.com/rust-lang/crates.io-index" 1252 | checksum = "0ba30cc2c0cd02af1222ed216ba659cdb2f879dfe3181852fe7c50b1d0005949" 1253 | dependencies = [ 1254 | "base64 0.21.0", 1255 | "bytes", 1256 | "encoding_rs", 1257 | "futures-core", 1258 | "futures-util", 1259 | "h2", 1260 | "http", 1261 | "http-body", 1262 | "hyper", 1263 | "hyper-rustls", 1264 | "hyper-tls", 1265 | "ipnet", 1266 | "js-sys", 1267 | "log", 1268 | "mime", 1269 | "mime_guess", 1270 | "native-tls", 1271 | "once_cell", 1272 | "percent-encoding", 1273 | "pin-project-lite", 1274 | "rustls", 1275 | "rustls-native-certs", 1276 | "rustls-pemfile", 1277 | "serde", 1278 | "serde_json", 1279 | "serde_urlencoded", 1280 | "tokio", 1281 | "tokio-native-tls", 1282 | "tokio-rustls", 1283 | "tokio-util", 1284 | "tower-service", 1285 | "url", 1286 | "wasm-bindgen", 1287 | "wasm-bindgen-futures", 1288 | "wasm-streams", 1289 | "web-sys", 1290 | "winreg", 1291 | ] 1292 | 1293 | [[package]] 1294 | name = "reqwest-eventsource" 1295 | version = "0.4.0" 1296 | source = "registry+https://github.com/rust-lang/crates.io-index" 1297 | checksum = "8f03f570355882dd8d15acc3a313841e6e90eddbc76a93c748fd82cc13ba9f51" 1298 | dependencies = [ 1299 | "eventsource-stream", 1300 | "futures-core", 1301 | "futures-timer", 1302 | "mime", 1303 | "nom", 1304 | "pin-project-lite", 1305 | "reqwest", 1306 | "thiserror", 1307 | ] 1308 | 1309 | [[package]] 1310 | name = "ring" 1311 | version = "0.16.20" 1312 | source = "registry+https://github.com/rust-lang/crates.io-index" 1313 | checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" 1314 | dependencies = [ 1315 | "cc", 1316 | "libc", 1317 | "once_cell", 1318 | "spin", 1319 | "untrusted", 1320 | "web-sys", 1321 | "winapi", 1322 | ] 1323 | 1324 | [[package]] 1325 | name = "rustix" 1326 | version = "0.36.11" 1327 | source = "registry+https://github.com/rust-lang/crates.io-index" 1328 | checksum = "db4165c9963ab29e422d6c26fbc1d37f15bace6b2810221f9d925023480fcf0e" 1329 | dependencies = [ 1330 | "bitflags 1.3.2", 1331 | "errno", 1332 | "io-lifetimes", 1333 | "libc", 1334 | "linux-raw-sys", 1335 | "windows-sys 0.45.0", 1336 | ] 1337 | 1338 | [[package]] 1339 | name = "rustls" 1340 | version = "0.20.8" 1341 | source = "registry+https://github.com/rust-lang/crates.io-index" 1342 | checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" 1343 | dependencies = [ 1344 | "log", 1345 | "ring", 1346 | "sct", 1347 | "webpki", 1348 | ] 1349 | 1350 | [[package]] 1351 | name = "rustls-native-certs" 1352 | version = "0.6.2" 1353 | source = "registry+https://github.com/rust-lang/crates.io-index" 1354 | checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" 1355 | dependencies = [ 1356 | "openssl-probe", 1357 | "rustls-pemfile", 1358 | "schannel", 1359 | "security-framework", 1360 | ] 1361 | 1362 | [[package]] 1363 | name = "rustls-pemfile" 1364 | version = "1.0.2" 1365 | source = "registry+https://github.com/rust-lang/crates.io-index" 1366 | checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" 1367 | dependencies = [ 1368 | "base64 0.21.0", 1369 | ] 1370 | 1371 | [[package]] 1372 | name = "ryu" 1373 | version = "1.0.13" 1374 | source = "registry+https://github.com/rust-lang/crates.io-index" 1375 | checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" 1376 | 1377 | [[package]] 1378 | name = "schannel" 1379 | version = "0.1.21" 1380 | source = "registry+https://github.com/rust-lang/crates.io-index" 1381 | checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" 1382 | dependencies = [ 1383 | "windows-sys 0.42.0", 1384 | ] 1385 | 1386 | [[package]] 1387 | name = "scopeguard" 1388 | version = "1.1.0" 1389 | source = "registry+https://github.com/rust-lang/crates.io-index" 1390 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" 1391 | 1392 | [[package]] 1393 | name = "sct" 1394 | version = "0.7.0" 1395 | source = "registry+https://github.com/rust-lang/crates.io-index" 1396 | checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" 1397 | dependencies = [ 1398 | "ring", 1399 | "untrusted", 1400 | ] 1401 | 1402 | [[package]] 1403 | name = "security-framework" 1404 | version = "2.8.2" 1405 | source = "registry+https://github.com/rust-lang/crates.io-index" 1406 | checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" 1407 | dependencies = [ 1408 | "bitflags 1.3.2", 1409 | "core-foundation", 1410 | "core-foundation-sys", 1411 | "libc", 1412 | "security-framework-sys", 1413 | ] 1414 | 1415 | [[package]] 1416 | name = "security-framework-sys" 1417 | version = "2.8.0" 1418 | source = "registry+https://github.com/rust-lang/crates.io-index" 1419 | checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" 1420 | dependencies = [ 1421 | "core-foundation-sys", 1422 | "libc", 1423 | ] 1424 | 1425 | [[package]] 1426 | name = "serde" 1427 | version = "1.0.158" 1428 | source = "registry+https://github.com/rust-lang/crates.io-index" 1429 | checksum = "771d4d9c4163ee138805e12c710dd365e4f44be8be0503cb1bb9eb989425d9c9" 1430 | dependencies = [ 1431 | "serde_derive", 1432 | ] 1433 | 1434 | [[package]] 1435 | name = "serde_derive" 1436 | version = "1.0.158" 1437 | source = "registry+https://github.com/rust-lang/crates.io-index" 1438 | checksum = "e801c1712f48475582b7696ac71e0ca34ebb30e09338425384269d9717c62cad" 1439 | dependencies = [ 1440 | "proc-macro2", 1441 | "quote", 1442 | "syn 2.0.4", 1443 | ] 1444 | 1445 | [[package]] 1446 | name = "serde_json" 1447 | version = "1.0.94" 1448 | source = "registry+https://github.com/rust-lang/crates.io-index" 1449 | checksum = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea" 1450 | dependencies = [ 1451 | "itoa", 1452 | "ryu", 1453 | "serde", 1454 | ] 1455 | 1456 | [[package]] 1457 | name = "serde_urlencoded" 1458 | version = "0.7.1" 1459 | source = "registry+https://github.com/rust-lang/crates.io-index" 1460 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 1461 | dependencies = [ 1462 | "form_urlencoded", 1463 | "itoa", 1464 | "ryu", 1465 | "serde", 1466 | ] 1467 | 1468 | [[package]] 1469 | name = "sha1" 1470 | version = "0.10.5" 1471 | source = "registry+https://github.com/rust-lang/crates.io-index" 1472 | checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" 1473 | dependencies = [ 1474 | "cfg-if", 1475 | "cpufeatures", 1476 | "digest", 1477 | ] 1478 | 1479 | [[package]] 1480 | name = "sharded-slab" 1481 | version = "0.1.4" 1482 | source = "registry+https://github.com/rust-lang/crates.io-index" 1483 | checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" 1484 | dependencies = [ 1485 | "lazy_static", 1486 | ] 1487 | 1488 | [[package]] 1489 | name = "signal-hook-registry" 1490 | version = "1.4.1" 1491 | source = "registry+https://github.com/rust-lang/crates.io-index" 1492 | checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" 1493 | dependencies = [ 1494 | "libc", 1495 | ] 1496 | 1497 | [[package]] 1498 | name = "slab" 1499 | version = "0.4.8" 1500 | source = "registry+https://github.com/rust-lang/crates.io-index" 1501 | checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" 1502 | dependencies = [ 1503 | "autocfg", 1504 | ] 1505 | 1506 | [[package]] 1507 | name = "smallvec" 1508 | version = "1.10.0" 1509 | source = "registry+https://github.com/rust-lang/crates.io-index" 1510 | checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" 1511 | 1512 | [[package]] 1513 | name = "socket2" 1514 | version = "0.4.9" 1515 | source = "registry+https://github.com/rust-lang/crates.io-index" 1516 | checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" 1517 | dependencies = [ 1518 | "libc", 1519 | "winapi", 1520 | ] 1521 | 1522 | [[package]] 1523 | name = "spin" 1524 | version = "0.5.2" 1525 | source = "registry+https://github.com/rust-lang/crates.io-index" 1526 | checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" 1527 | 1528 | [[package]] 1529 | name = "strsim" 1530 | version = "0.10.0" 1531 | source = "registry+https://github.com/rust-lang/crates.io-index" 1532 | checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" 1533 | 1534 | [[package]] 1535 | name = "syn" 1536 | version = "1.0.109" 1537 | source = "registry+https://github.com/rust-lang/crates.io-index" 1538 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 1539 | dependencies = [ 1540 | "proc-macro2", 1541 | "quote", 1542 | "unicode-ident", 1543 | ] 1544 | 1545 | [[package]] 1546 | name = "syn" 1547 | version = "2.0.4" 1548 | source = "registry+https://github.com/rust-lang/crates.io-index" 1549 | checksum = "2c622ae390c9302e214c31013517c2061ecb2699935882c60a9b37f82f8625ae" 1550 | dependencies = [ 1551 | "proc-macro2", 1552 | "quote", 1553 | "unicode-ident", 1554 | ] 1555 | 1556 | [[package]] 1557 | name = "tempfile" 1558 | version = "3.4.0" 1559 | source = "registry+https://github.com/rust-lang/crates.io-index" 1560 | checksum = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95" 1561 | dependencies = [ 1562 | "cfg-if", 1563 | "fastrand", 1564 | "redox_syscall", 1565 | "rustix", 1566 | "windows-sys 0.42.0", 1567 | ] 1568 | 1569 | [[package]] 1570 | name = "termcolor" 1571 | version = "1.2.0" 1572 | source = "registry+https://github.com/rust-lang/crates.io-index" 1573 | checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" 1574 | dependencies = [ 1575 | "winapi-util", 1576 | ] 1577 | 1578 | [[package]] 1579 | name = "thiserror" 1580 | version = "1.0.40" 1581 | source = "registry+https://github.com/rust-lang/crates.io-index" 1582 | checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" 1583 | dependencies = [ 1584 | "thiserror-impl", 1585 | ] 1586 | 1587 | [[package]] 1588 | name = "thiserror-impl" 1589 | version = "1.0.40" 1590 | source = "registry+https://github.com/rust-lang/crates.io-index" 1591 | checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" 1592 | dependencies = [ 1593 | "proc-macro2", 1594 | "quote", 1595 | "syn 2.0.4", 1596 | ] 1597 | 1598 | [[package]] 1599 | name = "thread_local" 1600 | version = "1.1.7" 1601 | source = "registry+https://github.com/rust-lang/crates.io-index" 1602 | checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" 1603 | dependencies = [ 1604 | "cfg-if", 1605 | "once_cell", 1606 | ] 1607 | 1608 | [[package]] 1609 | name = "tinyvec" 1610 | version = "1.6.0" 1611 | source = "registry+https://github.com/rust-lang/crates.io-index" 1612 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 1613 | dependencies = [ 1614 | "tinyvec_macros", 1615 | ] 1616 | 1617 | [[package]] 1618 | name = "tinyvec_macros" 1619 | version = "0.1.1" 1620 | source = "registry+https://github.com/rust-lang/crates.io-index" 1621 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 1622 | 1623 | [[package]] 1624 | name = "tokio" 1625 | version = "1.26.0" 1626 | source = "registry+https://github.com/rust-lang/crates.io-index" 1627 | checksum = "03201d01c3c27a29c8a5cee5b55a93ddae1ccf6f08f65365c2c918f8c1b76f64" 1628 | dependencies = [ 1629 | "autocfg", 1630 | "bytes", 1631 | "libc", 1632 | "memchr", 1633 | "mio", 1634 | "num_cpus", 1635 | "parking_lot", 1636 | "pin-project-lite", 1637 | "signal-hook-registry", 1638 | "socket2", 1639 | "tokio-macros", 1640 | "windows-sys 0.45.0", 1641 | ] 1642 | 1643 | [[package]] 1644 | name = "tokio-macros" 1645 | version = "1.8.2" 1646 | source = "registry+https://github.com/rust-lang/crates.io-index" 1647 | checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" 1648 | dependencies = [ 1649 | "proc-macro2", 1650 | "quote", 1651 | "syn 1.0.109", 1652 | ] 1653 | 1654 | [[package]] 1655 | name = "tokio-native-tls" 1656 | version = "0.3.1" 1657 | source = "registry+https://github.com/rust-lang/crates.io-index" 1658 | checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" 1659 | dependencies = [ 1660 | "native-tls", 1661 | "tokio", 1662 | ] 1663 | 1664 | [[package]] 1665 | name = "tokio-rustls" 1666 | version = "0.23.4" 1667 | source = "registry+https://github.com/rust-lang/crates.io-index" 1668 | checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" 1669 | dependencies = [ 1670 | "rustls", 1671 | "tokio", 1672 | "webpki", 1673 | ] 1674 | 1675 | [[package]] 1676 | name = "tokio-stream" 1677 | version = "0.1.12" 1678 | source = "registry+https://github.com/rust-lang/crates.io-index" 1679 | checksum = "8fb52b74f05dbf495a8fba459fdc331812b96aa086d9eb78101fa0d4569c3313" 1680 | dependencies = [ 1681 | "futures-core", 1682 | "pin-project-lite", 1683 | "tokio", 1684 | ] 1685 | 1686 | [[package]] 1687 | name = "tokio-util" 1688 | version = "0.7.7" 1689 | source = "registry+https://github.com/rust-lang/crates.io-index" 1690 | checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2" 1691 | dependencies = [ 1692 | "bytes", 1693 | "futures-core", 1694 | "futures-sink", 1695 | "pin-project-lite", 1696 | "tokio", 1697 | "tracing", 1698 | ] 1699 | 1700 | [[package]] 1701 | name = "tower-service" 1702 | version = "0.3.2" 1703 | source = "registry+https://github.com/rust-lang/crates.io-index" 1704 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 1705 | 1706 | [[package]] 1707 | name = "tracing" 1708 | version = "0.1.37" 1709 | source = "registry+https://github.com/rust-lang/crates.io-index" 1710 | checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" 1711 | dependencies = [ 1712 | "cfg-if", 1713 | "pin-project-lite", 1714 | "tracing-attributes", 1715 | "tracing-core", 1716 | ] 1717 | 1718 | [[package]] 1719 | name = "tracing-attributes" 1720 | version = "0.1.23" 1721 | source = "registry+https://github.com/rust-lang/crates.io-index" 1722 | checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" 1723 | dependencies = [ 1724 | "proc-macro2", 1725 | "quote", 1726 | "syn 1.0.109", 1727 | ] 1728 | 1729 | [[package]] 1730 | name = "tracing-core" 1731 | version = "0.1.30" 1732 | source = "registry+https://github.com/rust-lang/crates.io-index" 1733 | checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" 1734 | dependencies = [ 1735 | "once_cell", 1736 | "valuable", 1737 | ] 1738 | 1739 | [[package]] 1740 | name = "tracing-log" 1741 | version = "0.1.3" 1742 | source = "registry+https://github.com/rust-lang/crates.io-index" 1743 | checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" 1744 | dependencies = [ 1745 | "lazy_static", 1746 | "log", 1747 | "tracing-core", 1748 | ] 1749 | 1750 | [[package]] 1751 | name = "tracing-subscriber" 1752 | version = "0.3.16" 1753 | source = "registry+https://github.com/rust-lang/crates.io-index" 1754 | checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" 1755 | dependencies = [ 1756 | "matchers", 1757 | "nu-ansi-term", 1758 | "once_cell", 1759 | "regex", 1760 | "sharded-slab", 1761 | "smallvec", 1762 | "thread_local", 1763 | "tracing", 1764 | "tracing-core", 1765 | "tracing-log", 1766 | ] 1767 | 1768 | [[package]] 1769 | name = "try-lock" 1770 | version = "0.2.4" 1771 | source = "registry+https://github.com/rust-lang/crates.io-index" 1772 | checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" 1773 | 1774 | [[package]] 1775 | name = "tungstenite" 1776 | version = "0.18.0" 1777 | source = "registry+https://github.com/rust-lang/crates.io-index" 1778 | checksum = "30ee6ab729cd4cf0fd55218530c4522ed30b7b6081752839b68fcec8d0960788" 1779 | dependencies = [ 1780 | "base64 0.13.1", 1781 | "byteorder", 1782 | "bytes", 1783 | "http", 1784 | "httparse", 1785 | "log", 1786 | "rand", 1787 | "sha1", 1788 | "thiserror", 1789 | "url", 1790 | "utf-8", 1791 | ] 1792 | 1793 | [[package]] 1794 | name = "typenum" 1795 | version = "1.16.0" 1796 | source = "registry+https://github.com/rust-lang/crates.io-index" 1797 | checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" 1798 | 1799 | [[package]] 1800 | name = "unicase" 1801 | version = "2.6.0" 1802 | source = "registry+https://github.com/rust-lang/crates.io-index" 1803 | checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" 1804 | dependencies = [ 1805 | "version_check", 1806 | ] 1807 | 1808 | [[package]] 1809 | name = "unicode-bidi" 1810 | version = "0.3.13" 1811 | source = "registry+https://github.com/rust-lang/crates.io-index" 1812 | checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" 1813 | 1814 | [[package]] 1815 | name = "unicode-ident" 1816 | version = "1.0.8" 1817 | source = "registry+https://github.com/rust-lang/crates.io-index" 1818 | checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" 1819 | 1820 | [[package]] 1821 | name = "unicode-normalization" 1822 | version = "0.1.22" 1823 | source = "registry+https://github.com/rust-lang/crates.io-index" 1824 | checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 1825 | dependencies = [ 1826 | "tinyvec", 1827 | ] 1828 | 1829 | [[package]] 1830 | name = "untrusted" 1831 | version = "0.7.1" 1832 | source = "registry+https://github.com/rust-lang/crates.io-index" 1833 | checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" 1834 | 1835 | [[package]] 1836 | name = "url" 1837 | version = "2.3.1" 1838 | source = "registry+https://github.com/rust-lang/crates.io-index" 1839 | checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" 1840 | dependencies = [ 1841 | "form_urlencoded", 1842 | "idna", 1843 | "percent-encoding", 1844 | ] 1845 | 1846 | [[package]] 1847 | name = "utf-8" 1848 | version = "0.7.6" 1849 | source = "registry+https://github.com/rust-lang/crates.io-index" 1850 | checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" 1851 | 1852 | [[package]] 1853 | name = "valuable" 1854 | version = "0.1.0" 1855 | source = "registry+https://github.com/rust-lang/crates.io-index" 1856 | checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" 1857 | 1858 | [[package]] 1859 | name = "vcpkg" 1860 | version = "0.2.15" 1861 | source = "registry+https://github.com/rust-lang/crates.io-index" 1862 | checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 1863 | 1864 | [[package]] 1865 | name = "version_check" 1866 | version = "0.9.4" 1867 | source = "registry+https://github.com/rust-lang/crates.io-index" 1868 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 1869 | 1870 | [[package]] 1871 | name = "want" 1872 | version = "0.3.0" 1873 | source = "registry+https://github.com/rust-lang/crates.io-index" 1874 | checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" 1875 | dependencies = [ 1876 | "log", 1877 | "try-lock", 1878 | ] 1879 | 1880 | [[package]] 1881 | name = "wasi" 1882 | version = "0.11.0+wasi-snapshot-preview1" 1883 | source = "registry+https://github.com/rust-lang/crates.io-index" 1884 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 1885 | 1886 | [[package]] 1887 | name = "wasm-bindgen" 1888 | version = "0.2.84" 1889 | source = "registry+https://github.com/rust-lang/crates.io-index" 1890 | checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" 1891 | dependencies = [ 1892 | "cfg-if", 1893 | "wasm-bindgen-macro", 1894 | ] 1895 | 1896 | [[package]] 1897 | name = "wasm-bindgen-backend" 1898 | version = "0.2.84" 1899 | source = "registry+https://github.com/rust-lang/crates.io-index" 1900 | checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" 1901 | dependencies = [ 1902 | "bumpalo", 1903 | "log", 1904 | "once_cell", 1905 | "proc-macro2", 1906 | "quote", 1907 | "syn 1.0.109", 1908 | "wasm-bindgen-shared", 1909 | ] 1910 | 1911 | [[package]] 1912 | name = "wasm-bindgen-futures" 1913 | version = "0.4.34" 1914 | source = "registry+https://github.com/rust-lang/crates.io-index" 1915 | checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" 1916 | dependencies = [ 1917 | "cfg-if", 1918 | "js-sys", 1919 | "wasm-bindgen", 1920 | "web-sys", 1921 | ] 1922 | 1923 | [[package]] 1924 | name = "wasm-bindgen-macro" 1925 | version = "0.2.84" 1926 | source = "registry+https://github.com/rust-lang/crates.io-index" 1927 | checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" 1928 | dependencies = [ 1929 | "quote", 1930 | "wasm-bindgen-macro-support", 1931 | ] 1932 | 1933 | [[package]] 1934 | name = "wasm-bindgen-macro-support" 1935 | version = "0.2.84" 1936 | source = "registry+https://github.com/rust-lang/crates.io-index" 1937 | checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" 1938 | dependencies = [ 1939 | "proc-macro2", 1940 | "quote", 1941 | "syn 1.0.109", 1942 | "wasm-bindgen-backend", 1943 | "wasm-bindgen-shared", 1944 | ] 1945 | 1946 | [[package]] 1947 | name = "wasm-bindgen-shared" 1948 | version = "0.2.84" 1949 | source = "registry+https://github.com/rust-lang/crates.io-index" 1950 | checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" 1951 | 1952 | [[package]] 1953 | name = "wasm-streams" 1954 | version = "0.2.3" 1955 | source = "registry+https://github.com/rust-lang/crates.io-index" 1956 | checksum = "6bbae3363c08332cadccd13b67db371814cd214c2524020932f0804b8cf7c078" 1957 | dependencies = [ 1958 | "futures-util", 1959 | "js-sys", 1960 | "wasm-bindgen", 1961 | "wasm-bindgen-futures", 1962 | "web-sys", 1963 | ] 1964 | 1965 | [[package]] 1966 | name = "web-sys" 1967 | version = "0.3.61" 1968 | source = "registry+https://github.com/rust-lang/crates.io-index" 1969 | checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" 1970 | dependencies = [ 1971 | "js-sys", 1972 | "wasm-bindgen", 1973 | ] 1974 | 1975 | [[package]] 1976 | name = "webpki" 1977 | version = "0.22.0" 1978 | source = "registry+https://github.com/rust-lang/crates.io-index" 1979 | checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" 1980 | dependencies = [ 1981 | "ring", 1982 | "untrusted", 1983 | ] 1984 | 1985 | [[package]] 1986 | name = "which" 1987 | version = "4.4.0" 1988 | source = "registry+https://github.com/rust-lang/crates.io-index" 1989 | checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" 1990 | dependencies = [ 1991 | "either", 1992 | "libc", 1993 | "once_cell", 1994 | ] 1995 | 1996 | [[package]] 1997 | name = "winapi" 1998 | version = "0.3.9" 1999 | source = "registry+https://github.com/rust-lang/crates.io-index" 2000 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 2001 | dependencies = [ 2002 | "winapi-i686-pc-windows-gnu", 2003 | "winapi-x86_64-pc-windows-gnu", 2004 | ] 2005 | 2006 | [[package]] 2007 | name = "winapi-i686-pc-windows-gnu" 2008 | version = "0.4.0" 2009 | source = "registry+https://github.com/rust-lang/crates.io-index" 2010 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 2011 | 2012 | [[package]] 2013 | name = "winapi-util" 2014 | version = "0.1.5" 2015 | source = "registry+https://github.com/rust-lang/crates.io-index" 2016 | checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" 2017 | dependencies = [ 2018 | "winapi", 2019 | ] 2020 | 2021 | [[package]] 2022 | name = "winapi-x86_64-pc-windows-gnu" 2023 | version = "0.4.0" 2024 | source = "registry+https://github.com/rust-lang/crates.io-index" 2025 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 2026 | 2027 | [[package]] 2028 | name = "windows-sys" 2029 | version = "0.42.0" 2030 | source = "registry+https://github.com/rust-lang/crates.io-index" 2031 | checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" 2032 | dependencies = [ 2033 | "windows_aarch64_gnullvm", 2034 | "windows_aarch64_msvc", 2035 | "windows_i686_gnu", 2036 | "windows_i686_msvc", 2037 | "windows_x86_64_gnu", 2038 | "windows_x86_64_gnullvm", 2039 | "windows_x86_64_msvc", 2040 | ] 2041 | 2042 | [[package]] 2043 | name = "windows-sys" 2044 | version = "0.45.0" 2045 | source = "registry+https://github.com/rust-lang/crates.io-index" 2046 | checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 2047 | dependencies = [ 2048 | "windows-targets", 2049 | ] 2050 | 2051 | [[package]] 2052 | name = "windows-targets" 2053 | version = "0.42.2" 2054 | source = "registry+https://github.com/rust-lang/crates.io-index" 2055 | checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" 2056 | dependencies = [ 2057 | "windows_aarch64_gnullvm", 2058 | "windows_aarch64_msvc", 2059 | "windows_i686_gnu", 2060 | "windows_i686_msvc", 2061 | "windows_x86_64_gnu", 2062 | "windows_x86_64_gnullvm", 2063 | "windows_x86_64_msvc", 2064 | ] 2065 | 2066 | [[package]] 2067 | name = "windows_aarch64_gnullvm" 2068 | version = "0.42.2" 2069 | source = "registry+https://github.com/rust-lang/crates.io-index" 2070 | checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" 2071 | 2072 | [[package]] 2073 | name = "windows_aarch64_msvc" 2074 | version = "0.42.2" 2075 | source = "registry+https://github.com/rust-lang/crates.io-index" 2076 | checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" 2077 | 2078 | [[package]] 2079 | name = "windows_i686_gnu" 2080 | version = "0.42.2" 2081 | source = "registry+https://github.com/rust-lang/crates.io-index" 2082 | checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" 2083 | 2084 | [[package]] 2085 | name = "windows_i686_msvc" 2086 | version = "0.42.2" 2087 | source = "registry+https://github.com/rust-lang/crates.io-index" 2088 | checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" 2089 | 2090 | [[package]] 2091 | name = "windows_x86_64_gnu" 2092 | version = "0.42.2" 2093 | source = "registry+https://github.com/rust-lang/crates.io-index" 2094 | checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" 2095 | 2096 | [[package]] 2097 | name = "windows_x86_64_gnullvm" 2098 | version = "0.42.2" 2099 | source = "registry+https://github.com/rust-lang/crates.io-index" 2100 | checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" 2101 | 2102 | [[package]] 2103 | name = "windows_x86_64_msvc" 2104 | version = "0.42.2" 2105 | source = "registry+https://github.com/rust-lang/crates.io-index" 2106 | checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" 2107 | 2108 | [[package]] 2109 | name = "winreg" 2110 | version = "0.10.1" 2111 | source = "registry+https://github.com/rust-lang/crates.io-index" 2112 | checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" 2113 | dependencies = [ 2114 | "winapi", 2115 | ] 2116 | 2117 | [[package]] 2118 | name = "zip" 2119 | version = "0.6.4" 2120 | source = "registry+https://github.com/rust-lang/crates.io-index" 2121 | checksum = "0445d0fbc924bb93539b4316c11afb121ea39296f99a3c4c9edad09e3658cdef" 2122 | dependencies = [ 2123 | "byteorder", 2124 | "crc32fast", 2125 | "crossbeam-utils", 2126 | "flate2", 2127 | ] 2128 | --------------------------------------------------------------------------------