├── .gitignore ├── Cargo.toml ├── README.md ├── LICENSE ├── src └── main.rs └── Cargo.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | myapp 3 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "code-muse" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | anyhow = "1.0.71" 10 | async-openai = "0.10.3" 11 | clap = { version = "4.2.4", features = ["derive"] } 12 | serde = { version = "1.0.160", features = ["derive"] } 13 | serde_json = "1.0.96" 14 | text_io = "0.1.12" 15 | tokio = { version = "1.28.0", features = ["full"] } 16 | base64 = "0.13.0" 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Code-Muse 2 | ![wah2vqrd6fza1](https://github.com/security-union/code-muse-rs/assets/1176339/9cff4fcf-cb3a-4113-9133-1f295661c5a2) 3 | 4 | ## ▶️ YouTube Video 5 | 6 | https://youtu.be/jMP9VrlW8QY 7 | 8 | ### Goal 9 | 10 | Generate a working dockerized apps using prompt engineering. 11 | 12 | ### How to use it? 13 | 14 | ``` 15 | OPENAI_API_KEY=somekey cargo run -- --description 'application that renders a fractal on a canvas' --language javascript 16 | ``` 17 | 18 | You can get a key from https://platform.openai.com/account/api-keys 19 | 20 | 21 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Security Union 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/main.rs: -------------------------------------------------------------------------------- 1 | use async_openai::{ 2 | types::{ChatCompletionRequestMessageArgs, CreateChatCompletionRequestArgs, Role}, 3 | Client, 4 | }; 5 | use clap::Parser; 6 | use serde::{Deserialize, Serialize}; 7 | use std::process::{Command, Stdio}; 8 | 9 | #[derive(Parser, Debug)] 10 | #[command(author, version, about, long_about = None)] 11 | struct Args { 12 | /// Describe what the program should do, be as specific as possible 13 | #[arg(short, long)] 14 | description: String, 15 | 16 | /// The programming language to use 17 | #[arg(short, long, default_value = "javascript")] 18 | language: String, 19 | 20 | /// The name of the project which will also be the name of the directory created 21 | #[arg(short, long, default_value = "myapp")] 22 | name: String, 23 | 24 | /// The model to use, see https://platform.openai.com/docs/models for especific models 25 | #[arg(short, long, default_value = "gpt-3.5-turbo")] 26 | model: String, 27 | 28 | /// Max allowed tokens 29 | /// See https://beta.openai.com/docs/api-reference/completions/create#max_tokens 30 | /// for more information 31 | /// Default: 2048 32 | #[arg(short, long, default_value = "2048")] 33 | tokens: u16, 34 | } 35 | 36 | #[derive(Deserialize, Serialize)] 37 | struct OutputJson { 38 | dockerfile: String, 39 | makefile: String, 40 | source_files: Vec, 41 | readme: String, 42 | joke: String, 43 | } 44 | 45 | #[derive(Deserialize, Serialize)] 46 | struct SourceFile { 47 | name: String, 48 | contents: String, 49 | } 50 | 51 | #[tokio::main] 52 | async fn main() -> anyhow::Result<()> { 53 | let args = Args::parse(); 54 | let prompt = format!( 55 | "Take the following programming language, application requirements, and produce a working application. 56 | 57 | your solution must include: 58 | 1. Dockerfile that allows the application to be built and run 59 | 2. Makefile that contains the following commands assuming that the application is executed using the Dockerfile. 60 | a. make build 61 | b. make run (make sure that docker cleans up after itself) 62 | c. make test (make sure that dockedr cleans up after itself) 63 | 3. Readme with instructions required to build and run the application 64 | 4. files with the source code for the application, make sure to not escape the control characters twice, like \\n because that will break the source code. 65 | 5. Make sure to always include a json property called \"joke\" with a joke about software developers. 66 | 67 | 68 | The output must match the provided output json schema and be a valid json. 69 | 70 | Project Name: 71 | --- 72 | {name} 73 | --- 74 | 75 | Programming Language: 76 | --- 77 | {language} 78 | --- 79 | 80 | Application Requirements: 81 | --- 82 | {description} 83 | --- 84 | 85 | Output Json schema: 86 | {{ 87 | \"joke\": \"joke contents\", 88 | \"dockerfile\": \"dockerfile contents\", 89 | \"makefile\": \"makefile contents\", 90 | \"readme\": \"readme contents\", 91 | \"source_files\": [ 92 | {{ 93 | \"name\": \"...\", 94 | \"contents\": \"...\" 95 | }} 96 | ] 97 | }} 98 | 99 | Make sure that you do not include invalid control characters in the output json or invalid characters (like double quotes or something else that can break the json). 100 | 101 | Respond ONLY with the data portion of a valid Json object. No schema definition required. No other words.", 102 | name=args.name, 103 | description=args.description, 104 | language=args.language 105 | ); 106 | println!("Sending prompt: {}", prompt); 107 | let client = Client::new(); 108 | let req = CreateChatCompletionRequestArgs::default().max_tokens(args.tokens).model(args.model).messages([ 109 | ChatCompletionRequestMessageArgs::default().role(Role::System).content("You are a helpful programming assistant. 110 | You are expected to process an application description and generate the files and steps necessary to create the application as using your language model. 111 | You can only respond with a Json object that matches the provided output schema. 112 | The return Json can include an array of objects as defined by the output schema. 113 | You are not allowed to return anything but a valid Json object.").build()?, 114 | ChatCompletionRequestMessageArgs::default().role(Role::User).content(prompt).build()? 115 | ]).build()?; 116 | println!("Sending prompt to OpenAI, please wait... 🤖"); 117 | let res = client.chat().create(req).await?; 118 | println!("Got a response ✅ Attempting to decode the contents..."); 119 | println!("Response:\n{}", &res.choices[0].message.content); 120 | let contents: OutputJson = serde_json::from_str(&res.choices[0].message.content).map_err(|e| { 121 | println!("Failed to decode the contents, please try again. Sometimes OpenAI returns invalid JSON."); 122 | e 123 | })?; 124 | println!("Success, the robot has obeyed our orders.\n"); 125 | 126 | println!("Generating the project files... 🤖"); 127 | 128 | // Create a folder with the project name 129 | let project_name = args.name; 130 | let project_path = format!("./{}", project_name); 131 | println!("Creating project folder `{}`", project_path); 132 | Command::new("mkdir") 133 | .arg(project_path.clone()) 134 | .stdout(Stdio::inherit()) 135 | .stderr(Stdio::inherit()) 136 | .output()?; 137 | 138 | // Create a dockerfile 139 | let dockerfile_path = format!("{}/Dockerfile", project_path); 140 | println!("Creating dockerfile `{}`", dockerfile_path); 141 | let dockerfile_contents = contents.dockerfile; 142 | std::fs::write(dockerfile_path.clone(), dockerfile_contents)?; 143 | 144 | // Create a makefile 145 | let makefile_path = format!("{}/Makefile", project_path); 146 | println!("Creating makefile `{}`", makefile_path); 147 | let makefile_contents = contents.makefile; 148 | std::fs::write(makefile_path.clone(), makefile_contents)?; 149 | 150 | // Create a readme 151 | let readme_path = format!("{}/README.md", project_path); 152 | println!("Creating readme `{}`", readme_path); 153 | let readme_contents = contents.readme; 154 | std::fs::write(readme_path.clone(), readme_contents)?; 155 | 156 | // Create source files 157 | let source_files_path = project_path; 158 | println!("Creating source files folder `{}`", source_files_path); 159 | // iterate through the source files and create them 160 | for source_file in contents.source_files { 161 | if source_file.name.to_lowercase().contains("makefile") 162 | || source_file.name.to_lowercase().contains("dockerfile") 163 | || source_file.name.to_lowercase().contains("readme") 164 | { 165 | println!( 166 | "Skipping source file `{}` because it was already created", 167 | source_file.name 168 | ); 169 | continue; 170 | } 171 | let source_file_path = format!("{}/{}", source_files_path, source_file.name); 172 | let path = std::path::Path::new(&source_file_path); 173 | println!("Creating source file `{}`", source_file_path); 174 | match path.parent() { 175 | Some(parent) => { 176 | if !parent.exists() { 177 | std::fs::create_dir_all(parent)?; 178 | } 179 | } 180 | None => {} 181 | } 182 | let source_file_contents = source_file.contents; 183 | std::fs::write(source_file_path.clone(), source_file_contents)?; 184 | } 185 | 186 | println!("Project files generated successfully ✅\n"); 187 | println!("{}\n", contents.joke); 188 | println!("Disclaimer: This project was generated by a robot, please review the code before executing it.\n"); 189 | println!("To execute the project, run the following commands:\n"); 190 | println!("cd {}", project_name); 191 | println!("make build"); 192 | println!("make run"); 193 | // print disclaimer about the project 194 | 195 | Ok(()) 196 | } 197 | -------------------------------------------------------------------------------- /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 = "anstream" 7 | version = "0.3.1" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "6342bd4f5a1205d7f41e94a41a901f5647c938cdfa96036338e8533c9d6c2450" 10 | dependencies = [ 11 | "anstyle", 12 | "anstyle-parse", 13 | "anstyle-query", 14 | "anstyle-wincon", 15 | "colorchoice", 16 | "is-terminal", 17 | "utf8parse", 18 | ] 19 | 20 | [[package]] 21 | name = "anstyle" 22 | version = "1.0.0" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d" 25 | 26 | [[package]] 27 | name = "anstyle-parse" 28 | version = "0.2.0" 29 | source = "registry+https://github.com/rust-lang/crates.io-index" 30 | checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee" 31 | dependencies = [ 32 | "utf8parse", 33 | ] 34 | 35 | [[package]] 36 | name = "anstyle-query" 37 | version = "1.0.0" 38 | source = "registry+https://github.com/rust-lang/crates.io-index" 39 | checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" 40 | dependencies = [ 41 | "windows-sys 0.48.0", 42 | ] 43 | 44 | [[package]] 45 | name = "anstyle-wincon" 46 | version = "1.0.1" 47 | source = "registry+https://github.com/rust-lang/crates.io-index" 48 | checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" 49 | dependencies = [ 50 | "anstyle", 51 | "windows-sys 0.48.0", 52 | ] 53 | 54 | [[package]] 55 | name = "anyhow" 56 | version = "1.0.71" 57 | source = "registry+https://github.com/rust-lang/crates.io-index" 58 | checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" 59 | 60 | [[package]] 61 | name = "async-openai" 62 | version = "0.10.3" 63 | source = "registry+https://github.com/rust-lang/crates.io-index" 64 | checksum = "e5d5e93aca1b2f0ca772c76cadd43e965809df87ef98e25e47244c7f006c85d2" 65 | dependencies = [ 66 | "backoff", 67 | "base64 0.21.0", 68 | "derive_builder", 69 | "futures", 70 | "rand", 71 | "reqwest", 72 | "reqwest-eventsource", 73 | "serde", 74 | "serde_json", 75 | "thiserror", 76 | "tokio", 77 | "tokio-stream", 78 | "tokio-util", 79 | "tracing", 80 | ] 81 | 82 | [[package]] 83 | name = "autocfg" 84 | version = "1.1.0" 85 | source = "registry+https://github.com/rust-lang/crates.io-index" 86 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 87 | 88 | [[package]] 89 | name = "backoff" 90 | version = "0.4.0" 91 | source = "registry+https://github.com/rust-lang/crates.io-index" 92 | checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" 93 | dependencies = [ 94 | "futures-core", 95 | "getrandom", 96 | "instant", 97 | "pin-project-lite", 98 | "rand", 99 | "tokio", 100 | ] 101 | 102 | [[package]] 103 | name = "base64" 104 | version = "0.13.1" 105 | source = "registry+https://github.com/rust-lang/crates.io-index" 106 | checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" 107 | 108 | [[package]] 109 | name = "base64" 110 | version = "0.21.0" 111 | source = "registry+https://github.com/rust-lang/crates.io-index" 112 | checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" 113 | 114 | [[package]] 115 | name = "bitflags" 116 | version = "1.3.2" 117 | source = "registry+https://github.com/rust-lang/crates.io-index" 118 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 119 | 120 | [[package]] 121 | name = "bumpalo" 122 | version = "3.12.1" 123 | source = "registry+https://github.com/rust-lang/crates.io-index" 124 | checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8" 125 | 126 | [[package]] 127 | name = "bytes" 128 | version = "1.4.0" 129 | source = "registry+https://github.com/rust-lang/crates.io-index" 130 | checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" 131 | 132 | [[package]] 133 | name = "cc" 134 | version = "1.0.79" 135 | source = "registry+https://github.com/rust-lang/crates.io-index" 136 | checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" 137 | 138 | [[package]] 139 | name = "cfg-if" 140 | version = "1.0.0" 141 | source = "registry+https://github.com/rust-lang/crates.io-index" 142 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 143 | 144 | [[package]] 145 | name = "clap" 146 | version = "4.2.4" 147 | source = "registry+https://github.com/rust-lang/crates.io-index" 148 | checksum = "956ac1f6381d8d82ab4684768f89c0ea3afe66925ceadb4eeb3fc452ffc55d62" 149 | dependencies = [ 150 | "clap_builder", 151 | "clap_derive", 152 | "once_cell", 153 | ] 154 | 155 | [[package]] 156 | name = "clap_builder" 157 | version = "4.2.4" 158 | source = "registry+https://github.com/rust-lang/crates.io-index" 159 | checksum = "84080e799e54cff944f4b4a4b0e71630b0e0443b25b985175c7dddc1a859b749" 160 | dependencies = [ 161 | "anstream", 162 | "anstyle", 163 | "bitflags", 164 | "clap_lex", 165 | "strsim", 166 | ] 167 | 168 | [[package]] 169 | name = "clap_derive" 170 | version = "4.2.0" 171 | source = "registry+https://github.com/rust-lang/crates.io-index" 172 | checksum = "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4" 173 | dependencies = [ 174 | "heck", 175 | "proc-macro2", 176 | "quote", 177 | "syn 2.0.15", 178 | ] 179 | 180 | [[package]] 181 | name = "clap_lex" 182 | version = "0.4.1" 183 | source = "registry+https://github.com/rust-lang/crates.io-index" 184 | checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" 185 | 186 | [[package]] 187 | name = "code-muse" 188 | version = "0.1.0" 189 | dependencies = [ 190 | "anyhow", 191 | "async-openai", 192 | "base64 0.13.1", 193 | "clap", 194 | "serde", 195 | "serde_json", 196 | "text_io", 197 | "tokio", 198 | ] 199 | 200 | [[package]] 201 | name = "colorchoice" 202 | version = "1.0.0" 203 | source = "registry+https://github.com/rust-lang/crates.io-index" 204 | checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" 205 | 206 | [[package]] 207 | name = "core-foundation" 208 | version = "0.9.3" 209 | source = "registry+https://github.com/rust-lang/crates.io-index" 210 | checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" 211 | dependencies = [ 212 | "core-foundation-sys", 213 | "libc", 214 | ] 215 | 216 | [[package]] 217 | name = "core-foundation-sys" 218 | version = "0.8.4" 219 | source = "registry+https://github.com/rust-lang/crates.io-index" 220 | checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" 221 | 222 | [[package]] 223 | name = "darling" 224 | version = "0.14.4" 225 | source = "registry+https://github.com/rust-lang/crates.io-index" 226 | checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" 227 | dependencies = [ 228 | "darling_core", 229 | "darling_macro", 230 | ] 231 | 232 | [[package]] 233 | name = "darling_core" 234 | version = "0.14.4" 235 | source = "registry+https://github.com/rust-lang/crates.io-index" 236 | checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" 237 | dependencies = [ 238 | "fnv", 239 | "ident_case", 240 | "proc-macro2", 241 | "quote", 242 | "strsim", 243 | "syn 1.0.109", 244 | ] 245 | 246 | [[package]] 247 | name = "darling_macro" 248 | version = "0.14.4" 249 | source = "registry+https://github.com/rust-lang/crates.io-index" 250 | checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" 251 | dependencies = [ 252 | "darling_core", 253 | "quote", 254 | "syn 1.0.109", 255 | ] 256 | 257 | [[package]] 258 | name = "derive_builder" 259 | version = "0.12.0" 260 | source = "registry+https://github.com/rust-lang/crates.io-index" 261 | checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" 262 | dependencies = [ 263 | "derive_builder_macro", 264 | ] 265 | 266 | [[package]] 267 | name = "derive_builder_core" 268 | version = "0.12.0" 269 | source = "registry+https://github.com/rust-lang/crates.io-index" 270 | checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" 271 | dependencies = [ 272 | "darling", 273 | "proc-macro2", 274 | "quote", 275 | "syn 1.0.109", 276 | ] 277 | 278 | [[package]] 279 | name = "derive_builder_macro" 280 | version = "0.12.0" 281 | source = "registry+https://github.com/rust-lang/crates.io-index" 282 | checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" 283 | dependencies = [ 284 | "derive_builder_core", 285 | "syn 1.0.109", 286 | ] 287 | 288 | [[package]] 289 | name = "encoding_rs" 290 | version = "0.8.32" 291 | source = "registry+https://github.com/rust-lang/crates.io-index" 292 | checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" 293 | dependencies = [ 294 | "cfg-if", 295 | ] 296 | 297 | [[package]] 298 | name = "errno" 299 | version = "0.3.1" 300 | source = "registry+https://github.com/rust-lang/crates.io-index" 301 | checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" 302 | dependencies = [ 303 | "errno-dragonfly", 304 | "libc", 305 | "windows-sys 0.48.0", 306 | ] 307 | 308 | [[package]] 309 | name = "errno-dragonfly" 310 | version = "0.1.2" 311 | source = "registry+https://github.com/rust-lang/crates.io-index" 312 | checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" 313 | dependencies = [ 314 | "cc", 315 | "libc", 316 | ] 317 | 318 | [[package]] 319 | name = "eventsource-stream" 320 | version = "0.2.3" 321 | source = "registry+https://github.com/rust-lang/crates.io-index" 322 | checksum = "74fef4569247a5f429d9156b9d0a2599914385dd189c539334c625d8099d90ab" 323 | dependencies = [ 324 | "futures-core", 325 | "nom", 326 | "pin-project-lite", 327 | ] 328 | 329 | [[package]] 330 | name = "fnv" 331 | version = "1.0.7" 332 | source = "registry+https://github.com/rust-lang/crates.io-index" 333 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 334 | 335 | [[package]] 336 | name = "form_urlencoded" 337 | version = "1.1.0" 338 | source = "registry+https://github.com/rust-lang/crates.io-index" 339 | checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" 340 | dependencies = [ 341 | "percent-encoding", 342 | ] 343 | 344 | [[package]] 345 | name = "futures" 346 | version = "0.3.28" 347 | source = "registry+https://github.com/rust-lang/crates.io-index" 348 | checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" 349 | dependencies = [ 350 | "futures-channel", 351 | "futures-core", 352 | "futures-executor", 353 | "futures-io", 354 | "futures-sink", 355 | "futures-task", 356 | "futures-util", 357 | ] 358 | 359 | [[package]] 360 | name = "futures-channel" 361 | version = "0.3.28" 362 | source = "registry+https://github.com/rust-lang/crates.io-index" 363 | checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" 364 | dependencies = [ 365 | "futures-core", 366 | "futures-sink", 367 | ] 368 | 369 | [[package]] 370 | name = "futures-core" 371 | version = "0.3.28" 372 | source = "registry+https://github.com/rust-lang/crates.io-index" 373 | checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" 374 | 375 | [[package]] 376 | name = "futures-executor" 377 | version = "0.3.28" 378 | source = "registry+https://github.com/rust-lang/crates.io-index" 379 | checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" 380 | dependencies = [ 381 | "futures-core", 382 | "futures-task", 383 | "futures-util", 384 | ] 385 | 386 | [[package]] 387 | name = "futures-io" 388 | version = "0.3.28" 389 | source = "registry+https://github.com/rust-lang/crates.io-index" 390 | checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" 391 | 392 | [[package]] 393 | name = "futures-macro" 394 | version = "0.3.28" 395 | source = "registry+https://github.com/rust-lang/crates.io-index" 396 | checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" 397 | dependencies = [ 398 | "proc-macro2", 399 | "quote", 400 | "syn 2.0.15", 401 | ] 402 | 403 | [[package]] 404 | name = "futures-sink" 405 | version = "0.3.28" 406 | source = "registry+https://github.com/rust-lang/crates.io-index" 407 | checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" 408 | 409 | [[package]] 410 | name = "futures-task" 411 | version = "0.3.28" 412 | source = "registry+https://github.com/rust-lang/crates.io-index" 413 | checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" 414 | 415 | [[package]] 416 | name = "futures-timer" 417 | version = "3.0.2" 418 | source = "registry+https://github.com/rust-lang/crates.io-index" 419 | checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" 420 | 421 | [[package]] 422 | name = "futures-util" 423 | version = "0.3.28" 424 | source = "registry+https://github.com/rust-lang/crates.io-index" 425 | checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" 426 | dependencies = [ 427 | "futures-channel", 428 | "futures-core", 429 | "futures-io", 430 | "futures-macro", 431 | "futures-sink", 432 | "futures-task", 433 | "memchr", 434 | "pin-project-lite", 435 | "pin-utils", 436 | "slab", 437 | ] 438 | 439 | [[package]] 440 | name = "getrandom" 441 | version = "0.2.9" 442 | source = "registry+https://github.com/rust-lang/crates.io-index" 443 | checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" 444 | dependencies = [ 445 | "cfg-if", 446 | "libc", 447 | "wasi", 448 | ] 449 | 450 | [[package]] 451 | name = "h2" 452 | version = "0.3.18" 453 | source = "registry+https://github.com/rust-lang/crates.io-index" 454 | checksum = "17f8a914c2987b688368b5138aa05321db91f4090cf26118185672ad588bce21" 455 | dependencies = [ 456 | "bytes", 457 | "fnv", 458 | "futures-core", 459 | "futures-sink", 460 | "futures-util", 461 | "http", 462 | "indexmap", 463 | "slab", 464 | "tokio", 465 | "tokio-util", 466 | "tracing", 467 | ] 468 | 469 | [[package]] 470 | name = "hashbrown" 471 | version = "0.12.3" 472 | source = "registry+https://github.com/rust-lang/crates.io-index" 473 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 474 | 475 | [[package]] 476 | name = "heck" 477 | version = "0.4.1" 478 | source = "registry+https://github.com/rust-lang/crates.io-index" 479 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 480 | 481 | [[package]] 482 | name = "hermit-abi" 483 | version = "0.2.6" 484 | source = "registry+https://github.com/rust-lang/crates.io-index" 485 | checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" 486 | dependencies = [ 487 | "libc", 488 | ] 489 | 490 | [[package]] 491 | name = "hermit-abi" 492 | version = "0.3.1" 493 | source = "registry+https://github.com/rust-lang/crates.io-index" 494 | checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" 495 | 496 | [[package]] 497 | name = "http" 498 | version = "0.2.9" 499 | source = "registry+https://github.com/rust-lang/crates.io-index" 500 | checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" 501 | dependencies = [ 502 | "bytes", 503 | "fnv", 504 | "itoa", 505 | ] 506 | 507 | [[package]] 508 | name = "http-body" 509 | version = "0.4.5" 510 | source = "registry+https://github.com/rust-lang/crates.io-index" 511 | checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" 512 | dependencies = [ 513 | "bytes", 514 | "http", 515 | "pin-project-lite", 516 | ] 517 | 518 | [[package]] 519 | name = "httparse" 520 | version = "1.8.0" 521 | source = "registry+https://github.com/rust-lang/crates.io-index" 522 | checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" 523 | 524 | [[package]] 525 | name = "httpdate" 526 | version = "1.0.2" 527 | source = "registry+https://github.com/rust-lang/crates.io-index" 528 | checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" 529 | 530 | [[package]] 531 | name = "hyper" 532 | version = "0.14.26" 533 | source = "registry+https://github.com/rust-lang/crates.io-index" 534 | checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4" 535 | dependencies = [ 536 | "bytes", 537 | "futures-channel", 538 | "futures-core", 539 | "futures-util", 540 | "h2", 541 | "http", 542 | "http-body", 543 | "httparse", 544 | "httpdate", 545 | "itoa", 546 | "pin-project-lite", 547 | "socket2", 548 | "tokio", 549 | "tower-service", 550 | "tracing", 551 | "want", 552 | ] 553 | 554 | [[package]] 555 | name = "hyper-rustls" 556 | version = "0.23.2" 557 | source = "registry+https://github.com/rust-lang/crates.io-index" 558 | checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" 559 | dependencies = [ 560 | "http", 561 | "hyper", 562 | "rustls", 563 | "tokio", 564 | "tokio-rustls", 565 | ] 566 | 567 | [[package]] 568 | name = "ident_case" 569 | version = "1.0.1" 570 | source = "registry+https://github.com/rust-lang/crates.io-index" 571 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 572 | 573 | [[package]] 574 | name = "idna" 575 | version = "0.3.0" 576 | source = "registry+https://github.com/rust-lang/crates.io-index" 577 | checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" 578 | dependencies = [ 579 | "unicode-bidi", 580 | "unicode-normalization", 581 | ] 582 | 583 | [[package]] 584 | name = "indexmap" 585 | version = "1.9.3" 586 | source = "registry+https://github.com/rust-lang/crates.io-index" 587 | checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" 588 | dependencies = [ 589 | "autocfg", 590 | "hashbrown", 591 | ] 592 | 593 | [[package]] 594 | name = "instant" 595 | version = "0.1.12" 596 | source = "registry+https://github.com/rust-lang/crates.io-index" 597 | checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" 598 | dependencies = [ 599 | "cfg-if", 600 | ] 601 | 602 | [[package]] 603 | name = "io-lifetimes" 604 | version = "1.0.10" 605 | source = "registry+https://github.com/rust-lang/crates.io-index" 606 | checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" 607 | dependencies = [ 608 | "hermit-abi 0.3.1", 609 | "libc", 610 | "windows-sys 0.48.0", 611 | ] 612 | 613 | [[package]] 614 | name = "ipnet" 615 | version = "2.7.2" 616 | source = "registry+https://github.com/rust-lang/crates.io-index" 617 | checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" 618 | 619 | [[package]] 620 | name = "is-terminal" 621 | version = "0.4.7" 622 | source = "registry+https://github.com/rust-lang/crates.io-index" 623 | checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" 624 | dependencies = [ 625 | "hermit-abi 0.3.1", 626 | "io-lifetimes", 627 | "rustix", 628 | "windows-sys 0.48.0", 629 | ] 630 | 631 | [[package]] 632 | name = "itoa" 633 | version = "1.0.6" 634 | source = "registry+https://github.com/rust-lang/crates.io-index" 635 | checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" 636 | 637 | [[package]] 638 | name = "js-sys" 639 | version = "0.3.61" 640 | source = "registry+https://github.com/rust-lang/crates.io-index" 641 | checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" 642 | dependencies = [ 643 | "wasm-bindgen", 644 | ] 645 | 646 | [[package]] 647 | name = "libc" 648 | version = "0.2.142" 649 | source = "registry+https://github.com/rust-lang/crates.io-index" 650 | checksum = "6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317" 651 | 652 | [[package]] 653 | name = "linux-raw-sys" 654 | version = "0.3.4" 655 | source = "registry+https://github.com/rust-lang/crates.io-index" 656 | checksum = "36eb31c1778188ae1e64398743890d0877fef36d11521ac60406b42016e8c2cf" 657 | 658 | [[package]] 659 | name = "lock_api" 660 | version = "0.4.9" 661 | source = "registry+https://github.com/rust-lang/crates.io-index" 662 | checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" 663 | dependencies = [ 664 | "autocfg", 665 | "scopeguard", 666 | ] 667 | 668 | [[package]] 669 | name = "log" 670 | version = "0.4.17" 671 | source = "registry+https://github.com/rust-lang/crates.io-index" 672 | checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" 673 | dependencies = [ 674 | "cfg-if", 675 | ] 676 | 677 | [[package]] 678 | name = "memchr" 679 | version = "2.5.0" 680 | source = "registry+https://github.com/rust-lang/crates.io-index" 681 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 682 | 683 | [[package]] 684 | name = "mime" 685 | version = "0.3.17" 686 | source = "registry+https://github.com/rust-lang/crates.io-index" 687 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 688 | 689 | [[package]] 690 | name = "mime_guess" 691 | version = "2.0.4" 692 | source = "registry+https://github.com/rust-lang/crates.io-index" 693 | checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" 694 | dependencies = [ 695 | "mime", 696 | "unicase", 697 | ] 698 | 699 | [[package]] 700 | name = "minimal-lexical" 701 | version = "0.2.1" 702 | source = "registry+https://github.com/rust-lang/crates.io-index" 703 | checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 704 | 705 | [[package]] 706 | name = "mio" 707 | version = "0.8.6" 708 | source = "registry+https://github.com/rust-lang/crates.io-index" 709 | checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" 710 | dependencies = [ 711 | "libc", 712 | "log", 713 | "wasi", 714 | "windows-sys 0.45.0", 715 | ] 716 | 717 | [[package]] 718 | name = "nom" 719 | version = "7.1.3" 720 | source = "registry+https://github.com/rust-lang/crates.io-index" 721 | checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 722 | dependencies = [ 723 | "memchr", 724 | "minimal-lexical", 725 | ] 726 | 727 | [[package]] 728 | name = "num_cpus" 729 | version = "1.15.0" 730 | source = "registry+https://github.com/rust-lang/crates.io-index" 731 | checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" 732 | dependencies = [ 733 | "hermit-abi 0.2.6", 734 | "libc", 735 | ] 736 | 737 | [[package]] 738 | name = "once_cell" 739 | version = "1.17.1" 740 | source = "registry+https://github.com/rust-lang/crates.io-index" 741 | checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" 742 | 743 | [[package]] 744 | name = "openssl-probe" 745 | version = "0.1.5" 746 | source = "registry+https://github.com/rust-lang/crates.io-index" 747 | checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 748 | 749 | [[package]] 750 | name = "parking_lot" 751 | version = "0.12.1" 752 | source = "registry+https://github.com/rust-lang/crates.io-index" 753 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 754 | dependencies = [ 755 | "lock_api", 756 | "parking_lot_core", 757 | ] 758 | 759 | [[package]] 760 | name = "parking_lot_core" 761 | version = "0.9.7" 762 | source = "registry+https://github.com/rust-lang/crates.io-index" 763 | checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" 764 | dependencies = [ 765 | "cfg-if", 766 | "libc", 767 | "redox_syscall", 768 | "smallvec", 769 | "windows-sys 0.45.0", 770 | ] 771 | 772 | [[package]] 773 | name = "percent-encoding" 774 | version = "2.2.0" 775 | source = "registry+https://github.com/rust-lang/crates.io-index" 776 | checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" 777 | 778 | [[package]] 779 | name = "pin-project-lite" 780 | version = "0.2.9" 781 | source = "registry+https://github.com/rust-lang/crates.io-index" 782 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" 783 | 784 | [[package]] 785 | name = "pin-utils" 786 | version = "0.1.0" 787 | source = "registry+https://github.com/rust-lang/crates.io-index" 788 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 789 | 790 | [[package]] 791 | name = "ppv-lite86" 792 | version = "0.2.17" 793 | source = "registry+https://github.com/rust-lang/crates.io-index" 794 | checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 795 | 796 | [[package]] 797 | name = "proc-macro2" 798 | version = "1.0.56" 799 | source = "registry+https://github.com/rust-lang/crates.io-index" 800 | checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" 801 | dependencies = [ 802 | "unicode-ident", 803 | ] 804 | 805 | [[package]] 806 | name = "quote" 807 | version = "1.0.26" 808 | source = "registry+https://github.com/rust-lang/crates.io-index" 809 | checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" 810 | dependencies = [ 811 | "proc-macro2", 812 | ] 813 | 814 | [[package]] 815 | name = "rand" 816 | version = "0.8.5" 817 | source = "registry+https://github.com/rust-lang/crates.io-index" 818 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 819 | dependencies = [ 820 | "libc", 821 | "rand_chacha", 822 | "rand_core", 823 | ] 824 | 825 | [[package]] 826 | name = "rand_chacha" 827 | version = "0.3.1" 828 | source = "registry+https://github.com/rust-lang/crates.io-index" 829 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 830 | dependencies = [ 831 | "ppv-lite86", 832 | "rand_core", 833 | ] 834 | 835 | [[package]] 836 | name = "rand_core" 837 | version = "0.6.4" 838 | source = "registry+https://github.com/rust-lang/crates.io-index" 839 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 840 | dependencies = [ 841 | "getrandom", 842 | ] 843 | 844 | [[package]] 845 | name = "redox_syscall" 846 | version = "0.2.16" 847 | source = "registry+https://github.com/rust-lang/crates.io-index" 848 | checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" 849 | dependencies = [ 850 | "bitflags", 851 | ] 852 | 853 | [[package]] 854 | name = "reqwest" 855 | version = "0.11.16" 856 | source = "registry+https://github.com/rust-lang/crates.io-index" 857 | checksum = "27b71749df584b7f4cac2c426c127a7c785a5106cc98f7a8feb044115f0fa254" 858 | dependencies = [ 859 | "base64 0.21.0", 860 | "bytes", 861 | "encoding_rs", 862 | "futures-core", 863 | "futures-util", 864 | "h2", 865 | "http", 866 | "http-body", 867 | "hyper", 868 | "hyper-rustls", 869 | "ipnet", 870 | "js-sys", 871 | "log", 872 | "mime", 873 | "mime_guess", 874 | "once_cell", 875 | "percent-encoding", 876 | "pin-project-lite", 877 | "rustls", 878 | "rustls-native-certs", 879 | "rustls-pemfile", 880 | "serde", 881 | "serde_json", 882 | "serde_urlencoded", 883 | "tokio", 884 | "tokio-rustls", 885 | "tokio-util", 886 | "tower-service", 887 | "url", 888 | "wasm-bindgen", 889 | "wasm-bindgen-futures", 890 | "wasm-streams", 891 | "web-sys", 892 | "winreg", 893 | ] 894 | 895 | [[package]] 896 | name = "reqwest-eventsource" 897 | version = "0.4.0" 898 | source = "registry+https://github.com/rust-lang/crates.io-index" 899 | checksum = "8f03f570355882dd8d15acc3a313841e6e90eddbc76a93c748fd82cc13ba9f51" 900 | dependencies = [ 901 | "eventsource-stream", 902 | "futures-core", 903 | "futures-timer", 904 | "mime", 905 | "nom", 906 | "pin-project-lite", 907 | "reqwest", 908 | "thiserror", 909 | ] 910 | 911 | [[package]] 912 | name = "ring" 913 | version = "0.16.20" 914 | source = "registry+https://github.com/rust-lang/crates.io-index" 915 | checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" 916 | dependencies = [ 917 | "cc", 918 | "libc", 919 | "once_cell", 920 | "spin", 921 | "untrusted", 922 | "web-sys", 923 | "winapi", 924 | ] 925 | 926 | [[package]] 927 | name = "rustix" 928 | version = "0.37.14" 929 | source = "registry+https://github.com/rust-lang/crates.io-index" 930 | checksum = "d9b864d3c18a5785a05953adeed93e2dca37ed30f18e69bba9f30079d51f363f" 931 | dependencies = [ 932 | "bitflags", 933 | "errno", 934 | "io-lifetimes", 935 | "libc", 936 | "linux-raw-sys", 937 | "windows-sys 0.48.0", 938 | ] 939 | 940 | [[package]] 941 | name = "rustls" 942 | version = "0.20.8" 943 | source = "registry+https://github.com/rust-lang/crates.io-index" 944 | checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" 945 | dependencies = [ 946 | "log", 947 | "ring", 948 | "sct", 949 | "webpki", 950 | ] 951 | 952 | [[package]] 953 | name = "rustls-native-certs" 954 | version = "0.6.2" 955 | source = "registry+https://github.com/rust-lang/crates.io-index" 956 | checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" 957 | dependencies = [ 958 | "openssl-probe", 959 | "rustls-pemfile", 960 | "schannel", 961 | "security-framework", 962 | ] 963 | 964 | [[package]] 965 | name = "rustls-pemfile" 966 | version = "1.0.2" 967 | source = "registry+https://github.com/rust-lang/crates.io-index" 968 | checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" 969 | dependencies = [ 970 | "base64 0.21.0", 971 | ] 972 | 973 | [[package]] 974 | name = "ryu" 975 | version = "1.0.13" 976 | source = "registry+https://github.com/rust-lang/crates.io-index" 977 | checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" 978 | 979 | [[package]] 980 | name = "schannel" 981 | version = "0.1.21" 982 | source = "registry+https://github.com/rust-lang/crates.io-index" 983 | checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" 984 | dependencies = [ 985 | "windows-sys 0.42.0", 986 | ] 987 | 988 | [[package]] 989 | name = "scopeguard" 990 | version = "1.1.0" 991 | source = "registry+https://github.com/rust-lang/crates.io-index" 992 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" 993 | 994 | [[package]] 995 | name = "sct" 996 | version = "0.7.0" 997 | source = "registry+https://github.com/rust-lang/crates.io-index" 998 | checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" 999 | dependencies = [ 1000 | "ring", 1001 | "untrusted", 1002 | ] 1003 | 1004 | [[package]] 1005 | name = "security-framework" 1006 | version = "2.8.2" 1007 | source = "registry+https://github.com/rust-lang/crates.io-index" 1008 | checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" 1009 | dependencies = [ 1010 | "bitflags", 1011 | "core-foundation", 1012 | "core-foundation-sys", 1013 | "libc", 1014 | "security-framework-sys", 1015 | ] 1016 | 1017 | [[package]] 1018 | name = "security-framework-sys" 1019 | version = "2.8.0" 1020 | source = "registry+https://github.com/rust-lang/crates.io-index" 1021 | checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" 1022 | dependencies = [ 1023 | "core-foundation-sys", 1024 | "libc", 1025 | ] 1026 | 1027 | [[package]] 1028 | name = "serde" 1029 | version = "1.0.160" 1030 | source = "registry+https://github.com/rust-lang/crates.io-index" 1031 | checksum = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c" 1032 | dependencies = [ 1033 | "serde_derive", 1034 | ] 1035 | 1036 | [[package]] 1037 | name = "serde_derive" 1038 | version = "1.0.160" 1039 | source = "registry+https://github.com/rust-lang/crates.io-index" 1040 | checksum = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df" 1041 | dependencies = [ 1042 | "proc-macro2", 1043 | "quote", 1044 | "syn 2.0.15", 1045 | ] 1046 | 1047 | [[package]] 1048 | name = "serde_json" 1049 | version = "1.0.96" 1050 | source = "registry+https://github.com/rust-lang/crates.io-index" 1051 | checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" 1052 | dependencies = [ 1053 | "itoa", 1054 | "ryu", 1055 | "serde", 1056 | ] 1057 | 1058 | [[package]] 1059 | name = "serde_urlencoded" 1060 | version = "0.7.1" 1061 | source = "registry+https://github.com/rust-lang/crates.io-index" 1062 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 1063 | dependencies = [ 1064 | "form_urlencoded", 1065 | "itoa", 1066 | "ryu", 1067 | "serde", 1068 | ] 1069 | 1070 | [[package]] 1071 | name = "signal-hook-registry" 1072 | version = "1.4.1" 1073 | source = "registry+https://github.com/rust-lang/crates.io-index" 1074 | checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" 1075 | dependencies = [ 1076 | "libc", 1077 | ] 1078 | 1079 | [[package]] 1080 | name = "slab" 1081 | version = "0.4.8" 1082 | source = "registry+https://github.com/rust-lang/crates.io-index" 1083 | checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" 1084 | dependencies = [ 1085 | "autocfg", 1086 | ] 1087 | 1088 | [[package]] 1089 | name = "smallvec" 1090 | version = "1.10.0" 1091 | source = "registry+https://github.com/rust-lang/crates.io-index" 1092 | checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" 1093 | 1094 | [[package]] 1095 | name = "socket2" 1096 | version = "0.4.9" 1097 | source = "registry+https://github.com/rust-lang/crates.io-index" 1098 | checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" 1099 | dependencies = [ 1100 | "libc", 1101 | "winapi", 1102 | ] 1103 | 1104 | [[package]] 1105 | name = "spin" 1106 | version = "0.5.2" 1107 | source = "registry+https://github.com/rust-lang/crates.io-index" 1108 | checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" 1109 | 1110 | [[package]] 1111 | name = "strsim" 1112 | version = "0.10.0" 1113 | source = "registry+https://github.com/rust-lang/crates.io-index" 1114 | checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" 1115 | 1116 | [[package]] 1117 | name = "syn" 1118 | version = "1.0.109" 1119 | source = "registry+https://github.com/rust-lang/crates.io-index" 1120 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 1121 | dependencies = [ 1122 | "proc-macro2", 1123 | "quote", 1124 | "unicode-ident", 1125 | ] 1126 | 1127 | [[package]] 1128 | name = "syn" 1129 | version = "2.0.15" 1130 | source = "registry+https://github.com/rust-lang/crates.io-index" 1131 | checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" 1132 | dependencies = [ 1133 | "proc-macro2", 1134 | "quote", 1135 | "unicode-ident", 1136 | ] 1137 | 1138 | [[package]] 1139 | name = "text_io" 1140 | version = "0.1.12" 1141 | source = "registry+https://github.com/rust-lang/crates.io-index" 1142 | checksum = "d5f0c8eb2ad70c12a6a69508f499b3051c924f4b1cfeae85bfad96e6bc5bba46" 1143 | 1144 | [[package]] 1145 | name = "thiserror" 1146 | version = "1.0.40" 1147 | source = "registry+https://github.com/rust-lang/crates.io-index" 1148 | checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" 1149 | dependencies = [ 1150 | "thiserror-impl", 1151 | ] 1152 | 1153 | [[package]] 1154 | name = "thiserror-impl" 1155 | version = "1.0.40" 1156 | source = "registry+https://github.com/rust-lang/crates.io-index" 1157 | checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" 1158 | dependencies = [ 1159 | "proc-macro2", 1160 | "quote", 1161 | "syn 2.0.15", 1162 | ] 1163 | 1164 | [[package]] 1165 | name = "tinyvec" 1166 | version = "1.6.0" 1167 | source = "registry+https://github.com/rust-lang/crates.io-index" 1168 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 1169 | dependencies = [ 1170 | "tinyvec_macros", 1171 | ] 1172 | 1173 | [[package]] 1174 | name = "tinyvec_macros" 1175 | version = "0.1.1" 1176 | source = "registry+https://github.com/rust-lang/crates.io-index" 1177 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 1178 | 1179 | [[package]] 1180 | name = "tokio" 1181 | version = "1.28.0" 1182 | source = "registry+https://github.com/rust-lang/crates.io-index" 1183 | checksum = "c3c786bf8134e5a3a166db9b29ab8f48134739014a3eca7bc6bfa95d673b136f" 1184 | dependencies = [ 1185 | "autocfg", 1186 | "bytes", 1187 | "libc", 1188 | "mio", 1189 | "num_cpus", 1190 | "parking_lot", 1191 | "pin-project-lite", 1192 | "signal-hook-registry", 1193 | "socket2", 1194 | "tokio-macros", 1195 | "windows-sys 0.48.0", 1196 | ] 1197 | 1198 | [[package]] 1199 | name = "tokio-macros" 1200 | version = "2.1.0" 1201 | source = "registry+https://github.com/rust-lang/crates.io-index" 1202 | checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" 1203 | dependencies = [ 1204 | "proc-macro2", 1205 | "quote", 1206 | "syn 2.0.15", 1207 | ] 1208 | 1209 | [[package]] 1210 | name = "tokio-rustls" 1211 | version = "0.23.4" 1212 | source = "registry+https://github.com/rust-lang/crates.io-index" 1213 | checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" 1214 | dependencies = [ 1215 | "rustls", 1216 | "tokio", 1217 | "webpki", 1218 | ] 1219 | 1220 | [[package]] 1221 | name = "tokio-stream" 1222 | version = "0.1.13" 1223 | source = "registry+https://github.com/rust-lang/crates.io-index" 1224 | checksum = "76cd2598a37719e3cd4c28af93f978506a97a2920ef4d96e4b12e38b8cbc8940" 1225 | dependencies = [ 1226 | "futures-core", 1227 | "pin-project-lite", 1228 | "tokio", 1229 | ] 1230 | 1231 | [[package]] 1232 | name = "tokio-util" 1233 | version = "0.7.8" 1234 | source = "registry+https://github.com/rust-lang/crates.io-index" 1235 | checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" 1236 | dependencies = [ 1237 | "bytes", 1238 | "futures-core", 1239 | "futures-sink", 1240 | "pin-project-lite", 1241 | "tokio", 1242 | "tracing", 1243 | ] 1244 | 1245 | [[package]] 1246 | name = "tower-service" 1247 | version = "0.3.2" 1248 | source = "registry+https://github.com/rust-lang/crates.io-index" 1249 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 1250 | 1251 | [[package]] 1252 | name = "tracing" 1253 | version = "0.1.38" 1254 | source = "registry+https://github.com/rust-lang/crates.io-index" 1255 | checksum = "cf9cf6a813d3f40c88b0b6b6f29a5c95c6cdbf97c1f9cc53fb820200f5ad814d" 1256 | dependencies = [ 1257 | "pin-project-lite", 1258 | "tracing-attributes", 1259 | "tracing-core", 1260 | ] 1261 | 1262 | [[package]] 1263 | name = "tracing-attributes" 1264 | version = "0.1.24" 1265 | source = "registry+https://github.com/rust-lang/crates.io-index" 1266 | checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" 1267 | dependencies = [ 1268 | "proc-macro2", 1269 | "quote", 1270 | "syn 2.0.15", 1271 | ] 1272 | 1273 | [[package]] 1274 | name = "tracing-core" 1275 | version = "0.1.30" 1276 | source = "registry+https://github.com/rust-lang/crates.io-index" 1277 | checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" 1278 | dependencies = [ 1279 | "once_cell", 1280 | ] 1281 | 1282 | [[package]] 1283 | name = "try-lock" 1284 | version = "0.2.4" 1285 | source = "registry+https://github.com/rust-lang/crates.io-index" 1286 | checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" 1287 | 1288 | [[package]] 1289 | name = "unicase" 1290 | version = "2.6.0" 1291 | source = "registry+https://github.com/rust-lang/crates.io-index" 1292 | checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" 1293 | dependencies = [ 1294 | "version_check", 1295 | ] 1296 | 1297 | [[package]] 1298 | name = "unicode-bidi" 1299 | version = "0.3.13" 1300 | source = "registry+https://github.com/rust-lang/crates.io-index" 1301 | checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" 1302 | 1303 | [[package]] 1304 | name = "unicode-ident" 1305 | version = "1.0.8" 1306 | source = "registry+https://github.com/rust-lang/crates.io-index" 1307 | checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" 1308 | 1309 | [[package]] 1310 | name = "unicode-normalization" 1311 | version = "0.1.22" 1312 | source = "registry+https://github.com/rust-lang/crates.io-index" 1313 | checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 1314 | dependencies = [ 1315 | "tinyvec", 1316 | ] 1317 | 1318 | [[package]] 1319 | name = "untrusted" 1320 | version = "0.7.1" 1321 | source = "registry+https://github.com/rust-lang/crates.io-index" 1322 | checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" 1323 | 1324 | [[package]] 1325 | name = "url" 1326 | version = "2.3.1" 1327 | source = "registry+https://github.com/rust-lang/crates.io-index" 1328 | checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" 1329 | dependencies = [ 1330 | "form_urlencoded", 1331 | "idna", 1332 | "percent-encoding", 1333 | ] 1334 | 1335 | [[package]] 1336 | name = "utf8parse" 1337 | version = "0.2.1" 1338 | source = "registry+https://github.com/rust-lang/crates.io-index" 1339 | checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" 1340 | 1341 | [[package]] 1342 | name = "version_check" 1343 | version = "0.9.4" 1344 | source = "registry+https://github.com/rust-lang/crates.io-index" 1345 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 1346 | 1347 | [[package]] 1348 | name = "want" 1349 | version = "0.3.0" 1350 | source = "registry+https://github.com/rust-lang/crates.io-index" 1351 | checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" 1352 | dependencies = [ 1353 | "log", 1354 | "try-lock", 1355 | ] 1356 | 1357 | [[package]] 1358 | name = "wasi" 1359 | version = "0.11.0+wasi-snapshot-preview1" 1360 | source = "registry+https://github.com/rust-lang/crates.io-index" 1361 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 1362 | 1363 | [[package]] 1364 | name = "wasm-bindgen" 1365 | version = "0.2.84" 1366 | source = "registry+https://github.com/rust-lang/crates.io-index" 1367 | checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" 1368 | dependencies = [ 1369 | "cfg-if", 1370 | "wasm-bindgen-macro", 1371 | ] 1372 | 1373 | [[package]] 1374 | name = "wasm-bindgen-backend" 1375 | version = "0.2.84" 1376 | source = "registry+https://github.com/rust-lang/crates.io-index" 1377 | checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" 1378 | dependencies = [ 1379 | "bumpalo", 1380 | "log", 1381 | "once_cell", 1382 | "proc-macro2", 1383 | "quote", 1384 | "syn 1.0.109", 1385 | "wasm-bindgen-shared", 1386 | ] 1387 | 1388 | [[package]] 1389 | name = "wasm-bindgen-futures" 1390 | version = "0.4.34" 1391 | source = "registry+https://github.com/rust-lang/crates.io-index" 1392 | checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" 1393 | dependencies = [ 1394 | "cfg-if", 1395 | "js-sys", 1396 | "wasm-bindgen", 1397 | "web-sys", 1398 | ] 1399 | 1400 | [[package]] 1401 | name = "wasm-bindgen-macro" 1402 | version = "0.2.84" 1403 | source = "registry+https://github.com/rust-lang/crates.io-index" 1404 | checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" 1405 | dependencies = [ 1406 | "quote", 1407 | "wasm-bindgen-macro-support", 1408 | ] 1409 | 1410 | [[package]] 1411 | name = "wasm-bindgen-macro-support" 1412 | version = "0.2.84" 1413 | source = "registry+https://github.com/rust-lang/crates.io-index" 1414 | checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" 1415 | dependencies = [ 1416 | "proc-macro2", 1417 | "quote", 1418 | "syn 1.0.109", 1419 | "wasm-bindgen-backend", 1420 | "wasm-bindgen-shared", 1421 | ] 1422 | 1423 | [[package]] 1424 | name = "wasm-bindgen-shared" 1425 | version = "0.2.84" 1426 | source = "registry+https://github.com/rust-lang/crates.io-index" 1427 | checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" 1428 | 1429 | [[package]] 1430 | name = "wasm-streams" 1431 | version = "0.2.3" 1432 | source = "registry+https://github.com/rust-lang/crates.io-index" 1433 | checksum = "6bbae3363c08332cadccd13b67db371814cd214c2524020932f0804b8cf7c078" 1434 | dependencies = [ 1435 | "futures-util", 1436 | "js-sys", 1437 | "wasm-bindgen", 1438 | "wasm-bindgen-futures", 1439 | "web-sys", 1440 | ] 1441 | 1442 | [[package]] 1443 | name = "web-sys" 1444 | version = "0.3.61" 1445 | source = "registry+https://github.com/rust-lang/crates.io-index" 1446 | checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" 1447 | dependencies = [ 1448 | "js-sys", 1449 | "wasm-bindgen", 1450 | ] 1451 | 1452 | [[package]] 1453 | name = "webpki" 1454 | version = "0.22.0" 1455 | source = "registry+https://github.com/rust-lang/crates.io-index" 1456 | checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" 1457 | dependencies = [ 1458 | "ring", 1459 | "untrusted", 1460 | ] 1461 | 1462 | [[package]] 1463 | name = "winapi" 1464 | version = "0.3.9" 1465 | source = "registry+https://github.com/rust-lang/crates.io-index" 1466 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 1467 | dependencies = [ 1468 | "winapi-i686-pc-windows-gnu", 1469 | "winapi-x86_64-pc-windows-gnu", 1470 | ] 1471 | 1472 | [[package]] 1473 | name = "winapi-i686-pc-windows-gnu" 1474 | version = "0.4.0" 1475 | source = "registry+https://github.com/rust-lang/crates.io-index" 1476 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 1477 | 1478 | [[package]] 1479 | name = "winapi-x86_64-pc-windows-gnu" 1480 | version = "0.4.0" 1481 | source = "registry+https://github.com/rust-lang/crates.io-index" 1482 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 1483 | 1484 | [[package]] 1485 | name = "windows-sys" 1486 | version = "0.42.0" 1487 | source = "registry+https://github.com/rust-lang/crates.io-index" 1488 | checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" 1489 | dependencies = [ 1490 | "windows_aarch64_gnullvm 0.42.2", 1491 | "windows_aarch64_msvc 0.42.2", 1492 | "windows_i686_gnu 0.42.2", 1493 | "windows_i686_msvc 0.42.2", 1494 | "windows_x86_64_gnu 0.42.2", 1495 | "windows_x86_64_gnullvm 0.42.2", 1496 | "windows_x86_64_msvc 0.42.2", 1497 | ] 1498 | 1499 | [[package]] 1500 | name = "windows-sys" 1501 | version = "0.45.0" 1502 | source = "registry+https://github.com/rust-lang/crates.io-index" 1503 | checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 1504 | dependencies = [ 1505 | "windows-targets 0.42.2", 1506 | ] 1507 | 1508 | [[package]] 1509 | name = "windows-sys" 1510 | version = "0.48.0" 1511 | source = "registry+https://github.com/rust-lang/crates.io-index" 1512 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 1513 | dependencies = [ 1514 | "windows-targets 0.48.0", 1515 | ] 1516 | 1517 | [[package]] 1518 | name = "windows-targets" 1519 | version = "0.42.2" 1520 | source = "registry+https://github.com/rust-lang/crates.io-index" 1521 | checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" 1522 | dependencies = [ 1523 | "windows_aarch64_gnullvm 0.42.2", 1524 | "windows_aarch64_msvc 0.42.2", 1525 | "windows_i686_gnu 0.42.2", 1526 | "windows_i686_msvc 0.42.2", 1527 | "windows_x86_64_gnu 0.42.2", 1528 | "windows_x86_64_gnullvm 0.42.2", 1529 | "windows_x86_64_msvc 0.42.2", 1530 | ] 1531 | 1532 | [[package]] 1533 | name = "windows-targets" 1534 | version = "0.48.0" 1535 | source = "registry+https://github.com/rust-lang/crates.io-index" 1536 | checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" 1537 | dependencies = [ 1538 | "windows_aarch64_gnullvm 0.48.0", 1539 | "windows_aarch64_msvc 0.48.0", 1540 | "windows_i686_gnu 0.48.0", 1541 | "windows_i686_msvc 0.48.0", 1542 | "windows_x86_64_gnu 0.48.0", 1543 | "windows_x86_64_gnullvm 0.48.0", 1544 | "windows_x86_64_msvc 0.48.0", 1545 | ] 1546 | 1547 | [[package]] 1548 | name = "windows_aarch64_gnullvm" 1549 | version = "0.42.2" 1550 | source = "registry+https://github.com/rust-lang/crates.io-index" 1551 | checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" 1552 | 1553 | [[package]] 1554 | name = "windows_aarch64_gnullvm" 1555 | version = "0.48.0" 1556 | source = "registry+https://github.com/rust-lang/crates.io-index" 1557 | checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" 1558 | 1559 | [[package]] 1560 | name = "windows_aarch64_msvc" 1561 | version = "0.42.2" 1562 | source = "registry+https://github.com/rust-lang/crates.io-index" 1563 | checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" 1564 | 1565 | [[package]] 1566 | name = "windows_aarch64_msvc" 1567 | version = "0.48.0" 1568 | source = "registry+https://github.com/rust-lang/crates.io-index" 1569 | checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" 1570 | 1571 | [[package]] 1572 | name = "windows_i686_gnu" 1573 | version = "0.42.2" 1574 | source = "registry+https://github.com/rust-lang/crates.io-index" 1575 | checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" 1576 | 1577 | [[package]] 1578 | name = "windows_i686_gnu" 1579 | version = "0.48.0" 1580 | source = "registry+https://github.com/rust-lang/crates.io-index" 1581 | checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" 1582 | 1583 | [[package]] 1584 | name = "windows_i686_msvc" 1585 | version = "0.42.2" 1586 | source = "registry+https://github.com/rust-lang/crates.io-index" 1587 | checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" 1588 | 1589 | [[package]] 1590 | name = "windows_i686_msvc" 1591 | version = "0.48.0" 1592 | source = "registry+https://github.com/rust-lang/crates.io-index" 1593 | checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" 1594 | 1595 | [[package]] 1596 | name = "windows_x86_64_gnu" 1597 | version = "0.42.2" 1598 | source = "registry+https://github.com/rust-lang/crates.io-index" 1599 | checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" 1600 | 1601 | [[package]] 1602 | name = "windows_x86_64_gnu" 1603 | version = "0.48.0" 1604 | source = "registry+https://github.com/rust-lang/crates.io-index" 1605 | checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" 1606 | 1607 | [[package]] 1608 | name = "windows_x86_64_gnullvm" 1609 | version = "0.42.2" 1610 | source = "registry+https://github.com/rust-lang/crates.io-index" 1611 | checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" 1612 | 1613 | [[package]] 1614 | name = "windows_x86_64_gnullvm" 1615 | version = "0.48.0" 1616 | source = "registry+https://github.com/rust-lang/crates.io-index" 1617 | checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" 1618 | 1619 | [[package]] 1620 | name = "windows_x86_64_msvc" 1621 | version = "0.42.2" 1622 | source = "registry+https://github.com/rust-lang/crates.io-index" 1623 | checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" 1624 | 1625 | [[package]] 1626 | name = "windows_x86_64_msvc" 1627 | version = "0.48.0" 1628 | source = "registry+https://github.com/rust-lang/crates.io-index" 1629 | checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" 1630 | 1631 | [[package]] 1632 | name = "winreg" 1633 | version = "0.10.1" 1634 | source = "registry+https://github.com/rust-lang/crates.io-index" 1635 | checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" 1636 | dependencies = [ 1637 | "winapi", 1638 | ] 1639 | --------------------------------------------------------------------------------