├── src ├── lib.rs ├── cli │ └── mod.rs ├── gpt │ └── mod.rs ├── git │ └── mod.rs └── bin │ └── gitgen.rs ├── .gitignore ├── README.md ├── Cargo.toml └── Cargo.lock /src/lib.rs: -------------------------------------------------------------------------------- 1 | pub mod cli; 2 | pub mod git; 3 | pub mod gpt; -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | .env 3 | .idea 4 | .vscode 5 | output 6 | .env -------------------------------------------------------------------------------- /src/cli/mod.rs: -------------------------------------------------------------------------------- 1 | use clap::{Arg, Command}; 2 | 3 | // build_cli_app is a function that returns a Command object 4 | pub fn build_cli_app() -> Command { 5 | Command::new("git-gen") 6 | .version("0.1.0") 7 | .author("XY01 xyzmhx@gmail.com") 8 | .about("Generates Git commit messages using GPT") 9 | .arg( 10 | Arg::new("generate") 11 | .short('g') 12 | .long("generate") 13 | .action(clap::ArgAction::SetTrue) 14 | .help("Generates a Git commit message"), 15 | ) 16 | } 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Auto Git Commit 2 | 3 | This project is a tool that uses the OpenAI GPT model to automatically generate commit messages for Git commits based on the changes made in the code. It is written in Rust and uses the Tokio runtime for asynchronous operations. 4 | 5 | ## Setup 6 | 7 | 1. Clone the repository. 8 | 2. `sh build.sh` 9 | 3. Set the `OPENAI_API_KEY` environment variable to your OpenAI API key. 10 | 4. Run the program with the `generate` flag to generate a commit message. 11 | 12 | ## Usage 13 | 14 | ```bash 15 | cp ~/projects/auto_git_commit/output/git_gen /usr/local/bin/ 16 | ``` 17 | 18 | ## Run 19 | 20 | ```bash 21 | gitgen -g 22 | ``` -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "auto_git_commit" 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 | async-trait = "0.1.77" 10 | clap = { version = "4.4.18", features = [] } 11 | git2 = "0.18.2" 12 | reqwest = { version = "0.11", features = ["json", "blocking"] } 13 | serde = { version = "1.0", features = ["derive"] } 14 | sonic-rs = "0.3" 15 | dotenv = "0.15" 16 | chatgpt_rs = { version = "1.2.3", features = ["streams"] } 17 | tokio = { version = "1.36.0", features = ["rt", "rt-multi-thread", "macros"] } 18 | futures = "0.3.30" 19 | log = "0.4.20" 20 | env_logger = { version = "0.11.1", features = [] } 21 | -------------------------------------------------------------------------------- /src/gpt/mod.rs: -------------------------------------------------------------------------------- 1 | use async_trait::async_trait; 2 | use chatgpt::prelude::*; 3 | use chatgpt::types::CompletionResponse; 4 | use futures::stream::StreamExt; 5 | use std::io::{stdout, Write}; 6 | use std::result::Result; 7 | 8 | pub struct GPTClient { 9 | pub client: ChatGPT, 10 | } 11 | 12 | #[async_trait] 13 | pub trait ChatClient { 14 | async fn new(api_key: String) -> Result> 15 | where 16 | Self: Sized; 17 | 18 | async fn send_message( 19 | &self, 20 | message: &str, 21 | ) -> Result>; 22 | 23 | async fn send_message_streaming( 24 | &self, 25 | message: &str, 26 | ) -> Result>; 27 | } 28 | 29 | #[async_trait] 30 | impl ChatClient for GPTClient { 31 | async fn new(api_key: String) -> Result> { 32 | let client = ChatGPT::new(api_key)?; 33 | Ok(Self { client }) 34 | } 35 | 36 | async fn send_message( 37 | &self, 38 | message: &str, 39 | ) -> Result> { 40 | Ok(self.client.send_message(message).await?) 41 | } 42 | 43 | async fn send_message_streaming( 44 | &self, 45 | message: &str, 46 | ) -> Result> { 47 | let mut stream = self.client.send_message_streaming(message).await?; 48 | let mut result = String::new(); 49 | 50 | while let Some(chunk) = stream.next().await { 51 | if let ResponseChunk::Content { 52 | delta, 53 | response_index: _, 54 | } = chunk 55 | { 56 | print!("{}", delta); 57 | stdout().lock().flush().unwrap(); 58 | result.push_str(&delta); 59 | } 60 | } 61 | 62 | Ok(result) 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/git/mod.rs: -------------------------------------------------------------------------------- 1 | use git2::{DiffFormat, DiffOptions, Error, Repository, StatusOptions}; 2 | use std::path::Path; 3 | 4 | pub struct Commit {} 5 | 6 | impl Commit { 7 | // Create a new instance of the Commit struct 8 | pub fn new() -> Self { 9 | Self {} 10 | } 11 | // Read the changes in the Git repository 12 | pub fn read_changes(&self, repo_path: &Path) -> Result { 13 | let repo = Repository::open(repo_path)?; 14 | let mut options = StatusOptions::new(); 15 | options.include_untracked(true); 16 | 17 | let statuses = repo.statuses(Some(&mut options))?; 18 | 19 | let mut changes = String::new(); 20 | for entry in statuses.iter() { 21 | let status = entry.status(); 22 | 23 | if status.is_wt_modified() { 24 | changes.push_str(&format!("Modified: {}\n", entry.path().unwrap_or_default())); 25 | } else if status.is_wt_new() { 26 | changes.push_str(&format!("New: {}\n", entry.path().unwrap_or_default())); 27 | } else if status.is_wt_deleted() { 28 | changes.push_str(&format!("Deleted: {}\n", entry.path().unwrap_or_default())); 29 | } 30 | } 31 | 32 | Ok(changes) 33 | } 34 | // Get the Git diff 35 | pub fn get_git_diff(&self, repo_path: &Path) -> Result { 36 | let repo = Repository::open(repo_path)?; 37 | let head = repo.head()?; 38 | let tree = head.peel_to_tree()?; 39 | 40 | let mut opts = DiffOptions::new(); 41 | let diff = repo.diff_tree_to_workdir_with_index(Some(&tree), Some(&mut opts))?; 42 | 43 | let mut diff_string = String::new(); 44 | diff.print(DiffFormat::Patch, |_, _, line| { 45 | let content = std::str::from_utf8(line.content()).unwrap_or_default(); 46 | diff_string.push_str(content); 47 | true 48 | })?; 49 | 50 | Ok(diff_string) 51 | } 52 | // Commit the changes to the Git repository 53 | pub fn git_commit(&self, msg: &str) -> Result<(), Error> { 54 | let repo = Repository::open(".")?; 55 | let sig = repo.signature()?; 56 | let mut index = repo.index()?; 57 | let oid = index.write_tree()?; 58 | let tree = repo.find_tree(oid)?; 59 | let parent_commit = match repo.head() { 60 | Ok(reference) => match reference.target() { 61 | Some(target) => Some(repo.find_commit(target)?), 62 | None => None, 63 | }, 64 | Err(_) => None, 65 | }; 66 | let parents = parent_commit.iter().collect::>(); 67 | repo.commit(Some("HEAD"), &sig, &sig, msg, &tree, &parents)?; 68 | Ok(()) 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /src/bin/gitgen.rs: -------------------------------------------------------------------------------- 1 | use auto_git_commit::cli; 2 | use auto_git_commit::git; 3 | use auto_git_commit::gpt; 4 | use auto_git_commit::gpt::ChatClient; 5 | use std::env; 6 | use std::io::{self, Write}; 7 | use std::path::Path; 8 | 9 | const DEFAULT_PROMPT: &str = "Please provide a commit message based on the changes, ensuring to wrap the body at 72 characters. Use the body to detail what changes were made and why, rather than the method of implementation."; 10 | 11 | #[tokio::main] 12 | async fn main() { 13 | // Load environment variables from .env file explicitly 14 | if Path::new(".env").exists() { 15 | dotenv::dotenv().expect("Failed to load .env file"); 16 | } 17 | // Parse command line arguments 18 | let matches = cli::build_cli_app().get_matches(); 19 | let api_key = match env::var("OPENAI_API_KEY") { 20 | Ok(key) => key, 21 | Err(_) => { 22 | log::error!("Please set the OPENAI_API_KEY environment variable, such as export OPENAI_API_KEY=\"your-api\""); 23 | return; 24 | } 25 | }; 26 | // Create a GPT client 27 | let gpt_client = match gpt::GPTClient::new(api_key).await { 28 | Ok(client) => client, 29 | Err(e) => { 30 | log::error!("Failed to create GPT client: {}", e); 31 | return; 32 | } 33 | }; 34 | // Generate a commit message 35 | if matches.get_flag("generate") { 36 | let prompt = DEFAULT_PROMPT; 37 | let commit = git::Commit::new(); 38 | let current_dir = match env::current_dir() { 39 | Ok(dir) => dir, 40 | Err(e) => { 41 | log::error!("Failed to get current directory: {}", e); 42 | return; 43 | } 44 | }; 45 | let repo_path = current_dir.as_path(); 46 | let git_changes = match commit.read_changes(repo_path) { 47 | Ok(changes) => changes, 48 | Err(e) => { 49 | log::error!("Failed to read changes: {}", e); 50 | return; 51 | } 52 | }; 53 | 54 | let git_diff = match commit.get_git_diff(repo_path) { 55 | Ok(diff) => diff, 56 | Err(e) => { 57 | log::error!("Failed to get git diff: {}", e); 58 | return; 59 | } 60 | }; 61 | log::info!("Changes: {}", git_changes); 62 | log::info!("Diff: {}", git_diff); 63 | let message = format!("{}\n{}\n{}", prompt, git_changes, git_diff); 64 | let response = gpt_client.send_message_streaming(&message).await.unwrap(); 65 | print!("\nDo you want to commit? (yes/no): "); 66 | io::stdout().flush().unwrap(); 67 | let mut answer = String::new(); 68 | io::stdin().read_line(&mut answer).unwrap(); 69 | if answer.trim() == "yes" { 70 | commit.git_commit(&response).unwrap(); 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /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 = "addr2line" 7 | version = "0.21.0" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" 10 | dependencies = [ 11 | "gimli", 12 | ] 13 | 14 | [[package]] 15 | name = "adler" 16 | version = "1.0.2" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 19 | 20 | [[package]] 21 | name = "aho-corasick" 22 | version = "1.1.2" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" 25 | dependencies = [ 26 | "memchr", 27 | ] 28 | 29 | [[package]] 30 | name = "anstream" 31 | version = "0.6.11" 32 | source = "registry+https://github.com/rust-lang/crates.io-index" 33 | checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" 34 | dependencies = [ 35 | "anstyle", 36 | "anstyle-parse", 37 | "anstyle-query", 38 | "anstyle-wincon", 39 | "colorchoice", 40 | "utf8parse", 41 | ] 42 | 43 | [[package]] 44 | name = "anstyle" 45 | version = "1.0.6" 46 | source = "registry+https://github.com/rust-lang/crates.io-index" 47 | checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" 48 | 49 | [[package]] 50 | name = "anstyle-parse" 51 | version = "0.2.3" 52 | source = "registry+https://github.com/rust-lang/crates.io-index" 53 | checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" 54 | dependencies = [ 55 | "utf8parse", 56 | ] 57 | 58 | [[package]] 59 | name = "anstyle-query" 60 | version = "1.0.2" 61 | source = "registry+https://github.com/rust-lang/crates.io-index" 62 | checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" 63 | dependencies = [ 64 | "windows-sys 0.52.0", 65 | ] 66 | 67 | [[package]] 68 | name = "anstyle-wincon" 69 | version = "3.0.2" 70 | source = "registry+https://github.com/rust-lang/crates.io-index" 71 | checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" 72 | dependencies = [ 73 | "anstyle", 74 | "windows-sys 0.52.0", 75 | ] 76 | 77 | [[package]] 78 | name = "arrayref" 79 | version = "0.3.7" 80 | source = "registry+https://github.com/rust-lang/crates.io-index" 81 | checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" 82 | 83 | [[package]] 84 | name = "async-trait" 85 | version = "0.1.77" 86 | source = "registry+https://github.com/rust-lang/crates.io-index" 87 | checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" 88 | dependencies = [ 89 | "proc-macro2", 90 | "quote", 91 | "syn 2.0.48", 92 | ] 93 | 94 | [[package]] 95 | name = "auto_git_commit" 96 | version = "0.1.0" 97 | dependencies = [ 98 | "async-trait", 99 | "chatgpt_rs", 100 | "clap", 101 | "dotenv", 102 | "env_logger", 103 | "futures", 104 | "git2", 105 | "log", 106 | "reqwest", 107 | "serde", 108 | "sonic-rs", 109 | "tokio", 110 | ] 111 | 112 | [[package]] 113 | name = "autocfg" 114 | version = "1.1.0" 115 | source = "registry+https://github.com/rust-lang/crates.io-index" 116 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 117 | 118 | [[package]] 119 | name = "backtrace" 120 | version = "0.3.69" 121 | source = "registry+https://github.com/rust-lang/crates.io-index" 122 | checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" 123 | dependencies = [ 124 | "addr2line", 125 | "cc", 126 | "cfg-if", 127 | "libc", 128 | "miniz_oxide", 129 | "object", 130 | "rustc-demangle", 131 | ] 132 | 133 | [[package]] 134 | name = "base64" 135 | version = "0.21.7" 136 | source = "registry+https://github.com/rust-lang/crates.io-index" 137 | checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 138 | 139 | [[package]] 140 | name = "bitflags" 141 | version = "1.3.2" 142 | source = "registry+https://github.com/rust-lang/crates.io-index" 143 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 144 | 145 | [[package]] 146 | name = "bitflags" 147 | version = "2.4.2" 148 | source = "registry+https://github.com/rust-lang/crates.io-index" 149 | checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" 150 | 151 | [[package]] 152 | name = "bumpalo" 153 | version = "3.14.0" 154 | source = "registry+https://github.com/rust-lang/crates.io-index" 155 | checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" 156 | 157 | [[package]] 158 | name = "bytes" 159 | version = "1.5.0" 160 | source = "registry+https://github.com/rust-lang/crates.io-index" 161 | checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" 162 | 163 | [[package]] 164 | name = "cc" 165 | version = "1.0.83" 166 | source = "registry+https://github.com/rust-lang/crates.io-index" 167 | checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" 168 | dependencies = [ 169 | "jobserver", 170 | "libc", 171 | ] 172 | 173 | [[package]] 174 | name = "cfg-if" 175 | version = "1.0.0" 176 | source = "registry+https://github.com/rust-lang/crates.io-index" 177 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 178 | 179 | [[package]] 180 | name = "chatgpt_rs" 181 | version = "1.2.3" 182 | source = "registry+https://github.com/rust-lang/crates.io-index" 183 | checksum = "0c8a252c161b36850bd202c735a7f224710a67758d91220d50a3bfd38dd1c7fc" 184 | dependencies = [ 185 | "derive_builder", 186 | "eventsource-stream", 187 | "futures", 188 | "futures-util", 189 | "reqwest", 190 | "serde", 191 | "serde_json", 192 | "thiserror", 193 | "tokio", 194 | "url", 195 | ] 196 | 197 | [[package]] 198 | name = "clap" 199 | version = "4.4.18" 200 | source = "registry+https://github.com/rust-lang/crates.io-index" 201 | checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c" 202 | dependencies = [ 203 | "clap_builder", 204 | ] 205 | 206 | [[package]] 207 | name = "clap_builder" 208 | version = "4.4.18" 209 | source = "registry+https://github.com/rust-lang/crates.io-index" 210 | checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7" 211 | dependencies = [ 212 | "anstream", 213 | "anstyle", 214 | "clap_lex", 215 | "strsim", 216 | ] 217 | 218 | [[package]] 219 | name = "clap_lex" 220 | version = "0.6.0" 221 | source = "registry+https://github.com/rust-lang/crates.io-index" 222 | checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" 223 | 224 | [[package]] 225 | name = "colorchoice" 226 | version = "1.0.0" 227 | source = "registry+https://github.com/rust-lang/crates.io-index" 228 | checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" 229 | 230 | [[package]] 231 | name = "core-foundation" 232 | version = "0.9.4" 233 | source = "registry+https://github.com/rust-lang/crates.io-index" 234 | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 235 | dependencies = [ 236 | "core-foundation-sys", 237 | "libc", 238 | ] 239 | 240 | [[package]] 241 | name = "core-foundation-sys" 242 | version = "0.8.6" 243 | source = "registry+https://github.com/rust-lang/crates.io-index" 244 | checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" 245 | 246 | [[package]] 247 | name = "darling" 248 | version = "0.14.4" 249 | source = "registry+https://github.com/rust-lang/crates.io-index" 250 | checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" 251 | dependencies = [ 252 | "darling_core", 253 | "darling_macro", 254 | ] 255 | 256 | [[package]] 257 | name = "darling_core" 258 | version = "0.14.4" 259 | source = "registry+https://github.com/rust-lang/crates.io-index" 260 | checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" 261 | dependencies = [ 262 | "fnv", 263 | "ident_case", 264 | "proc-macro2", 265 | "quote", 266 | "strsim", 267 | "syn 1.0.109", 268 | ] 269 | 270 | [[package]] 271 | name = "darling_macro" 272 | version = "0.14.4" 273 | source = "registry+https://github.com/rust-lang/crates.io-index" 274 | checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" 275 | dependencies = [ 276 | "darling_core", 277 | "quote", 278 | "syn 1.0.109", 279 | ] 280 | 281 | [[package]] 282 | name = "derive_builder" 283 | version = "0.12.0" 284 | source = "registry+https://github.com/rust-lang/crates.io-index" 285 | checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" 286 | dependencies = [ 287 | "derive_builder_macro", 288 | ] 289 | 290 | [[package]] 291 | name = "derive_builder_core" 292 | version = "0.12.0" 293 | source = "registry+https://github.com/rust-lang/crates.io-index" 294 | checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" 295 | dependencies = [ 296 | "darling", 297 | "proc-macro2", 298 | "quote", 299 | "syn 1.0.109", 300 | ] 301 | 302 | [[package]] 303 | name = "derive_builder_macro" 304 | version = "0.12.0" 305 | source = "registry+https://github.com/rust-lang/crates.io-index" 306 | checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" 307 | dependencies = [ 308 | "derive_builder_core", 309 | "syn 1.0.109", 310 | ] 311 | 312 | [[package]] 313 | name = "dotenv" 314 | version = "0.15.0" 315 | source = "registry+https://github.com/rust-lang/crates.io-index" 316 | checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" 317 | 318 | [[package]] 319 | name = "encoding_rs" 320 | version = "0.8.33" 321 | source = "registry+https://github.com/rust-lang/crates.io-index" 322 | checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" 323 | dependencies = [ 324 | "cfg-if", 325 | ] 326 | 327 | [[package]] 328 | name = "env_filter" 329 | version = "0.1.0" 330 | source = "registry+https://github.com/rust-lang/crates.io-index" 331 | checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea" 332 | dependencies = [ 333 | "log", 334 | "regex", 335 | ] 336 | 337 | [[package]] 338 | name = "env_logger" 339 | version = "0.11.1" 340 | source = "registry+https://github.com/rust-lang/crates.io-index" 341 | checksum = "05e7cf40684ae96ade6232ed84582f40ce0a66efcd43a5117aef610534f8e0b8" 342 | dependencies = [ 343 | "anstream", 344 | "anstyle", 345 | "env_filter", 346 | "humantime", 347 | "log", 348 | ] 349 | 350 | [[package]] 351 | name = "equivalent" 352 | version = "1.0.1" 353 | source = "registry+https://github.com/rust-lang/crates.io-index" 354 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 355 | 356 | [[package]] 357 | name = "errno" 358 | version = "0.3.8" 359 | source = "registry+https://github.com/rust-lang/crates.io-index" 360 | checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" 361 | dependencies = [ 362 | "libc", 363 | "windows-sys 0.52.0", 364 | ] 365 | 366 | [[package]] 367 | name = "eventsource-stream" 368 | version = "0.2.3" 369 | source = "registry+https://github.com/rust-lang/crates.io-index" 370 | checksum = "74fef4569247a5f429d9156b9d0a2599914385dd189c539334c625d8099d90ab" 371 | dependencies = [ 372 | "futures-core", 373 | "nom", 374 | "pin-project-lite", 375 | ] 376 | 377 | [[package]] 378 | name = "fastrand" 379 | version = "2.0.1" 380 | source = "registry+https://github.com/rust-lang/crates.io-index" 381 | checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" 382 | 383 | [[package]] 384 | name = "faststr" 385 | version = "0.2.16" 386 | source = "registry+https://github.com/rust-lang/crates.io-index" 387 | checksum = "c176ff74f084f24c4fdc98ac22d11e27da8daffbcbd13f4d71180758a319c2e3" 388 | dependencies = [ 389 | "bytes", 390 | "serde", 391 | "simdutf8", 392 | ] 393 | 394 | [[package]] 395 | name = "fnv" 396 | version = "1.0.7" 397 | source = "registry+https://github.com/rust-lang/crates.io-index" 398 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 399 | 400 | [[package]] 401 | name = "foreign-types" 402 | version = "0.3.2" 403 | source = "registry+https://github.com/rust-lang/crates.io-index" 404 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 405 | dependencies = [ 406 | "foreign-types-shared", 407 | ] 408 | 409 | [[package]] 410 | name = "foreign-types-shared" 411 | version = "0.1.1" 412 | source = "registry+https://github.com/rust-lang/crates.io-index" 413 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 414 | 415 | [[package]] 416 | name = "form_urlencoded" 417 | version = "1.2.1" 418 | source = "registry+https://github.com/rust-lang/crates.io-index" 419 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 420 | dependencies = [ 421 | "percent-encoding", 422 | ] 423 | 424 | [[package]] 425 | name = "futures" 426 | version = "0.3.30" 427 | source = "registry+https://github.com/rust-lang/crates.io-index" 428 | checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" 429 | dependencies = [ 430 | "futures-channel", 431 | "futures-core", 432 | "futures-executor", 433 | "futures-io", 434 | "futures-sink", 435 | "futures-task", 436 | "futures-util", 437 | ] 438 | 439 | [[package]] 440 | name = "futures-channel" 441 | version = "0.3.30" 442 | source = "registry+https://github.com/rust-lang/crates.io-index" 443 | checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" 444 | dependencies = [ 445 | "futures-core", 446 | "futures-sink", 447 | ] 448 | 449 | [[package]] 450 | name = "futures-core" 451 | version = "0.3.30" 452 | source = "registry+https://github.com/rust-lang/crates.io-index" 453 | checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" 454 | 455 | [[package]] 456 | name = "futures-executor" 457 | version = "0.3.30" 458 | source = "registry+https://github.com/rust-lang/crates.io-index" 459 | checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" 460 | dependencies = [ 461 | "futures-core", 462 | "futures-task", 463 | "futures-util", 464 | ] 465 | 466 | [[package]] 467 | name = "futures-io" 468 | version = "0.3.30" 469 | source = "registry+https://github.com/rust-lang/crates.io-index" 470 | checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" 471 | 472 | [[package]] 473 | name = "futures-macro" 474 | version = "0.3.30" 475 | source = "registry+https://github.com/rust-lang/crates.io-index" 476 | checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" 477 | dependencies = [ 478 | "proc-macro2", 479 | "quote", 480 | "syn 2.0.48", 481 | ] 482 | 483 | [[package]] 484 | name = "futures-sink" 485 | version = "0.3.30" 486 | source = "registry+https://github.com/rust-lang/crates.io-index" 487 | checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" 488 | 489 | [[package]] 490 | name = "futures-task" 491 | version = "0.3.30" 492 | source = "registry+https://github.com/rust-lang/crates.io-index" 493 | checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" 494 | 495 | [[package]] 496 | name = "futures-util" 497 | version = "0.3.30" 498 | source = "registry+https://github.com/rust-lang/crates.io-index" 499 | checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" 500 | dependencies = [ 501 | "futures-channel", 502 | "futures-core", 503 | "futures-io", 504 | "futures-macro", 505 | "futures-sink", 506 | "futures-task", 507 | "memchr", 508 | "pin-project-lite", 509 | "pin-utils", 510 | "slab", 511 | ] 512 | 513 | [[package]] 514 | name = "getrandom" 515 | version = "0.2.12" 516 | source = "registry+https://github.com/rust-lang/crates.io-index" 517 | checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" 518 | dependencies = [ 519 | "cfg-if", 520 | "libc", 521 | "wasi", 522 | ] 523 | 524 | [[package]] 525 | name = "gimli" 526 | version = "0.28.1" 527 | source = "registry+https://github.com/rust-lang/crates.io-index" 528 | checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" 529 | 530 | [[package]] 531 | name = "git2" 532 | version = "0.18.2" 533 | source = "registry+https://github.com/rust-lang/crates.io-index" 534 | checksum = "1b3ba52851e73b46a4c3df1d89343741112003f0f6f13beb0dfac9e457c3fdcd" 535 | dependencies = [ 536 | "bitflags 2.4.2", 537 | "libc", 538 | "libgit2-sys", 539 | "log", 540 | "openssl-probe", 541 | "openssl-sys", 542 | "url", 543 | ] 544 | 545 | [[package]] 546 | name = "h2" 547 | version = "0.3.24" 548 | source = "registry+https://github.com/rust-lang/crates.io-index" 549 | checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" 550 | dependencies = [ 551 | "bytes", 552 | "fnv", 553 | "futures-core", 554 | "futures-sink", 555 | "futures-util", 556 | "http", 557 | "indexmap", 558 | "slab", 559 | "tokio", 560 | "tokio-util", 561 | "tracing", 562 | ] 563 | 564 | [[package]] 565 | name = "hashbrown" 566 | version = "0.14.3" 567 | source = "registry+https://github.com/rust-lang/crates.io-index" 568 | checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" 569 | 570 | [[package]] 571 | name = "hermit-abi" 572 | version = "0.3.5" 573 | source = "registry+https://github.com/rust-lang/crates.io-index" 574 | checksum = "d0c62115964e08cb8039170eb33c1d0e2388a256930279edca206fff675f82c3" 575 | 576 | [[package]] 577 | name = "http" 578 | version = "0.2.11" 579 | source = "registry+https://github.com/rust-lang/crates.io-index" 580 | checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" 581 | dependencies = [ 582 | "bytes", 583 | "fnv", 584 | "itoa", 585 | ] 586 | 587 | [[package]] 588 | name = "http-body" 589 | version = "0.4.6" 590 | source = "registry+https://github.com/rust-lang/crates.io-index" 591 | checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" 592 | dependencies = [ 593 | "bytes", 594 | "http", 595 | "pin-project-lite", 596 | ] 597 | 598 | [[package]] 599 | name = "httparse" 600 | version = "1.8.0" 601 | source = "registry+https://github.com/rust-lang/crates.io-index" 602 | checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" 603 | 604 | [[package]] 605 | name = "httpdate" 606 | version = "1.0.3" 607 | source = "registry+https://github.com/rust-lang/crates.io-index" 608 | checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 609 | 610 | [[package]] 611 | name = "humantime" 612 | version = "2.1.0" 613 | source = "registry+https://github.com/rust-lang/crates.io-index" 614 | checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" 615 | 616 | [[package]] 617 | name = "hyper" 618 | version = "0.14.28" 619 | source = "registry+https://github.com/rust-lang/crates.io-index" 620 | checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" 621 | dependencies = [ 622 | "bytes", 623 | "futures-channel", 624 | "futures-core", 625 | "futures-util", 626 | "h2", 627 | "http", 628 | "http-body", 629 | "httparse", 630 | "httpdate", 631 | "itoa", 632 | "pin-project-lite", 633 | "socket2", 634 | "tokio", 635 | "tower-service", 636 | "tracing", 637 | "want", 638 | ] 639 | 640 | [[package]] 641 | name = "hyper-rustls" 642 | version = "0.24.2" 643 | source = "registry+https://github.com/rust-lang/crates.io-index" 644 | checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" 645 | dependencies = [ 646 | "futures-util", 647 | "http", 648 | "hyper", 649 | "rustls", 650 | "tokio", 651 | "tokio-rustls", 652 | ] 653 | 654 | [[package]] 655 | name = "hyper-tls" 656 | version = "0.5.0" 657 | source = "registry+https://github.com/rust-lang/crates.io-index" 658 | checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" 659 | dependencies = [ 660 | "bytes", 661 | "hyper", 662 | "native-tls", 663 | "tokio", 664 | "tokio-native-tls", 665 | ] 666 | 667 | [[package]] 668 | name = "ident_case" 669 | version = "1.0.1" 670 | source = "registry+https://github.com/rust-lang/crates.io-index" 671 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 672 | 673 | [[package]] 674 | name = "idna" 675 | version = "0.5.0" 676 | source = "registry+https://github.com/rust-lang/crates.io-index" 677 | checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" 678 | dependencies = [ 679 | "unicode-bidi", 680 | "unicode-normalization", 681 | ] 682 | 683 | [[package]] 684 | name = "indexmap" 685 | version = "2.2.2" 686 | source = "registry+https://github.com/rust-lang/crates.io-index" 687 | checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520" 688 | dependencies = [ 689 | "equivalent", 690 | "hashbrown", 691 | ] 692 | 693 | [[package]] 694 | name = "ipnet" 695 | version = "2.9.0" 696 | source = "registry+https://github.com/rust-lang/crates.io-index" 697 | checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" 698 | 699 | [[package]] 700 | name = "itoa" 701 | version = "1.0.10" 702 | source = "registry+https://github.com/rust-lang/crates.io-index" 703 | checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" 704 | 705 | [[package]] 706 | name = "jobserver" 707 | version = "0.1.27" 708 | source = "registry+https://github.com/rust-lang/crates.io-index" 709 | checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" 710 | dependencies = [ 711 | "libc", 712 | ] 713 | 714 | [[package]] 715 | name = "js-sys" 716 | version = "0.3.68" 717 | source = "registry+https://github.com/rust-lang/crates.io-index" 718 | checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" 719 | dependencies = [ 720 | "wasm-bindgen", 721 | ] 722 | 723 | [[package]] 724 | name = "lazy_static" 725 | version = "1.4.0" 726 | source = "registry+https://github.com/rust-lang/crates.io-index" 727 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 728 | 729 | [[package]] 730 | name = "libc" 731 | version = "0.2.153" 732 | source = "registry+https://github.com/rust-lang/crates.io-index" 733 | checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" 734 | 735 | [[package]] 736 | name = "libgit2-sys" 737 | version = "0.16.2+1.7.2" 738 | source = "registry+https://github.com/rust-lang/crates.io-index" 739 | checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8" 740 | dependencies = [ 741 | "cc", 742 | "libc", 743 | "libssh2-sys", 744 | "libz-sys", 745 | "openssl-sys", 746 | "pkg-config", 747 | ] 748 | 749 | [[package]] 750 | name = "libssh2-sys" 751 | version = "0.3.0" 752 | source = "registry+https://github.com/rust-lang/crates.io-index" 753 | checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee" 754 | dependencies = [ 755 | "cc", 756 | "libc", 757 | "libz-sys", 758 | "openssl-sys", 759 | "pkg-config", 760 | "vcpkg", 761 | ] 762 | 763 | [[package]] 764 | name = "libz-sys" 765 | version = "1.1.15" 766 | source = "registry+https://github.com/rust-lang/crates.io-index" 767 | checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6" 768 | dependencies = [ 769 | "cc", 770 | "libc", 771 | "pkg-config", 772 | "vcpkg", 773 | ] 774 | 775 | [[package]] 776 | name = "linux-raw-sys" 777 | version = "0.4.13" 778 | source = "registry+https://github.com/rust-lang/crates.io-index" 779 | checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" 780 | 781 | [[package]] 782 | name = "lock_api" 783 | version = "0.4.11" 784 | source = "registry+https://github.com/rust-lang/crates.io-index" 785 | checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" 786 | dependencies = [ 787 | "autocfg", 788 | "scopeguard", 789 | ] 790 | 791 | [[package]] 792 | name = "log" 793 | version = "0.4.20" 794 | source = "registry+https://github.com/rust-lang/crates.io-index" 795 | checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" 796 | 797 | [[package]] 798 | name = "memchr" 799 | version = "2.7.1" 800 | source = "registry+https://github.com/rust-lang/crates.io-index" 801 | checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" 802 | 803 | [[package]] 804 | name = "mime" 805 | version = "0.3.17" 806 | source = "registry+https://github.com/rust-lang/crates.io-index" 807 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 808 | 809 | [[package]] 810 | name = "minimal-lexical" 811 | version = "0.2.1" 812 | source = "registry+https://github.com/rust-lang/crates.io-index" 813 | checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 814 | 815 | [[package]] 816 | name = "miniz_oxide" 817 | version = "0.7.2" 818 | source = "registry+https://github.com/rust-lang/crates.io-index" 819 | checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" 820 | dependencies = [ 821 | "adler", 822 | ] 823 | 824 | [[package]] 825 | name = "mio" 826 | version = "0.8.10" 827 | source = "registry+https://github.com/rust-lang/crates.io-index" 828 | checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" 829 | dependencies = [ 830 | "libc", 831 | "wasi", 832 | "windows-sys 0.48.0", 833 | ] 834 | 835 | [[package]] 836 | name = "native-tls" 837 | version = "0.2.11" 838 | source = "registry+https://github.com/rust-lang/crates.io-index" 839 | checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" 840 | dependencies = [ 841 | "lazy_static", 842 | "libc", 843 | "log", 844 | "openssl", 845 | "openssl-probe", 846 | "openssl-sys", 847 | "schannel", 848 | "security-framework", 849 | "security-framework-sys", 850 | "tempfile", 851 | ] 852 | 853 | [[package]] 854 | name = "nom" 855 | version = "7.1.3" 856 | source = "registry+https://github.com/rust-lang/crates.io-index" 857 | checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 858 | dependencies = [ 859 | "memchr", 860 | "minimal-lexical", 861 | ] 862 | 863 | [[package]] 864 | name = "num_cpus" 865 | version = "1.16.0" 866 | source = "registry+https://github.com/rust-lang/crates.io-index" 867 | checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" 868 | dependencies = [ 869 | "hermit-abi", 870 | "libc", 871 | ] 872 | 873 | [[package]] 874 | name = "object" 875 | version = "0.32.2" 876 | source = "registry+https://github.com/rust-lang/crates.io-index" 877 | checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" 878 | dependencies = [ 879 | "memchr", 880 | ] 881 | 882 | [[package]] 883 | name = "once_cell" 884 | version = "1.19.0" 885 | source = "registry+https://github.com/rust-lang/crates.io-index" 886 | checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" 887 | 888 | [[package]] 889 | name = "openssl" 890 | version = "0.10.63" 891 | source = "registry+https://github.com/rust-lang/crates.io-index" 892 | checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8" 893 | dependencies = [ 894 | "bitflags 2.4.2", 895 | "cfg-if", 896 | "foreign-types", 897 | "libc", 898 | "once_cell", 899 | "openssl-macros", 900 | "openssl-sys", 901 | ] 902 | 903 | [[package]] 904 | name = "openssl-macros" 905 | version = "0.1.1" 906 | source = "registry+https://github.com/rust-lang/crates.io-index" 907 | checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" 908 | dependencies = [ 909 | "proc-macro2", 910 | "quote", 911 | "syn 2.0.48", 912 | ] 913 | 914 | [[package]] 915 | name = "openssl-probe" 916 | version = "0.1.5" 917 | source = "registry+https://github.com/rust-lang/crates.io-index" 918 | checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 919 | 920 | [[package]] 921 | name = "openssl-sys" 922 | version = "0.9.99" 923 | source = "registry+https://github.com/rust-lang/crates.io-index" 924 | checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" 925 | dependencies = [ 926 | "cc", 927 | "libc", 928 | "pkg-config", 929 | "vcpkg", 930 | ] 931 | 932 | [[package]] 933 | name = "page_size" 934 | version = "0.6.0" 935 | source = "registry+https://github.com/rust-lang/crates.io-index" 936 | checksum = "30d5b2194ed13191c1999ae0704b7839fb18384fa22e49b57eeaa97d79ce40da" 937 | dependencies = [ 938 | "libc", 939 | "winapi", 940 | ] 941 | 942 | [[package]] 943 | name = "parking_lot" 944 | version = "0.12.1" 945 | source = "registry+https://github.com/rust-lang/crates.io-index" 946 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 947 | dependencies = [ 948 | "lock_api", 949 | "parking_lot_core", 950 | ] 951 | 952 | [[package]] 953 | name = "parking_lot_core" 954 | version = "0.9.9" 955 | source = "registry+https://github.com/rust-lang/crates.io-index" 956 | checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" 957 | dependencies = [ 958 | "cfg-if", 959 | "libc", 960 | "redox_syscall", 961 | "smallvec", 962 | "windows-targets 0.48.5", 963 | ] 964 | 965 | [[package]] 966 | name = "percent-encoding" 967 | version = "2.3.1" 968 | source = "registry+https://github.com/rust-lang/crates.io-index" 969 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 970 | 971 | [[package]] 972 | name = "pin-project-lite" 973 | version = "0.2.13" 974 | source = "registry+https://github.com/rust-lang/crates.io-index" 975 | checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" 976 | 977 | [[package]] 978 | name = "pin-utils" 979 | version = "0.1.0" 980 | source = "registry+https://github.com/rust-lang/crates.io-index" 981 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 982 | 983 | [[package]] 984 | name = "pkg-config" 985 | version = "0.3.29" 986 | source = "registry+https://github.com/rust-lang/crates.io-index" 987 | checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" 988 | 989 | [[package]] 990 | name = "proc-macro2" 991 | version = "1.0.78" 992 | source = "registry+https://github.com/rust-lang/crates.io-index" 993 | checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" 994 | dependencies = [ 995 | "unicode-ident", 996 | ] 997 | 998 | [[package]] 999 | name = "quote" 1000 | version = "1.0.35" 1001 | source = "registry+https://github.com/rust-lang/crates.io-index" 1002 | checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" 1003 | dependencies = [ 1004 | "proc-macro2", 1005 | ] 1006 | 1007 | [[package]] 1008 | name = "redox_syscall" 1009 | version = "0.4.1" 1010 | source = "registry+https://github.com/rust-lang/crates.io-index" 1011 | checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" 1012 | dependencies = [ 1013 | "bitflags 1.3.2", 1014 | ] 1015 | 1016 | [[package]] 1017 | name = "regex" 1018 | version = "1.10.3" 1019 | source = "registry+https://github.com/rust-lang/crates.io-index" 1020 | checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" 1021 | dependencies = [ 1022 | "aho-corasick", 1023 | "memchr", 1024 | "regex-automata", 1025 | "regex-syntax", 1026 | ] 1027 | 1028 | [[package]] 1029 | name = "regex-automata" 1030 | version = "0.4.5" 1031 | source = "registry+https://github.com/rust-lang/crates.io-index" 1032 | checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" 1033 | dependencies = [ 1034 | "aho-corasick", 1035 | "memchr", 1036 | "regex-syntax", 1037 | ] 1038 | 1039 | [[package]] 1040 | name = "regex-syntax" 1041 | version = "0.8.2" 1042 | source = "registry+https://github.com/rust-lang/crates.io-index" 1043 | checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" 1044 | 1045 | [[package]] 1046 | name = "reqwest" 1047 | version = "0.11.24" 1048 | source = "registry+https://github.com/rust-lang/crates.io-index" 1049 | checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251" 1050 | dependencies = [ 1051 | "base64", 1052 | "bytes", 1053 | "encoding_rs", 1054 | "futures-core", 1055 | "futures-util", 1056 | "h2", 1057 | "http", 1058 | "http-body", 1059 | "hyper", 1060 | "hyper-rustls", 1061 | "hyper-tls", 1062 | "ipnet", 1063 | "js-sys", 1064 | "log", 1065 | "mime", 1066 | "native-tls", 1067 | "once_cell", 1068 | "percent-encoding", 1069 | "pin-project-lite", 1070 | "rustls", 1071 | "rustls-pemfile", 1072 | "serde", 1073 | "serde_json", 1074 | "serde_urlencoded", 1075 | "sync_wrapper", 1076 | "system-configuration", 1077 | "tokio", 1078 | "tokio-native-tls", 1079 | "tokio-rustls", 1080 | "tokio-util", 1081 | "tower-service", 1082 | "url", 1083 | "wasm-bindgen", 1084 | "wasm-bindgen-futures", 1085 | "wasm-streams", 1086 | "web-sys", 1087 | "webpki-roots", 1088 | "winreg", 1089 | ] 1090 | 1091 | [[package]] 1092 | name = "ring" 1093 | version = "0.17.7" 1094 | source = "registry+https://github.com/rust-lang/crates.io-index" 1095 | checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" 1096 | dependencies = [ 1097 | "cc", 1098 | "getrandom", 1099 | "libc", 1100 | "spin", 1101 | "untrusted", 1102 | "windows-sys 0.48.0", 1103 | ] 1104 | 1105 | [[package]] 1106 | name = "rustc-demangle" 1107 | version = "0.1.23" 1108 | source = "registry+https://github.com/rust-lang/crates.io-index" 1109 | checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" 1110 | 1111 | [[package]] 1112 | name = "rustix" 1113 | version = "0.38.31" 1114 | source = "registry+https://github.com/rust-lang/crates.io-index" 1115 | checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" 1116 | dependencies = [ 1117 | "bitflags 2.4.2", 1118 | "errno", 1119 | "libc", 1120 | "linux-raw-sys", 1121 | "windows-sys 0.52.0", 1122 | ] 1123 | 1124 | [[package]] 1125 | name = "rustls" 1126 | version = "0.21.10" 1127 | source = "registry+https://github.com/rust-lang/crates.io-index" 1128 | checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" 1129 | dependencies = [ 1130 | "log", 1131 | "ring", 1132 | "rustls-webpki", 1133 | "sct", 1134 | ] 1135 | 1136 | [[package]] 1137 | name = "rustls-pemfile" 1138 | version = "1.0.4" 1139 | source = "registry+https://github.com/rust-lang/crates.io-index" 1140 | checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" 1141 | dependencies = [ 1142 | "base64", 1143 | ] 1144 | 1145 | [[package]] 1146 | name = "rustls-webpki" 1147 | version = "0.101.7" 1148 | source = "registry+https://github.com/rust-lang/crates.io-index" 1149 | checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" 1150 | dependencies = [ 1151 | "ring", 1152 | "untrusted", 1153 | ] 1154 | 1155 | [[package]] 1156 | name = "ryu" 1157 | version = "1.0.16" 1158 | source = "registry+https://github.com/rust-lang/crates.io-index" 1159 | checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" 1160 | 1161 | [[package]] 1162 | name = "schannel" 1163 | version = "0.1.23" 1164 | source = "registry+https://github.com/rust-lang/crates.io-index" 1165 | checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" 1166 | dependencies = [ 1167 | "windows-sys 0.52.0", 1168 | ] 1169 | 1170 | [[package]] 1171 | name = "scopeguard" 1172 | version = "1.2.0" 1173 | source = "registry+https://github.com/rust-lang/crates.io-index" 1174 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1175 | 1176 | [[package]] 1177 | name = "sct" 1178 | version = "0.7.1" 1179 | source = "registry+https://github.com/rust-lang/crates.io-index" 1180 | checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" 1181 | dependencies = [ 1182 | "ring", 1183 | "untrusted", 1184 | ] 1185 | 1186 | [[package]] 1187 | name = "security-framework" 1188 | version = "2.9.2" 1189 | source = "registry+https://github.com/rust-lang/crates.io-index" 1190 | checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" 1191 | dependencies = [ 1192 | "bitflags 1.3.2", 1193 | "core-foundation", 1194 | "core-foundation-sys", 1195 | "libc", 1196 | "security-framework-sys", 1197 | ] 1198 | 1199 | [[package]] 1200 | name = "security-framework-sys" 1201 | version = "2.9.1" 1202 | source = "registry+https://github.com/rust-lang/crates.io-index" 1203 | checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" 1204 | dependencies = [ 1205 | "core-foundation-sys", 1206 | "libc", 1207 | ] 1208 | 1209 | [[package]] 1210 | name = "serde" 1211 | version = "1.0.196" 1212 | source = "registry+https://github.com/rust-lang/crates.io-index" 1213 | checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" 1214 | dependencies = [ 1215 | "serde_derive", 1216 | ] 1217 | 1218 | [[package]] 1219 | name = "serde_derive" 1220 | version = "1.0.196" 1221 | source = "registry+https://github.com/rust-lang/crates.io-index" 1222 | checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" 1223 | dependencies = [ 1224 | "proc-macro2", 1225 | "quote", 1226 | "syn 2.0.48", 1227 | ] 1228 | 1229 | [[package]] 1230 | name = "serde_json" 1231 | version = "1.0.113" 1232 | source = "registry+https://github.com/rust-lang/crates.io-index" 1233 | checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" 1234 | dependencies = [ 1235 | "itoa", 1236 | "ryu", 1237 | "serde", 1238 | ] 1239 | 1240 | [[package]] 1241 | name = "serde_urlencoded" 1242 | version = "0.7.1" 1243 | source = "registry+https://github.com/rust-lang/crates.io-index" 1244 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 1245 | dependencies = [ 1246 | "form_urlencoded", 1247 | "itoa", 1248 | "ryu", 1249 | "serde", 1250 | ] 1251 | 1252 | [[package]] 1253 | name = "simdutf8" 1254 | version = "0.1.4" 1255 | source = "registry+https://github.com/rust-lang/crates.io-index" 1256 | checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" 1257 | 1258 | [[package]] 1259 | name = "slab" 1260 | version = "0.4.9" 1261 | source = "registry+https://github.com/rust-lang/crates.io-index" 1262 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 1263 | dependencies = [ 1264 | "autocfg", 1265 | ] 1266 | 1267 | [[package]] 1268 | name = "smallvec" 1269 | version = "1.13.1" 1270 | source = "registry+https://github.com/rust-lang/crates.io-index" 1271 | checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" 1272 | 1273 | [[package]] 1274 | name = "socket2" 1275 | version = "0.5.5" 1276 | source = "registry+https://github.com/rust-lang/crates.io-index" 1277 | checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" 1278 | dependencies = [ 1279 | "libc", 1280 | "windows-sys 0.48.0", 1281 | ] 1282 | 1283 | [[package]] 1284 | name = "sonic-rs" 1285 | version = "0.3.2" 1286 | source = "registry+https://github.com/rust-lang/crates.io-index" 1287 | checksum = "920c855fdd9d255bc6e725af5b5dd79e6b4b8426c3ce886d7341ce00d99d553d" 1288 | dependencies = [ 1289 | "arrayref", 1290 | "bumpalo", 1291 | "bytes", 1292 | "cfg-if", 1293 | "faststr", 1294 | "itoa", 1295 | "page_size", 1296 | "parking_lot", 1297 | "ryu", 1298 | "serde", 1299 | "simdutf8", 1300 | "smallvec", 1301 | "thiserror", 1302 | ] 1303 | 1304 | [[package]] 1305 | name = "spin" 1306 | version = "0.9.8" 1307 | source = "registry+https://github.com/rust-lang/crates.io-index" 1308 | checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 1309 | 1310 | [[package]] 1311 | name = "strsim" 1312 | version = "0.10.0" 1313 | source = "registry+https://github.com/rust-lang/crates.io-index" 1314 | checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" 1315 | 1316 | [[package]] 1317 | name = "syn" 1318 | version = "1.0.109" 1319 | source = "registry+https://github.com/rust-lang/crates.io-index" 1320 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 1321 | dependencies = [ 1322 | "proc-macro2", 1323 | "quote", 1324 | "unicode-ident", 1325 | ] 1326 | 1327 | [[package]] 1328 | name = "syn" 1329 | version = "2.0.48" 1330 | source = "registry+https://github.com/rust-lang/crates.io-index" 1331 | checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" 1332 | dependencies = [ 1333 | "proc-macro2", 1334 | "quote", 1335 | "unicode-ident", 1336 | ] 1337 | 1338 | [[package]] 1339 | name = "sync_wrapper" 1340 | version = "0.1.2" 1341 | source = "registry+https://github.com/rust-lang/crates.io-index" 1342 | checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" 1343 | 1344 | [[package]] 1345 | name = "system-configuration" 1346 | version = "0.5.1" 1347 | source = "registry+https://github.com/rust-lang/crates.io-index" 1348 | checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" 1349 | dependencies = [ 1350 | "bitflags 1.3.2", 1351 | "core-foundation", 1352 | "system-configuration-sys", 1353 | ] 1354 | 1355 | [[package]] 1356 | name = "system-configuration-sys" 1357 | version = "0.5.0" 1358 | source = "registry+https://github.com/rust-lang/crates.io-index" 1359 | checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" 1360 | dependencies = [ 1361 | "core-foundation-sys", 1362 | "libc", 1363 | ] 1364 | 1365 | [[package]] 1366 | name = "tempfile" 1367 | version = "3.10.0" 1368 | source = "registry+https://github.com/rust-lang/crates.io-index" 1369 | checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" 1370 | dependencies = [ 1371 | "cfg-if", 1372 | "fastrand", 1373 | "rustix", 1374 | "windows-sys 0.52.0", 1375 | ] 1376 | 1377 | [[package]] 1378 | name = "thiserror" 1379 | version = "1.0.56" 1380 | source = "registry+https://github.com/rust-lang/crates.io-index" 1381 | checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" 1382 | dependencies = [ 1383 | "thiserror-impl", 1384 | ] 1385 | 1386 | [[package]] 1387 | name = "thiserror-impl" 1388 | version = "1.0.56" 1389 | source = "registry+https://github.com/rust-lang/crates.io-index" 1390 | checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" 1391 | dependencies = [ 1392 | "proc-macro2", 1393 | "quote", 1394 | "syn 2.0.48", 1395 | ] 1396 | 1397 | [[package]] 1398 | name = "tinyvec" 1399 | version = "1.6.0" 1400 | source = "registry+https://github.com/rust-lang/crates.io-index" 1401 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 1402 | dependencies = [ 1403 | "tinyvec_macros", 1404 | ] 1405 | 1406 | [[package]] 1407 | name = "tinyvec_macros" 1408 | version = "0.1.1" 1409 | source = "registry+https://github.com/rust-lang/crates.io-index" 1410 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 1411 | 1412 | [[package]] 1413 | name = "tokio" 1414 | version = "1.36.0" 1415 | source = "registry+https://github.com/rust-lang/crates.io-index" 1416 | checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" 1417 | dependencies = [ 1418 | "backtrace", 1419 | "bytes", 1420 | "libc", 1421 | "mio", 1422 | "num_cpus", 1423 | "pin-project-lite", 1424 | "socket2", 1425 | "tokio-macros", 1426 | "windows-sys 0.48.0", 1427 | ] 1428 | 1429 | [[package]] 1430 | name = "tokio-macros" 1431 | version = "2.2.0" 1432 | source = "registry+https://github.com/rust-lang/crates.io-index" 1433 | checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" 1434 | dependencies = [ 1435 | "proc-macro2", 1436 | "quote", 1437 | "syn 2.0.48", 1438 | ] 1439 | 1440 | [[package]] 1441 | name = "tokio-native-tls" 1442 | version = "0.3.1" 1443 | source = "registry+https://github.com/rust-lang/crates.io-index" 1444 | checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" 1445 | dependencies = [ 1446 | "native-tls", 1447 | "tokio", 1448 | ] 1449 | 1450 | [[package]] 1451 | name = "tokio-rustls" 1452 | version = "0.24.1" 1453 | source = "registry+https://github.com/rust-lang/crates.io-index" 1454 | checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" 1455 | dependencies = [ 1456 | "rustls", 1457 | "tokio", 1458 | ] 1459 | 1460 | [[package]] 1461 | name = "tokio-util" 1462 | version = "0.7.10" 1463 | source = "registry+https://github.com/rust-lang/crates.io-index" 1464 | checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" 1465 | dependencies = [ 1466 | "bytes", 1467 | "futures-core", 1468 | "futures-sink", 1469 | "pin-project-lite", 1470 | "tokio", 1471 | "tracing", 1472 | ] 1473 | 1474 | [[package]] 1475 | name = "tower-service" 1476 | version = "0.3.2" 1477 | source = "registry+https://github.com/rust-lang/crates.io-index" 1478 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 1479 | 1480 | [[package]] 1481 | name = "tracing" 1482 | version = "0.1.40" 1483 | source = "registry+https://github.com/rust-lang/crates.io-index" 1484 | checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 1485 | dependencies = [ 1486 | "pin-project-lite", 1487 | "tracing-core", 1488 | ] 1489 | 1490 | [[package]] 1491 | name = "tracing-core" 1492 | version = "0.1.32" 1493 | source = "registry+https://github.com/rust-lang/crates.io-index" 1494 | checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" 1495 | dependencies = [ 1496 | "once_cell", 1497 | ] 1498 | 1499 | [[package]] 1500 | name = "try-lock" 1501 | version = "0.2.5" 1502 | source = "registry+https://github.com/rust-lang/crates.io-index" 1503 | checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 1504 | 1505 | [[package]] 1506 | name = "unicode-bidi" 1507 | version = "0.3.15" 1508 | source = "registry+https://github.com/rust-lang/crates.io-index" 1509 | checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" 1510 | 1511 | [[package]] 1512 | name = "unicode-ident" 1513 | version = "1.0.12" 1514 | source = "registry+https://github.com/rust-lang/crates.io-index" 1515 | checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" 1516 | 1517 | [[package]] 1518 | name = "unicode-normalization" 1519 | version = "0.1.22" 1520 | source = "registry+https://github.com/rust-lang/crates.io-index" 1521 | checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 1522 | dependencies = [ 1523 | "tinyvec", 1524 | ] 1525 | 1526 | [[package]] 1527 | name = "untrusted" 1528 | version = "0.9.0" 1529 | source = "registry+https://github.com/rust-lang/crates.io-index" 1530 | checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 1531 | 1532 | [[package]] 1533 | name = "url" 1534 | version = "2.5.0" 1535 | source = "registry+https://github.com/rust-lang/crates.io-index" 1536 | checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" 1537 | dependencies = [ 1538 | "form_urlencoded", 1539 | "idna", 1540 | "percent-encoding", 1541 | "serde", 1542 | ] 1543 | 1544 | [[package]] 1545 | name = "utf8parse" 1546 | version = "0.2.1" 1547 | source = "registry+https://github.com/rust-lang/crates.io-index" 1548 | checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" 1549 | 1550 | [[package]] 1551 | name = "vcpkg" 1552 | version = "0.2.15" 1553 | source = "registry+https://github.com/rust-lang/crates.io-index" 1554 | checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 1555 | 1556 | [[package]] 1557 | name = "want" 1558 | version = "0.3.1" 1559 | source = "registry+https://github.com/rust-lang/crates.io-index" 1560 | checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 1561 | dependencies = [ 1562 | "try-lock", 1563 | ] 1564 | 1565 | [[package]] 1566 | name = "wasi" 1567 | version = "0.11.0+wasi-snapshot-preview1" 1568 | source = "registry+https://github.com/rust-lang/crates.io-index" 1569 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 1570 | 1571 | [[package]] 1572 | name = "wasm-bindgen" 1573 | version = "0.2.91" 1574 | source = "registry+https://github.com/rust-lang/crates.io-index" 1575 | checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" 1576 | dependencies = [ 1577 | "cfg-if", 1578 | "wasm-bindgen-macro", 1579 | ] 1580 | 1581 | [[package]] 1582 | name = "wasm-bindgen-backend" 1583 | version = "0.2.91" 1584 | source = "registry+https://github.com/rust-lang/crates.io-index" 1585 | checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" 1586 | dependencies = [ 1587 | "bumpalo", 1588 | "log", 1589 | "once_cell", 1590 | "proc-macro2", 1591 | "quote", 1592 | "syn 2.0.48", 1593 | "wasm-bindgen-shared", 1594 | ] 1595 | 1596 | [[package]] 1597 | name = "wasm-bindgen-futures" 1598 | version = "0.4.41" 1599 | source = "registry+https://github.com/rust-lang/crates.io-index" 1600 | checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97" 1601 | dependencies = [ 1602 | "cfg-if", 1603 | "js-sys", 1604 | "wasm-bindgen", 1605 | "web-sys", 1606 | ] 1607 | 1608 | [[package]] 1609 | name = "wasm-bindgen-macro" 1610 | version = "0.2.91" 1611 | source = "registry+https://github.com/rust-lang/crates.io-index" 1612 | checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" 1613 | dependencies = [ 1614 | "quote", 1615 | "wasm-bindgen-macro-support", 1616 | ] 1617 | 1618 | [[package]] 1619 | name = "wasm-bindgen-macro-support" 1620 | version = "0.2.91" 1621 | source = "registry+https://github.com/rust-lang/crates.io-index" 1622 | checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" 1623 | dependencies = [ 1624 | "proc-macro2", 1625 | "quote", 1626 | "syn 2.0.48", 1627 | "wasm-bindgen-backend", 1628 | "wasm-bindgen-shared", 1629 | ] 1630 | 1631 | [[package]] 1632 | name = "wasm-bindgen-shared" 1633 | version = "0.2.91" 1634 | source = "registry+https://github.com/rust-lang/crates.io-index" 1635 | checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" 1636 | 1637 | [[package]] 1638 | name = "wasm-streams" 1639 | version = "0.4.0" 1640 | source = "registry+https://github.com/rust-lang/crates.io-index" 1641 | checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" 1642 | dependencies = [ 1643 | "futures-util", 1644 | "js-sys", 1645 | "wasm-bindgen", 1646 | "wasm-bindgen-futures", 1647 | "web-sys", 1648 | ] 1649 | 1650 | [[package]] 1651 | name = "web-sys" 1652 | version = "0.3.68" 1653 | source = "registry+https://github.com/rust-lang/crates.io-index" 1654 | checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" 1655 | dependencies = [ 1656 | "js-sys", 1657 | "wasm-bindgen", 1658 | ] 1659 | 1660 | [[package]] 1661 | name = "webpki-roots" 1662 | version = "0.25.4" 1663 | source = "registry+https://github.com/rust-lang/crates.io-index" 1664 | checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" 1665 | 1666 | [[package]] 1667 | name = "winapi" 1668 | version = "0.3.9" 1669 | source = "registry+https://github.com/rust-lang/crates.io-index" 1670 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 1671 | dependencies = [ 1672 | "winapi-i686-pc-windows-gnu", 1673 | "winapi-x86_64-pc-windows-gnu", 1674 | ] 1675 | 1676 | [[package]] 1677 | name = "winapi-i686-pc-windows-gnu" 1678 | version = "0.4.0" 1679 | source = "registry+https://github.com/rust-lang/crates.io-index" 1680 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 1681 | 1682 | [[package]] 1683 | name = "winapi-x86_64-pc-windows-gnu" 1684 | version = "0.4.0" 1685 | source = "registry+https://github.com/rust-lang/crates.io-index" 1686 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 1687 | 1688 | [[package]] 1689 | name = "windows-sys" 1690 | version = "0.48.0" 1691 | source = "registry+https://github.com/rust-lang/crates.io-index" 1692 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 1693 | dependencies = [ 1694 | "windows-targets 0.48.5", 1695 | ] 1696 | 1697 | [[package]] 1698 | name = "windows-sys" 1699 | version = "0.52.0" 1700 | source = "registry+https://github.com/rust-lang/crates.io-index" 1701 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 1702 | dependencies = [ 1703 | "windows-targets 0.52.0", 1704 | ] 1705 | 1706 | [[package]] 1707 | name = "windows-targets" 1708 | version = "0.48.5" 1709 | source = "registry+https://github.com/rust-lang/crates.io-index" 1710 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 1711 | dependencies = [ 1712 | "windows_aarch64_gnullvm 0.48.5", 1713 | "windows_aarch64_msvc 0.48.5", 1714 | "windows_i686_gnu 0.48.5", 1715 | "windows_i686_msvc 0.48.5", 1716 | "windows_x86_64_gnu 0.48.5", 1717 | "windows_x86_64_gnullvm 0.48.5", 1718 | "windows_x86_64_msvc 0.48.5", 1719 | ] 1720 | 1721 | [[package]] 1722 | name = "windows-targets" 1723 | version = "0.52.0" 1724 | source = "registry+https://github.com/rust-lang/crates.io-index" 1725 | checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" 1726 | dependencies = [ 1727 | "windows_aarch64_gnullvm 0.52.0", 1728 | "windows_aarch64_msvc 0.52.0", 1729 | "windows_i686_gnu 0.52.0", 1730 | "windows_i686_msvc 0.52.0", 1731 | "windows_x86_64_gnu 0.52.0", 1732 | "windows_x86_64_gnullvm 0.52.0", 1733 | "windows_x86_64_msvc 0.52.0", 1734 | ] 1735 | 1736 | [[package]] 1737 | name = "windows_aarch64_gnullvm" 1738 | version = "0.48.5" 1739 | source = "registry+https://github.com/rust-lang/crates.io-index" 1740 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 1741 | 1742 | [[package]] 1743 | name = "windows_aarch64_gnullvm" 1744 | version = "0.52.0" 1745 | source = "registry+https://github.com/rust-lang/crates.io-index" 1746 | checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" 1747 | 1748 | [[package]] 1749 | name = "windows_aarch64_msvc" 1750 | version = "0.48.5" 1751 | source = "registry+https://github.com/rust-lang/crates.io-index" 1752 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 1753 | 1754 | [[package]] 1755 | name = "windows_aarch64_msvc" 1756 | version = "0.52.0" 1757 | source = "registry+https://github.com/rust-lang/crates.io-index" 1758 | checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" 1759 | 1760 | [[package]] 1761 | name = "windows_i686_gnu" 1762 | version = "0.48.5" 1763 | source = "registry+https://github.com/rust-lang/crates.io-index" 1764 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 1765 | 1766 | [[package]] 1767 | name = "windows_i686_gnu" 1768 | version = "0.52.0" 1769 | source = "registry+https://github.com/rust-lang/crates.io-index" 1770 | checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" 1771 | 1772 | [[package]] 1773 | name = "windows_i686_msvc" 1774 | version = "0.48.5" 1775 | source = "registry+https://github.com/rust-lang/crates.io-index" 1776 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 1777 | 1778 | [[package]] 1779 | name = "windows_i686_msvc" 1780 | version = "0.52.0" 1781 | source = "registry+https://github.com/rust-lang/crates.io-index" 1782 | checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" 1783 | 1784 | [[package]] 1785 | name = "windows_x86_64_gnu" 1786 | version = "0.48.5" 1787 | source = "registry+https://github.com/rust-lang/crates.io-index" 1788 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 1789 | 1790 | [[package]] 1791 | name = "windows_x86_64_gnu" 1792 | version = "0.52.0" 1793 | source = "registry+https://github.com/rust-lang/crates.io-index" 1794 | checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" 1795 | 1796 | [[package]] 1797 | name = "windows_x86_64_gnullvm" 1798 | version = "0.48.5" 1799 | source = "registry+https://github.com/rust-lang/crates.io-index" 1800 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 1801 | 1802 | [[package]] 1803 | name = "windows_x86_64_gnullvm" 1804 | version = "0.52.0" 1805 | source = "registry+https://github.com/rust-lang/crates.io-index" 1806 | checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" 1807 | 1808 | [[package]] 1809 | name = "windows_x86_64_msvc" 1810 | version = "0.48.5" 1811 | source = "registry+https://github.com/rust-lang/crates.io-index" 1812 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 1813 | 1814 | [[package]] 1815 | name = "windows_x86_64_msvc" 1816 | version = "0.52.0" 1817 | source = "registry+https://github.com/rust-lang/crates.io-index" 1818 | checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" 1819 | 1820 | [[package]] 1821 | name = "winreg" 1822 | version = "0.50.0" 1823 | source = "registry+https://github.com/rust-lang/crates.io-index" 1824 | checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" 1825 | dependencies = [ 1826 | "cfg-if", 1827 | "windows-sys 0.48.0", 1828 | ] 1829 | --------------------------------------------------------------------------------