├── Cargo.toml ├── README.md ├── src ├── utils.rs └── main.rs └── Cargo.lock /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "fast-llm" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [dependencies] 7 | accelerate-src = { version = "0.3.2", optional = true } 8 | anyhow = "1.0.79" 9 | candle = { git = "https://github.com/huggingface/candle", package = "candle-core" } 10 | candle-nn = { git = "https://github.com/huggingface/candle" } 11 | candle-transformers = { git = "https://github.com/huggingface/candle" } 12 | clap = { version = "4.2.4", features = ["derive"] } 13 | hf-hub = { version = "0.3.2", features = ["tokio"] } 14 | intel-mkl-src = { version = "0.8.1", optional = true } 15 | safetensors = "0.4.2" 16 | serde = { version = "1.0.196", features = ["derive"] } 17 | serde_json = "1.0.113" 18 | tokenizers = { version = "0.15.0", default-features = false, features=["onig"] } 19 | tracing = "0.1.40" 20 | tracing-chrome = "0.7.1" 21 | tracing-subscriber = "0.3.18" 22 | 23 | [features] 24 | default = [] 25 | accelerate = ["dep:accelerate-src", "candle/accelerate", "candle-nn/accelerate", "candle-transformers/accelerate"] 26 | mkl = ["dep:intel-mkl-src", "candle/mkl", "candle-nn/mkl", "candle-transformers/mkl"] 27 | metal = ["candle/metal", "candle-nn/metal"] 28 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Fast-LLM powered by Candle 🦀 2 | 3 | Yo! I really have no clue what I'm doing here, but here's me learning to rust by making [candle's](https://github.com/huggingface/candle) quantised llm examples into its own package. 4 | 5 | None of the work here is original and all attributions should go to [Laurent](https://github.com/LaurentMazare) & [Nicolas](https://github.com/Narsil) who made this gem of a library and with ready-to-use examples. 6 | 7 | ## What does it do? 8 | 9 | It allows you to run popular GGUF checkpoints on the Hugging Face Hub via Candle. Works on Macs with Metal or on CPU (although CPU is much much slower). 10 | 11 | This is an alpha release and I expect quite a lot of this to change in the short term. 12 | 13 | ## How do you run this bad boi? 14 | 15 | Step 1: `git clone https://github.com/Vaibhavs10/fast-llm.rs/` 16 | 17 | Step 2: `cd fast-llm.rs` 18 | 19 | Step 3: `cargo run --features metal --release -- --which 7b-mistral-instruct-v0.2 --prompt "What is the meaning of life according to a dog?" --sample-len 100` 20 | 21 | Note: you can remove the `--features metal` to run inference on CPU. 22 | 23 | Check [how to install Rust](#installing-rust) and [how to use the CLI](#how-to-use-the-cli) if you need to. 24 | 25 | ## Which models are supported? 26 | 27 | 1. Mistral 7B 28 | 2. Llama 7B/ 13B/ 34B 29 | 3. CodeLlama 7B/ 13B/ 34B 30 | 4. Mixtral 8x7B 31 | 32 | You can also bring your own GGUF checkpoint by passing a `--model`. 33 | 34 | ## More details 35 | 36 | ### Installing Rust 37 | 38 | [Just follow the official instructions](https://www.rust-lang.org/tools/install). 39 | 40 | ### How to use the CLI 41 | 42 | When you use `cargo run`, command-line arguments go to `cargo`. Use `--` to send them to the `fast-llm` binary. The following will compile the code in release mode (a `cargo` option), and then list all the options `fast-llm` supports. 43 | 44 | ```bash 45 | cargo run --release -- --help 46 | ``` 47 | 48 | By default, `fast-llm` sends your prompt to the LLM, prints the response and quits. You can use _interactive_ or _chat_ mode too: 49 | 50 | * `cargo run --release -- --prompt interactive`. Runs in interactive mode. You can ask multiple independent queries, previous context is not retained. 51 | 52 | * `cargo run --release -- --prompt chat`. Runs in chat mode. Carries conversation history, just like when using ChatGPT or [HuggingChat](https://huggingface.co/chat/). In this mode you'll get best results with one of the _Instruct_ versions of the models, Mistral, Zephyr, or OpenChat, as all these models are designed for chat. 53 | -------------------------------------------------------------------------------- /src/utils.rs: -------------------------------------------------------------------------------- 1 | use candle::utils::{cuda_is_available, metal_is_available}; 2 | use candle::{Device, Result}; 3 | 4 | pub fn device(cpu: bool) -> Result { 5 | if cpu { 6 | Ok(Device::Cpu) 7 | } else if cuda_is_available() { 8 | Ok(Device::new_cuda(0)?) 9 | } else if metal_is_available() { 10 | Ok(Device::new_metal(0)?) 11 | } else { 12 | #[cfg(all(target_os = "macos", target_arch = "aarch64"))] 13 | { 14 | println!( 15 | "Running on CPU, to run on GPU(metal), build this example with `--features metal`" 16 | ); 17 | } 18 | #[cfg(not(all(target_os = "macos", target_arch = "aarch64")))] 19 | { 20 | println!("Running on CPU, to run on GPU, build this example with `--features cuda`"); 21 | } 22 | Ok(Device::Cpu) 23 | } 24 | } 25 | 26 | /// This is a wrapper around a tokenizer to ensure that tokens can be returned to the user in a 27 | /// streaming way rather than having to wait for the full decoding. 28 | pub struct TokenOutputStream { 29 | tokenizer: tokenizers::Tokenizer, 30 | tokens: Vec, 31 | prev_index: usize, 32 | current_index: usize, 33 | } 34 | 35 | impl TokenOutputStream { 36 | pub fn new(tokenizer: tokenizers::Tokenizer) -> Self { 37 | Self { 38 | tokenizer, 39 | tokens: Vec::new(), 40 | prev_index: 0, 41 | current_index: 0, 42 | } 43 | } 44 | 45 | fn decode(&self, tokens: &[u32]) -> Result { 46 | match self.tokenizer.decode(tokens, true) { 47 | Ok(str) => Ok(str), 48 | Err(err) => candle::bail!("cannot decode: {err}"), 49 | } 50 | } 51 | 52 | // https://github.com/huggingface/text-generation-inference/blob/5ba53d44a18983a4de32d122f4cb46f4a17d9ef6/server/text_generation_server/models/model.py#L68 53 | pub fn next_token(&mut self, token: u32) -> Result> { 54 | let prev_text = if self.tokens.is_empty() { 55 | String::new() 56 | } else { 57 | let tokens = &self.tokens[self.prev_index..self.current_index]; 58 | self.decode(tokens)? 59 | }; 60 | self.tokens.push(token); 61 | let text = self.decode(&self.tokens[self.prev_index..])?; 62 | if text.len() > prev_text.len() && text.chars().last().unwrap().is_alphabetic() { 63 | let text = text.split_at(prev_text.len()); 64 | self.prev_index = self.current_index; 65 | self.current_index = self.tokens.len(); 66 | Ok(Some(text.1.to_string())) 67 | } else { 68 | Ok(None) 69 | } 70 | } 71 | 72 | pub fn decode_rest(&self) -> Result> { 73 | let prev_text = if self.tokens.is_empty() { 74 | String::new() 75 | } else { 76 | let tokens = &self.tokens[self.prev_index..self.current_index]; 77 | self.decode(tokens)? 78 | }; 79 | let text = self.decode(&self.tokens[self.prev_index..])?; 80 | if text.len() > prev_text.len() { 81 | let text = text.split_at(prev_text.len()); 82 | Ok(Some(text.1.to_string())) 83 | } else { 84 | Ok(None) 85 | } 86 | } 87 | 88 | pub fn tokenizer(&self) -> &tokenizers::Tokenizer { 89 | &self.tokenizer 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | #[cfg(feature = "mkl")] 2 | extern crate intel_mkl_src; 3 | 4 | #[cfg(feature = "accelerate")] 5 | extern crate accelerate_src; 6 | 7 | use clap::{Parser, ValueEnum}; 8 | use std::io::Write; 9 | use tokenizers::Tokenizer; 10 | 11 | use candle::quantized::{ggml_file, gguf_file}; 12 | use candle::Tensor; 13 | use candle_transformers::generation::LogitsProcessor; 14 | 15 | use candle_transformers::models::quantized_llama as model; 16 | use model::ModelWeights; 17 | 18 | mod utils; 19 | use crate::utils::{device, TokenOutputStream}; 20 | 21 | const DEFAULT_PROMPT: &str = "My favorite theorem is "; 22 | 23 | #[derive(Debug)] 24 | enum Prompt { 25 | Interactive, 26 | Chat, 27 | One(String), 28 | } 29 | 30 | #[derive(Clone, Debug, Copy, PartialEq, Eq, ValueEnum)] 31 | enum Which { 32 | #[value(name = "7b")] 33 | L7b, 34 | #[value(name = "13b")] 35 | L13b, 36 | #[value(name = "70b")] 37 | L70b, 38 | #[value(name = "7b-chat")] 39 | L7bChat, 40 | #[value(name = "13b-chat")] 41 | L13bChat, 42 | #[value(name = "70b-chat")] 43 | L70bChat, 44 | #[value(name = "7b-code")] 45 | L7bCode, 46 | #[value(name = "13b-code")] 47 | L13bCode, 48 | #[value(name = "32b-code")] 49 | L34bCode, 50 | #[value(name = "7b-leo")] 51 | Leo7b, 52 | #[value(name = "13b-leo")] 53 | Leo13b, 54 | #[value(name = "7b-mistral")] 55 | Mistral7b, 56 | #[value(name = "7b-mistral-instruct")] 57 | Mistral7bInstruct, 58 | #[value(name = "7b-mistral-instruct-v0.2")] 59 | Mistral7bInstructV02, 60 | #[value(name = "7b-zephyr-a")] 61 | Zephyr7bAlpha, 62 | #[value(name = "7b-zephyr-b")] 63 | Zephyr7bBeta, 64 | #[value(name = "7b-open-chat-3.5")] 65 | OpenChat35, 66 | #[value(name = "7b-starling-a")] 67 | Starling7bAlpha, 68 | #[value(name = "mixtral")] 69 | Mixtral, 70 | #[value(name = "mixtral-instruct")] 71 | MixtralInstruct, 72 | } 73 | 74 | impl Which { 75 | fn is_mistral(&self) -> bool { 76 | match self { 77 | Self::L7b 78 | | Self::L13b 79 | | Self::L70b 80 | | Self::L7bChat 81 | | Self::L13bChat 82 | | Self::L70bChat 83 | | Self::L7bCode 84 | | Self::L13bCode 85 | | Self::L34bCode 86 | | Self::Leo7b 87 | | Self::Leo13b => false, 88 | // Zephyr and OpenChat are fine tuned versions of mistral and should be treated in the 89 | // same way. Starling is a fine tuned version of OpenChat. 90 | Self::OpenChat35 91 | | Self::Starling7bAlpha 92 | | Self::Zephyr7bAlpha 93 | | Self::Zephyr7bBeta 94 | | Self::Mixtral 95 | | Self::MixtralInstruct 96 | | Self::Mistral7b 97 | | Self::Mistral7bInstruct 98 | | Self::Mistral7bInstructV02 => true, 99 | } 100 | } 101 | 102 | fn is_zephyr(&self) -> bool { 103 | match self { 104 | Self::L7b 105 | | Self::L13b 106 | | Self::L70b 107 | | Self::L7bChat 108 | | Self::L13bChat 109 | | Self::L70bChat 110 | | Self::L7bCode 111 | | Self::L13bCode 112 | | Self::L34bCode 113 | | Self::Leo7b 114 | | Self::Leo13b 115 | | Self::Mixtral 116 | | Self::MixtralInstruct 117 | | Self::Mistral7b 118 | | Self::Mistral7bInstruct 119 | | Self::Mistral7bInstructV02 120 | | Self::OpenChat35 121 | | Self::Starling7bAlpha => false, 122 | Self::Zephyr7bAlpha | Self::Zephyr7bBeta => true, 123 | } 124 | } 125 | 126 | fn is_open_chat(&self) -> bool { 127 | match self { 128 | Self::L7b 129 | | Self::L13b 130 | | Self::L70b 131 | | Self::L7bChat 132 | | Self::L13bChat 133 | | Self::L70bChat 134 | | Self::L7bCode 135 | | Self::L13bCode 136 | | Self::L34bCode 137 | | Self::Leo7b 138 | | Self::Leo13b 139 | | Self::Mixtral 140 | | Self::MixtralInstruct 141 | | Self::Mistral7b 142 | | Self::Mistral7bInstruct 143 | | Self::Mistral7bInstructV02 144 | | Self::Zephyr7bAlpha 145 | | Self::Zephyr7bBeta => false, 146 | Self::OpenChat35 | Self::Starling7bAlpha => true, 147 | } 148 | } 149 | 150 | fn tokenizer_repo(&self) -> &'static str { 151 | match self { 152 | Which::L7b 153 | | Which::L13b 154 | | Which::L70b 155 | | Which::L7bChat 156 | | Which::L13bChat 157 | | Which::L70bChat 158 | | Which::L7bCode 159 | | Which::L13bCode 160 | | Which::L34bCode => "hf-internal-testing/llama-tokenizer", 161 | Which::Leo7b => "LeoLM/leo-hessianai-7b", 162 | Which::Leo13b => "LeoLM/leo-hessianai-13b", 163 | Which::Mixtral => "mistralai/Mixtral-8x7B-v0.1", 164 | Which::MixtralInstruct => "mistralai/Mixtral-8x7B-Instruct-v0.1", 165 | Which::Mistral7b 166 | | Which::Mistral7bInstruct 167 | | Which::Mistral7bInstructV02 168 | | Which::Zephyr7bAlpha 169 | | Which::Zephyr7bBeta => "mistralai/Mistral-7B-v0.1", 170 | Which::OpenChat35 => "openchat/openchat_3.5", 171 | Which::Starling7bAlpha => "berkeley-nest/Starling-LM-7B-alpha", 172 | } 173 | } 174 | } 175 | 176 | #[derive(Parser, Debug)] 177 | #[command(author, version, about, long_about = None)] 178 | struct Args { 179 | /// The model to use, will be downloaded from the Hugging Face Hub and cached. 180 | #[arg(long, default_value = "7b-mistral-instruct-v0.2")] 181 | which: Which, 182 | 183 | /// Local GGML/GGUF file to load, typically a .bin/.gguf file. 184 | /// To use one of the predefined models, use the --which option instead. 185 | #[arg(long)] 186 | model: Option, 187 | 188 | /// The initial prompt, use 'interactive' for entering multiple prompts in an interactive way 189 | /// and 'chat' for an interactive model where history of previous prompts and generated tokens 190 | /// is preserved. 191 | #[arg(long)] 192 | prompt: Option, 193 | 194 | /// The length of the sample to generate (in tokens). 195 | #[arg(short = 'n', long, default_value_t = 100)] 196 | sample_len: usize, 197 | 198 | /// Custom tokenizer config in json format, if you need it. 199 | #[arg(long)] 200 | tokenizer: Option, 201 | 202 | /// The temperature used to generate samples, use 0 for greedy sampling. 203 | #[arg(long, default_value_t = 0.8)] 204 | temperature: f64, 205 | 206 | /// Nucleus sampling probability cutoff. 207 | #[arg(long)] 208 | top_p: Option, 209 | 210 | /// The seed to use when generating random samples. 211 | #[arg(long, default_value_t = 299792458)] 212 | seed: u64, 213 | 214 | /// Display the token for the specified prompt. 215 | #[arg(long)] 216 | verbose_prompt: bool, 217 | 218 | /// Penalty to be applied for repeating tokens, 1. means no penalty. 219 | #[arg(long, default_value_t = 1.1)] 220 | repeat_penalty: f32, 221 | 222 | /// The context size to consider for the repeat penalty. 223 | #[arg(long, default_value_t = 64)] 224 | repeat_last_n: usize, 225 | 226 | /// Enable tracing (generates a trace-timestamp.json file). 227 | #[arg(long)] 228 | tracing: bool, 229 | 230 | /// Group-Query Attention, use 8 for the 70B version of LLaMAv2. 231 | #[arg(long)] 232 | gqa: Option, 233 | } 234 | 235 | impl Args { 236 | fn tokenizer(&self) -> anyhow::Result { 237 | let tokenizer_path = match &self.tokenizer { 238 | Some(config) => std::path::PathBuf::from(config), 239 | None => { 240 | let api = hf_hub::api::sync::Api::new()?; 241 | let repo = self.which.tokenizer_repo(); 242 | let api = api.model(repo.to_string()); 243 | api.get("tokenizer.json")? 244 | } 245 | }; 246 | Tokenizer::from_file(tokenizer_path).map_err(anyhow::Error::msg) 247 | } 248 | 249 | fn model(&self) -> anyhow::Result { 250 | let model_path = match &self.model { 251 | Some(config) => std::path::PathBuf::from(config), 252 | None => { 253 | let (repo, filename) = match self.which { 254 | Which::L7b => ("TheBloke/Llama-2-7B-GGML", "llama-2-7b.ggmlv3.q4_0.bin"), 255 | Which::L13b => ("TheBloke/Llama-2-13B-GGML", "llama-2-13b.ggmlv3.q4_0.bin"), 256 | Which::L70b => ("TheBloke/Llama-2-70B-GGML", "llama-2-70b.ggmlv3.q4_0.bin"), 257 | Which::L7bChat => ( 258 | "TheBloke/Llama-2-7B-Chat-GGML", 259 | "llama-2-7b-chat.ggmlv3.q4_0.bin", 260 | ), 261 | Which::L13bChat => ( 262 | "TheBloke/Llama-2-13B-Chat-GGML", 263 | "llama-2-13b-chat.ggmlv3.q4_0.bin", 264 | ), 265 | Which::L70bChat => ( 266 | "TheBloke/Llama-2-70B-Chat-GGML", 267 | "llama-2-70b-chat.ggmlv3.q4_0.bin", 268 | ), 269 | Which::L7bCode => ("TheBloke/CodeLlama-7B-GGUF", "codellama-7b.Q8_0.gguf"), 270 | Which::L13bCode => ("TheBloke/CodeLlama-13B-GGUF", "codellama-13b.Q8_0.gguf"), 271 | Which::L34bCode => ("TheBloke/CodeLlama-34B-GGUF", "codellama-34b.Q8_0.gguf"), 272 | Which::Leo7b => ( 273 | "TheBloke/leo-hessianai-7B-GGUF", 274 | "leo-hessianai-7b.Q4_K_M.gguf", 275 | ), 276 | Which::Leo13b => ( 277 | "TheBloke/leo-hessianai-13B-GGUF", 278 | "leo-hessianai-13b.Q4_K_M.gguf", 279 | ), 280 | Which::Mixtral => ( 281 | "TheBloke/Mixtral-8x7B-v0.1-GGUF", 282 | "mixtral-8x7b-v0.1.Q4_K_M.gguf", 283 | ), 284 | Which::MixtralInstruct => ( 285 | "TheBloke/Mixtral-8x7B-Instruct-v0.1-GGUF", 286 | "mixtral-8x7b-instruct-v0.1.Q4_K_M.gguf", 287 | ), 288 | Which::Mistral7b => ( 289 | "TheBloke/Mistral-7B-v0.1-GGUF", 290 | "mistral-7b-v0.1.Q4_K_S.gguf", 291 | ), 292 | Which::Mistral7bInstruct => ( 293 | "TheBloke/Mistral-7B-Instruct-v0.1-GGUF", 294 | "mistral-7b-instruct-v0.1.Q4_K_S.gguf", 295 | ), 296 | Which::Mistral7bInstructV02 => ( 297 | "TheBloke/Mistral-7B-Instruct-v0.2-GGUF", 298 | "mistral-7b-instruct-v0.2.Q4_K_S.gguf", 299 | ), 300 | Which::Zephyr7bAlpha => ( 301 | "TheBloke/zephyr-7B-alpha-GGUF", 302 | "zephyr-7b-alpha.Q4_K_M.gguf", 303 | ), 304 | Which::Zephyr7bBeta => { 305 | ("TheBloke/zephyr-7B-beta-GGUF", "zephyr-7b-beta.Q4_K_M.gguf") 306 | } 307 | Which::OpenChat35 => ("TheBloke/openchat_3.5-GGUF", "openchat_3.5.Q4_K_M.gguf"), 308 | Which::Starling7bAlpha => ( 309 | "TheBloke/Starling-LM-7B-alpha-GGUF", 310 | "starling-lm-7b-alpha.Q4_K_M.gguf", 311 | ), 312 | }; 313 | let api = hf_hub::api::sync::Api::new()?; 314 | let api = api.model(repo.to_string()); 315 | api.get(filename)? 316 | } 317 | }; 318 | Ok(model_path) 319 | } 320 | } 321 | 322 | fn format_size(size_in_bytes: usize) -> String { 323 | if size_in_bytes < 1_000 { 324 | format!("{}B", size_in_bytes) 325 | } else if size_in_bytes < 1_000_000 { 326 | format!("{:.2}KB", size_in_bytes as f64 / 1e3) 327 | } else if size_in_bytes < 1_000_000_000 { 328 | format!("{:.2}MB", size_in_bytes as f64 / 1e6) 329 | } else { 330 | format!("{:.2}GB", size_in_bytes as f64 / 1e9) 331 | } 332 | } 333 | 334 | fn main() -> anyhow::Result<()> { 335 | use tracing_chrome::ChromeLayerBuilder; 336 | use tracing_subscriber::prelude::*; 337 | 338 | let args = Args::parse(); 339 | let temperature = if args.temperature == 0. { 340 | None 341 | } else { 342 | Some(args.temperature) 343 | }; 344 | let _guard = if args.tracing { 345 | let (chrome_layer, guard) = ChromeLayerBuilder::new().build(); 346 | tracing_subscriber::registry().with(chrome_layer).init(); 347 | Some(guard) 348 | } else { 349 | None 350 | }; 351 | 352 | println!( 353 | "avx: {}, neon: {}, simd128: {}, f16c: {}", 354 | candle::utils::with_avx(), 355 | candle::utils::with_neon(), 356 | candle::utils::with_simd128(), 357 | candle::utils::with_f16c() 358 | ); 359 | println!( 360 | "temp: {:.2} repeat-penalty: {:.2} repeat-last-n: {}", 361 | args.temperature, args.repeat_penalty, args.repeat_last_n 362 | ); 363 | 364 | let model_path = args.model()?; 365 | let mut file = std::fs::File::open(&model_path)?; 366 | let start = std::time::Instant::now(); 367 | let device = device(false)?; 368 | 369 | let mut model = match model_path.extension().and_then(|v| v.to_str()) { 370 | Some("gguf") => { 371 | let model = gguf_file::Content::read(&mut file).map_err(|e| e.with_path(model_path))?; 372 | let mut total_size_in_bytes = 0; 373 | for (_, tensor) in model.tensor_infos.iter() { 374 | let elem_count = tensor.shape.elem_count(); 375 | total_size_in_bytes += 376 | elem_count * tensor.ggml_dtype.type_size() / tensor.ggml_dtype.block_size(); 377 | } 378 | println!( 379 | "loaded {:?} tensors ({}) in {:.2}s", 380 | model.tensor_infos.len(), 381 | &format_size(total_size_in_bytes), 382 | start.elapsed().as_secs_f32(), 383 | ); 384 | ModelWeights::from_gguf(model, &mut file, &device)? 385 | } 386 | Some("ggml" | "bin") | Some(_) | None => { 387 | let model = ggml_file::Content::read(&mut file, &device) 388 | .map_err(|e| e.with_path(model_path))?; 389 | let mut total_size_in_bytes = 0; 390 | for (_, tensor) in model.tensors.iter() { 391 | let elem_count = tensor.shape().elem_count(); 392 | total_size_in_bytes += 393 | elem_count * tensor.dtype().type_size() / tensor.dtype().block_size(); 394 | } 395 | println!( 396 | "loaded {:?} tensors ({}) in {:.2}s", 397 | model.tensors.len(), 398 | &format_size(total_size_in_bytes), 399 | start.elapsed().as_secs_f32(), 400 | ); 401 | println!("params: {:?}", model.hparams); 402 | let default_gqa = match args.which { 403 | Which::L7b 404 | | Which::L13b 405 | | Which::L7bChat 406 | | Which::L13bChat 407 | | Which::L7bCode 408 | | Which::L13bCode 409 | | Which::L34bCode 410 | | Which::Leo7b 411 | | Which::Leo13b => 1, 412 | Which::Mixtral 413 | | Which::MixtralInstruct 414 | | Which::Mistral7b 415 | | Which::Mistral7bInstruct 416 | | Which::Mistral7bInstructV02 417 | | Which::Zephyr7bAlpha 418 | | Which::Zephyr7bBeta 419 | | Which::L70b 420 | | Which::L70bChat 421 | | Which::OpenChat35 422 | | Which::Starling7bAlpha => 8, 423 | }; 424 | ModelWeights::from_ggml(model, args.gqa.unwrap_or(default_gqa))? 425 | } 426 | }; 427 | println!("model built"); 428 | 429 | let tokenizer = args.tokenizer()?; 430 | let mut tos = TokenOutputStream::new(tokenizer); 431 | let prompt = match args.prompt.as_deref() { 432 | Some("chat") => Prompt::Chat, 433 | Some("interactive") => Prompt::Interactive, 434 | Some(s) => Prompt::One(s.to_string()), 435 | None => Prompt::One(DEFAULT_PROMPT.to_string()), 436 | }; 437 | 438 | let mut pre_prompt_tokens = vec![]; 439 | for prompt_index in 0.. { 440 | let prompt_str = match &prompt { 441 | Prompt::One(prompt) => prompt.clone(), 442 | Prompt::Interactive | Prompt::Chat => { 443 | let is_interactive = matches!(prompt, Prompt::Interactive); 444 | print!("> "); 445 | std::io::stdout().flush()?; 446 | let mut prompt = String::new(); 447 | std::io::stdin().read_line(&mut prompt)?; 448 | if prompt.ends_with('\n') { 449 | prompt.pop(); 450 | if prompt.ends_with('\r') { 451 | prompt.pop(); 452 | } 453 | } 454 | if args.which.is_open_chat() { 455 | format!("GPT4 Correct User: {prompt}<|end_of_turn|>GPT4 Correct Assistant:") 456 | } else if args.which.is_zephyr() { 457 | if prompt_index == 0 || is_interactive { 458 | format!("<|system|>\n\n<|user|>\n{prompt}\n<|assistant|>",) 459 | } else { 460 | format!("<|user|>\n{prompt}\n<|assistant|>") 461 | } 462 | } else if args.which.is_mistral() { 463 | format!("[INST] {prompt} [/INST]") 464 | } else { 465 | prompt 466 | } 467 | } 468 | }; 469 | print!("{}", &prompt_str); 470 | let tokens = tos 471 | .tokenizer() 472 | .encode(prompt_str, true) 473 | .map_err(anyhow::Error::msg)?; 474 | if args.verbose_prompt { 475 | for (token, id) in tokens.get_tokens().iter().zip(tokens.get_ids().iter()) { 476 | let token = token.replace('▁', " ").replace("<0x0A>", "\n"); 477 | println!("{id:7} -> '{token}'"); 478 | } 479 | } 480 | 481 | let prompt_tokens = [&pre_prompt_tokens, tokens.get_ids()].concat(); 482 | let to_sample = args.sample_len.saturating_sub(1); 483 | let prompt_tokens = if prompt_tokens.len() + to_sample > model::MAX_SEQ_LEN - 10 { 484 | let to_remove = prompt_tokens.len() + to_sample + 10 - model::MAX_SEQ_LEN; 485 | prompt_tokens[prompt_tokens.len().saturating_sub(to_remove)..].to_vec() 486 | } else { 487 | prompt_tokens 488 | }; 489 | let mut all_tokens = vec![]; 490 | let mut logits_processor = LogitsProcessor::new(args.seed, temperature, args.top_p); 491 | 492 | let start_prompt_processing = std::time::Instant::now(); 493 | let mut next_token = { 494 | let input = Tensor::new(prompt_tokens.as_slice(), &device)?.unsqueeze(0)?; 495 | let logits = model.forward(&input, 0)?; 496 | let logits = logits.squeeze(0)?; 497 | logits_processor.sample(&logits)? 498 | }; 499 | let prompt_dt = start_prompt_processing.elapsed(); 500 | all_tokens.push(next_token); 501 | if let Some(t) = tos.next_token(next_token)? { 502 | print!("{t}"); 503 | std::io::stdout().flush()?; 504 | } 505 | 506 | let eos_token = if args.which.is_open_chat() { 507 | "<|end_of_turn|>" 508 | } else { 509 | "" 510 | }; 511 | let eos_token = *tos.tokenizer().get_vocab(true).get(eos_token).unwrap(); 512 | let start_post_prompt = std::time::Instant::now(); 513 | let mut sampled = 0; 514 | for index in 0..to_sample { 515 | let input = Tensor::new(&[next_token], &device)?.unsqueeze(0)?; 516 | let logits = model.forward(&input, prompt_tokens.len() + index)?; 517 | let logits = logits.squeeze(0)?; 518 | let logits = if args.repeat_penalty == 1. { 519 | logits 520 | } else { 521 | let start_at = all_tokens.len().saturating_sub(args.repeat_last_n); 522 | candle_transformers::utils::apply_repeat_penalty( 523 | &logits, 524 | args.repeat_penalty, 525 | &all_tokens[start_at..], 526 | )? 527 | }; 528 | next_token = logits_processor.sample(&logits)?; 529 | all_tokens.push(next_token); 530 | if let Some(t) = tos.next_token(next_token)? { 531 | print!("{t}"); 532 | std::io::stdout().flush()?; 533 | } 534 | sampled += 1; 535 | if next_token == eos_token { 536 | break; 537 | }; 538 | } 539 | if let Some(rest) = tos.decode_rest().map_err(candle::Error::msg)? { 540 | print!("{rest}"); 541 | } 542 | std::io::stdout().flush()?; 543 | let dt = start_post_prompt.elapsed(); 544 | println!( 545 | "\n\n{:4} prompt tokens processed: {:.2} token/s", 546 | prompt_tokens.len(), 547 | prompt_tokens.len() as f64 / prompt_dt.as_secs_f64(), 548 | ); 549 | println!( 550 | "{sampled:4} tokens generated: {:.2} token/s", 551 | sampled as f64 / dt.as_secs_f64(), 552 | ); 553 | 554 | match prompt { 555 | Prompt::One(_) => break, 556 | Prompt::Interactive => {} 557 | Prompt::Chat => { 558 | pre_prompt_tokens = [prompt_tokens.as_slice(), all_tokens.as_slice()].concat() 559 | } 560 | } 561 | } 562 | 563 | Ok(()) 564 | } 565 | -------------------------------------------------------------------------------- /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 = "accelerate-src" 7 | version = "0.3.2" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "415ed64958754dbe991900f3940677e6a7eefb4d7367afd70d642677b0c7d19d" 10 | 11 | [[package]] 12 | name = "addr2line" 13 | version = "0.21.0" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" 16 | dependencies = [ 17 | "gimli", 18 | ] 19 | 20 | [[package]] 21 | name = "adler" 22 | version = "1.0.2" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 25 | 26 | [[package]] 27 | name = "aho-corasick" 28 | version = "1.1.2" 29 | source = "registry+https://github.com/rust-lang/crates.io-index" 30 | checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" 31 | dependencies = [ 32 | "memchr", 33 | ] 34 | 35 | [[package]] 36 | name = "android-tzdata" 37 | version = "0.1.1" 38 | source = "registry+https://github.com/rust-lang/crates.io-index" 39 | checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" 40 | 41 | [[package]] 42 | name = "android_system_properties" 43 | version = "0.1.5" 44 | source = "registry+https://github.com/rust-lang/crates.io-index" 45 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 46 | dependencies = [ 47 | "libc", 48 | ] 49 | 50 | [[package]] 51 | name = "anstream" 52 | version = "0.6.11" 53 | source = "registry+https://github.com/rust-lang/crates.io-index" 54 | checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" 55 | dependencies = [ 56 | "anstyle", 57 | "anstyle-parse", 58 | "anstyle-query", 59 | "anstyle-wincon", 60 | "colorchoice", 61 | "utf8parse", 62 | ] 63 | 64 | [[package]] 65 | name = "anstyle" 66 | version = "1.0.6" 67 | source = "registry+https://github.com/rust-lang/crates.io-index" 68 | checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" 69 | 70 | [[package]] 71 | name = "anstyle-parse" 72 | version = "0.2.3" 73 | source = "registry+https://github.com/rust-lang/crates.io-index" 74 | checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" 75 | dependencies = [ 76 | "utf8parse", 77 | ] 78 | 79 | [[package]] 80 | name = "anstyle-query" 81 | version = "1.0.2" 82 | source = "registry+https://github.com/rust-lang/crates.io-index" 83 | checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" 84 | dependencies = [ 85 | "windows-sys 0.52.0", 86 | ] 87 | 88 | [[package]] 89 | name = "anstyle-wincon" 90 | version = "3.0.2" 91 | source = "registry+https://github.com/rust-lang/crates.io-index" 92 | checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" 93 | dependencies = [ 94 | "anstyle", 95 | "windows-sys 0.52.0", 96 | ] 97 | 98 | [[package]] 99 | name = "anyhow" 100 | version = "1.0.79" 101 | source = "registry+https://github.com/rust-lang/crates.io-index" 102 | checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" 103 | 104 | [[package]] 105 | name = "autocfg" 106 | version = "1.1.0" 107 | source = "registry+https://github.com/rust-lang/crates.io-index" 108 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 109 | 110 | [[package]] 111 | name = "backtrace" 112 | version = "0.3.69" 113 | source = "registry+https://github.com/rust-lang/crates.io-index" 114 | checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" 115 | dependencies = [ 116 | "addr2line", 117 | "cc", 118 | "cfg-if", 119 | "libc", 120 | "miniz_oxide", 121 | "object", 122 | "rustc-demangle", 123 | ] 124 | 125 | [[package]] 126 | name = "base16ct" 127 | version = "0.1.1" 128 | source = "registry+https://github.com/rust-lang/crates.io-index" 129 | checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" 130 | 131 | [[package]] 132 | name = "base64" 133 | version = "0.13.1" 134 | source = "registry+https://github.com/rust-lang/crates.io-index" 135 | checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" 136 | 137 | [[package]] 138 | name = "base64" 139 | version = "0.21.7" 140 | source = "registry+https://github.com/rust-lang/crates.io-index" 141 | checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 142 | 143 | [[package]] 144 | name = "bitflags" 145 | version = "1.3.2" 146 | source = "registry+https://github.com/rust-lang/crates.io-index" 147 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 148 | 149 | [[package]] 150 | name = "bitflags" 151 | version = "2.4.2" 152 | source = "registry+https://github.com/rust-lang/crates.io-index" 153 | checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" 154 | 155 | [[package]] 156 | name = "block" 157 | version = "0.1.6" 158 | source = "registry+https://github.com/rust-lang/crates.io-index" 159 | checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" 160 | 161 | [[package]] 162 | name = "block-buffer" 163 | version = "0.10.4" 164 | source = "registry+https://github.com/rust-lang/crates.io-index" 165 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 166 | dependencies = [ 167 | "generic-array", 168 | ] 169 | 170 | [[package]] 171 | name = "bumpalo" 172 | version = "3.14.0" 173 | source = "registry+https://github.com/rust-lang/crates.io-index" 174 | checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" 175 | 176 | [[package]] 177 | name = "bytemuck" 178 | version = "1.14.3" 179 | source = "registry+https://github.com/rust-lang/crates.io-index" 180 | checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f" 181 | dependencies = [ 182 | "bytemuck_derive", 183 | ] 184 | 185 | [[package]] 186 | name = "bytemuck_derive" 187 | version = "1.5.0" 188 | source = "registry+https://github.com/rust-lang/crates.io-index" 189 | checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1" 190 | dependencies = [ 191 | "proc-macro2", 192 | "quote", 193 | "syn 2.0.48", 194 | ] 195 | 196 | [[package]] 197 | name = "byteorder" 198 | version = "1.5.0" 199 | source = "registry+https://github.com/rust-lang/crates.io-index" 200 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 201 | 202 | [[package]] 203 | name = "bytes" 204 | version = "1.5.0" 205 | source = "registry+https://github.com/rust-lang/crates.io-index" 206 | checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" 207 | 208 | [[package]] 209 | name = "candle-core" 210 | version = "0.4.0" 211 | source = "git+https://github.com/huggingface/candle#c1b418586c9477a85150ce6c15dcfe4c93d3a27d" 212 | dependencies = [ 213 | "accelerate-src", 214 | "byteorder", 215 | "candle-metal-kernels", 216 | "gemm", 217 | "half", 218 | "intel-mkl-src", 219 | "libc", 220 | "memmap2", 221 | "metal", 222 | "num-traits", 223 | "num_cpus", 224 | "rand", 225 | "rand_distr", 226 | "rayon", 227 | "safetensors", 228 | "thiserror", 229 | "yoke", 230 | "zip", 231 | ] 232 | 233 | [[package]] 234 | name = "candle-metal-kernels" 235 | version = "0.4.0" 236 | source = "git+https://github.com/huggingface/candle#c1b418586c9477a85150ce6c15dcfe4c93d3a27d" 237 | dependencies = [ 238 | "metal", 239 | "once_cell", 240 | "thiserror", 241 | "tracing", 242 | ] 243 | 244 | [[package]] 245 | name = "candle-nn" 246 | version = "0.4.0" 247 | source = "git+https://github.com/huggingface/candle#c1b418586c9477a85150ce6c15dcfe4c93d3a27d" 248 | dependencies = [ 249 | "accelerate-src", 250 | "candle-core", 251 | "candle-metal-kernels", 252 | "half", 253 | "intel-mkl-src", 254 | "metal", 255 | "num-traits", 256 | "rayon", 257 | "safetensors", 258 | "serde", 259 | "thiserror", 260 | ] 261 | 262 | [[package]] 263 | name = "candle-transformers" 264 | version = "0.4.0" 265 | source = "git+https://github.com/huggingface/candle#c1b418586c9477a85150ce6c15dcfe4c93d3a27d" 266 | dependencies = [ 267 | "accelerate-src", 268 | "byteorder", 269 | "candle-core", 270 | "candle-nn", 271 | "intel-mkl-src", 272 | "num-traits", 273 | "rand", 274 | "rayon", 275 | "serde", 276 | "serde_json", 277 | "serde_plain", 278 | "tracing", 279 | ] 280 | 281 | [[package]] 282 | name = "cc" 283 | version = "1.0.83" 284 | source = "registry+https://github.com/rust-lang/crates.io-index" 285 | checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" 286 | dependencies = [ 287 | "libc", 288 | ] 289 | 290 | [[package]] 291 | name = "cfg-if" 292 | version = "1.0.0" 293 | source = "registry+https://github.com/rust-lang/crates.io-index" 294 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 295 | 296 | [[package]] 297 | name = "chrono" 298 | version = "0.4.34" 299 | source = "registry+https://github.com/rust-lang/crates.io-index" 300 | checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" 301 | dependencies = [ 302 | "android-tzdata", 303 | "iana-time-zone", 304 | "js-sys", 305 | "num-traits", 306 | "wasm-bindgen", 307 | "windows-targets 0.52.0", 308 | ] 309 | 310 | [[package]] 311 | name = "clap" 312 | version = "4.5.0" 313 | source = "registry+https://github.com/rust-lang/crates.io-index" 314 | checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f" 315 | dependencies = [ 316 | "clap_builder", 317 | "clap_derive", 318 | ] 319 | 320 | [[package]] 321 | name = "clap_builder" 322 | version = "4.5.0" 323 | source = "registry+https://github.com/rust-lang/crates.io-index" 324 | checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99" 325 | dependencies = [ 326 | "anstream", 327 | "anstyle", 328 | "clap_lex", 329 | "strsim 0.11.0", 330 | ] 331 | 332 | [[package]] 333 | name = "clap_derive" 334 | version = "4.5.0" 335 | source = "registry+https://github.com/rust-lang/crates.io-index" 336 | checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" 337 | dependencies = [ 338 | "heck", 339 | "proc-macro2", 340 | "quote", 341 | "syn 2.0.48", 342 | ] 343 | 344 | [[package]] 345 | name = "clap_lex" 346 | version = "0.7.0" 347 | source = "registry+https://github.com/rust-lang/crates.io-index" 348 | checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" 349 | 350 | [[package]] 351 | name = "colorchoice" 352 | version = "1.0.0" 353 | source = "registry+https://github.com/rust-lang/crates.io-index" 354 | checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" 355 | 356 | [[package]] 357 | name = "console" 358 | version = "0.15.8" 359 | source = "registry+https://github.com/rust-lang/crates.io-index" 360 | checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" 361 | dependencies = [ 362 | "encode_unicode", 363 | "lazy_static", 364 | "libc", 365 | "unicode-width", 366 | "windows-sys 0.52.0", 367 | ] 368 | 369 | [[package]] 370 | name = "core-foundation" 371 | version = "0.9.4" 372 | source = "registry+https://github.com/rust-lang/crates.io-index" 373 | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 374 | dependencies = [ 375 | "core-foundation-sys", 376 | "libc", 377 | ] 378 | 379 | [[package]] 380 | name = "core-foundation-sys" 381 | version = "0.8.6" 382 | source = "registry+https://github.com/rust-lang/crates.io-index" 383 | checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" 384 | 385 | [[package]] 386 | name = "core-graphics-types" 387 | version = "0.1.3" 388 | source = "registry+https://github.com/rust-lang/crates.io-index" 389 | checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" 390 | dependencies = [ 391 | "bitflags 1.3.2", 392 | "core-foundation", 393 | "libc", 394 | ] 395 | 396 | [[package]] 397 | name = "cpufeatures" 398 | version = "0.2.12" 399 | source = "registry+https://github.com/rust-lang/crates.io-index" 400 | checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" 401 | dependencies = [ 402 | "libc", 403 | ] 404 | 405 | [[package]] 406 | name = "crc32fast" 407 | version = "1.4.0" 408 | source = "registry+https://github.com/rust-lang/crates.io-index" 409 | checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" 410 | dependencies = [ 411 | "cfg-if", 412 | ] 413 | 414 | [[package]] 415 | name = "crossbeam-deque" 416 | version = "0.8.5" 417 | source = "registry+https://github.com/rust-lang/crates.io-index" 418 | checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" 419 | dependencies = [ 420 | "crossbeam-epoch", 421 | "crossbeam-utils", 422 | ] 423 | 424 | [[package]] 425 | name = "crossbeam-epoch" 426 | version = "0.9.18" 427 | source = "registry+https://github.com/rust-lang/crates.io-index" 428 | checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 429 | dependencies = [ 430 | "crossbeam-utils", 431 | ] 432 | 433 | [[package]] 434 | name = "crossbeam-utils" 435 | version = "0.8.19" 436 | source = "registry+https://github.com/rust-lang/crates.io-index" 437 | checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" 438 | 439 | [[package]] 440 | name = "crunchy" 441 | version = "0.2.2" 442 | source = "registry+https://github.com/rust-lang/crates.io-index" 443 | checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" 444 | 445 | [[package]] 446 | name = "crypto-common" 447 | version = "0.1.6" 448 | source = "registry+https://github.com/rust-lang/crates.io-index" 449 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 450 | dependencies = [ 451 | "generic-array", 452 | "typenum", 453 | ] 454 | 455 | [[package]] 456 | name = "darling" 457 | version = "0.14.4" 458 | source = "registry+https://github.com/rust-lang/crates.io-index" 459 | checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" 460 | dependencies = [ 461 | "darling_core", 462 | "darling_macro", 463 | ] 464 | 465 | [[package]] 466 | name = "darling_core" 467 | version = "0.14.4" 468 | source = "registry+https://github.com/rust-lang/crates.io-index" 469 | checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" 470 | dependencies = [ 471 | "fnv", 472 | "ident_case", 473 | "proc-macro2", 474 | "quote", 475 | "strsim 0.10.0", 476 | "syn 1.0.109", 477 | ] 478 | 479 | [[package]] 480 | name = "darling_macro" 481 | version = "0.14.4" 482 | source = "registry+https://github.com/rust-lang/crates.io-index" 483 | checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" 484 | dependencies = [ 485 | "darling_core", 486 | "quote", 487 | "syn 1.0.109", 488 | ] 489 | 490 | [[package]] 491 | name = "derive_builder" 492 | version = "0.11.2" 493 | source = "registry+https://github.com/rust-lang/crates.io-index" 494 | checksum = "d07adf7be193b71cc36b193d0f5fe60b918a3a9db4dad0449f57bcfd519704a3" 495 | dependencies = [ 496 | "derive_builder_macro 0.11.2", 497 | ] 498 | 499 | [[package]] 500 | name = "derive_builder" 501 | version = "0.12.0" 502 | source = "registry+https://github.com/rust-lang/crates.io-index" 503 | checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" 504 | dependencies = [ 505 | "derive_builder_macro 0.12.0", 506 | ] 507 | 508 | [[package]] 509 | name = "derive_builder_core" 510 | version = "0.11.2" 511 | source = "registry+https://github.com/rust-lang/crates.io-index" 512 | checksum = "1f91d4cfa921f1c05904dc3c57b4a32c38aed3340cce209f3a6fd1478babafc4" 513 | dependencies = [ 514 | "darling", 515 | "proc-macro2", 516 | "quote", 517 | "syn 1.0.109", 518 | ] 519 | 520 | [[package]] 521 | name = "derive_builder_core" 522 | version = "0.12.0" 523 | source = "registry+https://github.com/rust-lang/crates.io-index" 524 | checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" 525 | dependencies = [ 526 | "darling", 527 | "proc-macro2", 528 | "quote", 529 | "syn 1.0.109", 530 | ] 531 | 532 | [[package]] 533 | name = "derive_builder_macro" 534 | version = "0.11.2" 535 | source = "registry+https://github.com/rust-lang/crates.io-index" 536 | checksum = "8f0314b72bed045f3a68671b3c86328386762c93f82d98c65c3cb5e5f573dd68" 537 | dependencies = [ 538 | "derive_builder_core 0.11.2", 539 | "syn 1.0.109", 540 | ] 541 | 542 | [[package]] 543 | name = "derive_builder_macro" 544 | version = "0.12.0" 545 | source = "registry+https://github.com/rust-lang/crates.io-index" 546 | checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" 547 | dependencies = [ 548 | "derive_builder_core 0.12.0", 549 | "syn 1.0.109", 550 | ] 551 | 552 | [[package]] 553 | name = "digest" 554 | version = "0.10.7" 555 | source = "registry+https://github.com/rust-lang/crates.io-index" 556 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 557 | dependencies = [ 558 | "block-buffer", 559 | "crypto-common", 560 | ] 561 | 562 | [[package]] 563 | name = "directories" 564 | version = "4.0.1" 565 | source = "registry+https://github.com/rust-lang/crates.io-index" 566 | checksum = "f51c5d4ddabd36886dd3e1438cb358cdcb0d7c499cb99cb4ac2e38e18b5cb210" 567 | dependencies = [ 568 | "dirs-sys 0.3.7", 569 | ] 570 | 571 | [[package]] 572 | name = "dirs" 573 | version = "5.0.1" 574 | source = "registry+https://github.com/rust-lang/crates.io-index" 575 | checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" 576 | dependencies = [ 577 | "dirs-sys 0.4.1", 578 | ] 579 | 580 | [[package]] 581 | name = "dirs-sys" 582 | version = "0.3.7" 583 | source = "registry+https://github.com/rust-lang/crates.io-index" 584 | checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" 585 | dependencies = [ 586 | "libc", 587 | "redox_users", 588 | "winapi", 589 | ] 590 | 591 | [[package]] 592 | name = "dirs-sys" 593 | version = "0.4.1" 594 | source = "registry+https://github.com/rust-lang/crates.io-index" 595 | checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" 596 | dependencies = [ 597 | "libc", 598 | "option-ext", 599 | "redox_users", 600 | "windows-sys 0.48.0", 601 | ] 602 | 603 | [[package]] 604 | name = "dyn-stack" 605 | version = "0.10.0" 606 | source = "registry+https://github.com/rust-lang/crates.io-index" 607 | checksum = "56e53799688f5632f364f8fb387488dd05db9fe45db7011be066fc20e7027f8b" 608 | dependencies = [ 609 | "bytemuck", 610 | "reborrow", 611 | ] 612 | 613 | [[package]] 614 | name = "either" 615 | version = "1.10.0" 616 | source = "registry+https://github.com/rust-lang/crates.io-index" 617 | checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" 618 | 619 | [[package]] 620 | name = "encode_unicode" 621 | version = "0.3.6" 622 | source = "registry+https://github.com/rust-lang/crates.io-index" 623 | checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" 624 | 625 | [[package]] 626 | name = "encoding_rs" 627 | version = "0.8.33" 628 | source = "registry+https://github.com/rust-lang/crates.io-index" 629 | checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" 630 | dependencies = [ 631 | "cfg-if", 632 | ] 633 | 634 | [[package]] 635 | name = "enum-as-inner" 636 | version = "0.6.0" 637 | source = "registry+https://github.com/rust-lang/crates.io-index" 638 | checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a" 639 | dependencies = [ 640 | "heck", 641 | "proc-macro2", 642 | "quote", 643 | "syn 2.0.48", 644 | ] 645 | 646 | [[package]] 647 | name = "equivalent" 648 | version = "1.0.1" 649 | source = "registry+https://github.com/rust-lang/crates.io-index" 650 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 651 | 652 | [[package]] 653 | name = "errno" 654 | version = "0.3.8" 655 | source = "registry+https://github.com/rust-lang/crates.io-index" 656 | checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" 657 | dependencies = [ 658 | "libc", 659 | "windows-sys 0.52.0", 660 | ] 661 | 662 | [[package]] 663 | name = "esaxx-rs" 664 | version = "0.1.10" 665 | source = "registry+https://github.com/rust-lang/crates.io-index" 666 | checksum = "d817e038c30374a4bcb22f94d0a8a0e216958d4c3dcde369b1439fec4bdda6e6" 667 | 668 | [[package]] 669 | name = "fast-llm" 670 | version = "0.1.0" 671 | dependencies = [ 672 | "accelerate-src", 673 | "anyhow", 674 | "candle-core", 675 | "candle-nn", 676 | "candle-transformers", 677 | "clap", 678 | "hf-hub", 679 | "intel-mkl-src", 680 | "safetensors", 681 | "serde", 682 | "serde_json", 683 | "tokenizers", 684 | "tracing", 685 | "tracing-chrome", 686 | "tracing-subscriber", 687 | ] 688 | 689 | [[package]] 690 | name = "fastrand" 691 | version = "2.0.1" 692 | source = "registry+https://github.com/rust-lang/crates.io-index" 693 | checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" 694 | 695 | [[package]] 696 | name = "filetime" 697 | version = "0.2.23" 698 | source = "registry+https://github.com/rust-lang/crates.io-index" 699 | checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" 700 | dependencies = [ 701 | "cfg-if", 702 | "libc", 703 | "redox_syscall", 704 | "windows-sys 0.52.0", 705 | ] 706 | 707 | [[package]] 708 | name = "flate2" 709 | version = "1.0.28" 710 | source = "registry+https://github.com/rust-lang/crates.io-index" 711 | checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" 712 | dependencies = [ 713 | "crc32fast", 714 | "miniz_oxide", 715 | ] 716 | 717 | [[package]] 718 | name = "fnv" 719 | version = "1.0.7" 720 | source = "registry+https://github.com/rust-lang/crates.io-index" 721 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 722 | 723 | [[package]] 724 | name = "foreign-types" 725 | version = "0.3.2" 726 | source = "registry+https://github.com/rust-lang/crates.io-index" 727 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 728 | dependencies = [ 729 | "foreign-types-shared 0.1.1", 730 | ] 731 | 732 | [[package]] 733 | name = "foreign-types" 734 | version = "0.5.0" 735 | source = "registry+https://github.com/rust-lang/crates.io-index" 736 | checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" 737 | dependencies = [ 738 | "foreign-types-macros", 739 | "foreign-types-shared 0.3.1", 740 | ] 741 | 742 | [[package]] 743 | name = "foreign-types-macros" 744 | version = "0.2.3" 745 | source = "registry+https://github.com/rust-lang/crates.io-index" 746 | checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" 747 | dependencies = [ 748 | "proc-macro2", 749 | "quote", 750 | "syn 2.0.48", 751 | ] 752 | 753 | [[package]] 754 | name = "foreign-types-shared" 755 | version = "0.1.1" 756 | source = "registry+https://github.com/rust-lang/crates.io-index" 757 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 758 | 759 | [[package]] 760 | name = "foreign-types-shared" 761 | version = "0.3.1" 762 | source = "registry+https://github.com/rust-lang/crates.io-index" 763 | checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" 764 | 765 | [[package]] 766 | name = "form_urlencoded" 767 | version = "1.2.1" 768 | source = "registry+https://github.com/rust-lang/crates.io-index" 769 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 770 | dependencies = [ 771 | "percent-encoding", 772 | ] 773 | 774 | [[package]] 775 | name = "futures" 776 | version = "0.3.30" 777 | source = "registry+https://github.com/rust-lang/crates.io-index" 778 | checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" 779 | dependencies = [ 780 | "futures-channel", 781 | "futures-core", 782 | "futures-executor", 783 | "futures-io", 784 | "futures-sink", 785 | "futures-task", 786 | "futures-util", 787 | ] 788 | 789 | [[package]] 790 | name = "futures-channel" 791 | version = "0.3.30" 792 | source = "registry+https://github.com/rust-lang/crates.io-index" 793 | checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" 794 | dependencies = [ 795 | "futures-core", 796 | "futures-sink", 797 | ] 798 | 799 | [[package]] 800 | name = "futures-core" 801 | version = "0.3.30" 802 | source = "registry+https://github.com/rust-lang/crates.io-index" 803 | checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" 804 | 805 | [[package]] 806 | name = "futures-executor" 807 | version = "0.3.30" 808 | source = "registry+https://github.com/rust-lang/crates.io-index" 809 | checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" 810 | dependencies = [ 811 | "futures-core", 812 | "futures-task", 813 | "futures-util", 814 | ] 815 | 816 | [[package]] 817 | name = "futures-io" 818 | version = "0.3.30" 819 | source = "registry+https://github.com/rust-lang/crates.io-index" 820 | checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" 821 | 822 | [[package]] 823 | name = "futures-macro" 824 | version = "0.3.30" 825 | source = "registry+https://github.com/rust-lang/crates.io-index" 826 | checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" 827 | dependencies = [ 828 | "proc-macro2", 829 | "quote", 830 | "syn 2.0.48", 831 | ] 832 | 833 | [[package]] 834 | name = "futures-sink" 835 | version = "0.3.30" 836 | source = "registry+https://github.com/rust-lang/crates.io-index" 837 | checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" 838 | 839 | [[package]] 840 | name = "futures-task" 841 | version = "0.3.30" 842 | source = "registry+https://github.com/rust-lang/crates.io-index" 843 | checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" 844 | 845 | [[package]] 846 | name = "futures-util" 847 | version = "0.3.30" 848 | source = "registry+https://github.com/rust-lang/crates.io-index" 849 | checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" 850 | dependencies = [ 851 | "futures-channel", 852 | "futures-core", 853 | "futures-io", 854 | "futures-macro", 855 | "futures-sink", 856 | "futures-task", 857 | "memchr", 858 | "pin-project-lite", 859 | "pin-utils", 860 | "slab", 861 | ] 862 | 863 | [[package]] 864 | name = "gemm" 865 | version = "0.17.1" 866 | source = "registry+https://github.com/rust-lang/crates.io-index" 867 | checksum = "6ab24cc62135b40090e31a76a9b2766a501979f3070fa27f689c27ec04377d32" 868 | dependencies = [ 869 | "dyn-stack", 870 | "gemm-c32", 871 | "gemm-c64", 872 | "gemm-common", 873 | "gemm-f16", 874 | "gemm-f32", 875 | "gemm-f64", 876 | "num-complex", 877 | "num-traits", 878 | "paste", 879 | "raw-cpuid", 880 | "seq-macro", 881 | ] 882 | 883 | [[package]] 884 | name = "gemm-c32" 885 | version = "0.17.1" 886 | source = "registry+https://github.com/rust-lang/crates.io-index" 887 | checksum = "b9c030d0b983d1e34a546b86e08f600c11696fde16199f971cd46c12e67512c0" 888 | dependencies = [ 889 | "dyn-stack", 890 | "gemm-common", 891 | "num-complex", 892 | "num-traits", 893 | "paste", 894 | "raw-cpuid", 895 | "seq-macro", 896 | ] 897 | 898 | [[package]] 899 | name = "gemm-c64" 900 | version = "0.17.1" 901 | source = "registry+https://github.com/rust-lang/crates.io-index" 902 | checksum = "fbb5f2e79fefb9693d18e1066a557b4546cd334b226beadc68b11a8f9431852a" 903 | dependencies = [ 904 | "dyn-stack", 905 | "gemm-common", 906 | "num-complex", 907 | "num-traits", 908 | "paste", 909 | "raw-cpuid", 910 | "seq-macro", 911 | ] 912 | 913 | [[package]] 914 | name = "gemm-common" 915 | version = "0.17.1" 916 | source = "registry+https://github.com/rust-lang/crates.io-index" 917 | checksum = "a2e7ea062c987abcd8db95db917b4ffb4ecdfd0668471d8dc54734fdff2354e8" 918 | dependencies = [ 919 | "bytemuck", 920 | "dyn-stack", 921 | "half", 922 | "num-complex", 923 | "num-traits", 924 | "once_cell", 925 | "paste", 926 | "pulp", 927 | "raw-cpuid", 928 | "rayon", 929 | "seq-macro", 930 | "sysctl", 931 | ] 932 | 933 | [[package]] 934 | name = "gemm-f16" 935 | version = "0.17.1" 936 | source = "registry+https://github.com/rust-lang/crates.io-index" 937 | checksum = "7ca4c06b9b11952071d317604acb332e924e817bd891bec8dfb494168c7cedd4" 938 | dependencies = [ 939 | "dyn-stack", 940 | "gemm-common", 941 | "gemm-f32", 942 | "half", 943 | "num-complex", 944 | "num-traits", 945 | "paste", 946 | "raw-cpuid", 947 | "rayon", 948 | "seq-macro", 949 | ] 950 | 951 | [[package]] 952 | name = "gemm-f32" 953 | version = "0.17.1" 954 | source = "registry+https://github.com/rust-lang/crates.io-index" 955 | checksum = "e9a69f51aaefbd9cf12d18faf273d3e982d9d711f60775645ed5c8047b4ae113" 956 | dependencies = [ 957 | "dyn-stack", 958 | "gemm-common", 959 | "num-complex", 960 | "num-traits", 961 | "paste", 962 | "raw-cpuid", 963 | "seq-macro", 964 | ] 965 | 966 | [[package]] 967 | name = "gemm-f64" 968 | version = "0.17.1" 969 | source = "registry+https://github.com/rust-lang/crates.io-index" 970 | checksum = "aa397a48544fadf0b81ec8741e5c0fba0043008113f71f2034def1935645d2b0" 971 | dependencies = [ 972 | "dyn-stack", 973 | "gemm-common", 974 | "num-complex", 975 | "num-traits", 976 | "paste", 977 | "raw-cpuid", 978 | "seq-macro", 979 | ] 980 | 981 | [[package]] 982 | name = "generic-array" 983 | version = "0.14.7" 984 | source = "registry+https://github.com/rust-lang/crates.io-index" 985 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 986 | dependencies = [ 987 | "typenum", 988 | "version_check", 989 | ] 990 | 991 | [[package]] 992 | name = "getrandom" 993 | version = "0.2.12" 994 | source = "registry+https://github.com/rust-lang/crates.io-index" 995 | checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" 996 | dependencies = [ 997 | "cfg-if", 998 | "libc", 999 | "wasi", 1000 | ] 1001 | 1002 | [[package]] 1003 | name = "getset" 1004 | version = "0.1.2" 1005 | source = "registry+https://github.com/rust-lang/crates.io-index" 1006 | checksum = "e45727250e75cc04ff2846a66397da8ef2b3db8e40e0cef4df67950a07621eb9" 1007 | dependencies = [ 1008 | "proc-macro-error", 1009 | "proc-macro2", 1010 | "quote", 1011 | "syn 1.0.109", 1012 | ] 1013 | 1014 | [[package]] 1015 | name = "gimli" 1016 | version = "0.28.1" 1017 | source = "registry+https://github.com/rust-lang/crates.io-index" 1018 | checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" 1019 | 1020 | [[package]] 1021 | name = "h2" 1022 | version = "0.3.24" 1023 | source = "registry+https://github.com/rust-lang/crates.io-index" 1024 | checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" 1025 | dependencies = [ 1026 | "bytes", 1027 | "fnv", 1028 | "futures-core", 1029 | "futures-sink", 1030 | "futures-util", 1031 | "http", 1032 | "indexmap", 1033 | "slab", 1034 | "tokio", 1035 | "tokio-util", 1036 | "tracing", 1037 | ] 1038 | 1039 | [[package]] 1040 | name = "half" 1041 | version = "2.3.1" 1042 | source = "registry+https://github.com/rust-lang/crates.io-index" 1043 | checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872" 1044 | dependencies = [ 1045 | "bytemuck", 1046 | "cfg-if", 1047 | "crunchy", 1048 | "num-traits", 1049 | "rand", 1050 | "rand_distr", 1051 | ] 1052 | 1053 | [[package]] 1054 | name = "hashbrown" 1055 | version = "0.14.3" 1056 | source = "registry+https://github.com/rust-lang/crates.io-index" 1057 | checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" 1058 | 1059 | [[package]] 1060 | name = "heck" 1061 | version = "0.4.1" 1062 | source = "registry+https://github.com/rust-lang/crates.io-index" 1063 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 1064 | 1065 | [[package]] 1066 | name = "hermit-abi" 1067 | version = "0.3.5" 1068 | source = "registry+https://github.com/rust-lang/crates.io-index" 1069 | checksum = "d0c62115964e08cb8039170eb33c1d0e2388a256930279edca206fff675f82c3" 1070 | 1071 | [[package]] 1072 | name = "hf-hub" 1073 | version = "0.3.2" 1074 | source = "registry+https://github.com/rust-lang/crates.io-index" 1075 | checksum = "2b780635574b3d92f036890d8373433d6f9fc7abb320ee42a5c25897fc8ed732" 1076 | dependencies = [ 1077 | "dirs", 1078 | "futures", 1079 | "indicatif", 1080 | "log", 1081 | "native-tls", 1082 | "num_cpus", 1083 | "rand", 1084 | "reqwest", 1085 | "serde", 1086 | "serde_json", 1087 | "thiserror", 1088 | "tokio", 1089 | "ureq", 1090 | ] 1091 | 1092 | [[package]] 1093 | name = "hoot" 1094 | version = "0.1.3" 1095 | source = "registry+https://github.com/rust-lang/crates.io-index" 1096 | checksum = "df22a4d90f1b0e65fe3e0d6ee6a4608cc4d81f4b2eb3e670f44bb6bde711e452" 1097 | dependencies = [ 1098 | "httparse", 1099 | "log", 1100 | ] 1101 | 1102 | [[package]] 1103 | name = "hootbin" 1104 | version = "0.1.1" 1105 | source = "registry+https://github.com/rust-lang/crates.io-index" 1106 | checksum = "354e60868e49ea1a39c44b9562ad207c4259dc6eabf9863bf3b0f058c55cfdb2" 1107 | dependencies = [ 1108 | "fastrand", 1109 | "hoot", 1110 | "serde", 1111 | "serde_json", 1112 | "thiserror", 1113 | ] 1114 | 1115 | [[package]] 1116 | name = "http" 1117 | version = "0.2.11" 1118 | source = "registry+https://github.com/rust-lang/crates.io-index" 1119 | checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" 1120 | dependencies = [ 1121 | "bytes", 1122 | "fnv", 1123 | "itoa", 1124 | ] 1125 | 1126 | [[package]] 1127 | name = "http-body" 1128 | version = "0.4.6" 1129 | source = "registry+https://github.com/rust-lang/crates.io-index" 1130 | checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" 1131 | dependencies = [ 1132 | "bytes", 1133 | "http", 1134 | "pin-project-lite", 1135 | ] 1136 | 1137 | [[package]] 1138 | name = "httparse" 1139 | version = "1.8.0" 1140 | source = "registry+https://github.com/rust-lang/crates.io-index" 1141 | checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" 1142 | 1143 | [[package]] 1144 | name = "httpdate" 1145 | version = "1.0.3" 1146 | source = "registry+https://github.com/rust-lang/crates.io-index" 1147 | checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 1148 | 1149 | [[package]] 1150 | name = "hyper" 1151 | version = "0.14.28" 1152 | source = "registry+https://github.com/rust-lang/crates.io-index" 1153 | checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" 1154 | dependencies = [ 1155 | "bytes", 1156 | "futures-channel", 1157 | "futures-core", 1158 | "futures-util", 1159 | "h2", 1160 | "http", 1161 | "http-body", 1162 | "httparse", 1163 | "httpdate", 1164 | "itoa", 1165 | "pin-project-lite", 1166 | "socket2", 1167 | "tokio", 1168 | "tower-service", 1169 | "tracing", 1170 | "want", 1171 | ] 1172 | 1173 | [[package]] 1174 | name = "hyper-tls" 1175 | version = "0.5.0" 1176 | source = "registry+https://github.com/rust-lang/crates.io-index" 1177 | checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" 1178 | dependencies = [ 1179 | "bytes", 1180 | "hyper", 1181 | "native-tls", 1182 | "tokio", 1183 | "tokio-native-tls", 1184 | ] 1185 | 1186 | [[package]] 1187 | name = "iana-time-zone" 1188 | version = "0.1.60" 1189 | source = "registry+https://github.com/rust-lang/crates.io-index" 1190 | checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" 1191 | dependencies = [ 1192 | "android_system_properties", 1193 | "core-foundation-sys", 1194 | "iana-time-zone-haiku", 1195 | "js-sys", 1196 | "wasm-bindgen", 1197 | "windows-core", 1198 | ] 1199 | 1200 | [[package]] 1201 | name = "iana-time-zone-haiku" 1202 | version = "0.1.2" 1203 | source = "registry+https://github.com/rust-lang/crates.io-index" 1204 | checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 1205 | dependencies = [ 1206 | "cc", 1207 | ] 1208 | 1209 | [[package]] 1210 | name = "ident_case" 1211 | version = "1.0.1" 1212 | source = "registry+https://github.com/rust-lang/crates.io-index" 1213 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 1214 | 1215 | [[package]] 1216 | name = "idna" 1217 | version = "0.5.0" 1218 | source = "registry+https://github.com/rust-lang/crates.io-index" 1219 | checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" 1220 | dependencies = [ 1221 | "unicode-bidi", 1222 | "unicode-normalization", 1223 | ] 1224 | 1225 | [[package]] 1226 | name = "indexmap" 1227 | version = "2.2.3" 1228 | source = "registry+https://github.com/rust-lang/crates.io-index" 1229 | checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" 1230 | dependencies = [ 1231 | "equivalent", 1232 | "hashbrown", 1233 | ] 1234 | 1235 | [[package]] 1236 | name = "indicatif" 1237 | version = "0.17.8" 1238 | source = "registry+https://github.com/rust-lang/crates.io-index" 1239 | checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" 1240 | dependencies = [ 1241 | "console", 1242 | "instant", 1243 | "number_prefix", 1244 | "portable-atomic", 1245 | "unicode-width", 1246 | ] 1247 | 1248 | [[package]] 1249 | name = "instant" 1250 | version = "0.1.12" 1251 | source = "registry+https://github.com/rust-lang/crates.io-index" 1252 | checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" 1253 | dependencies = [ 1254 | "cfg-if", 1255 | ] 1256 | 1257 | [[package]] 1258 | name = "intel-mkl-src" 1259 | version = "0.8.1" 1260 | source = "registry+https://github.com/rust-lang/crates.io-index" 1261 | checksum = "2ee70586cd5b3e772a8739a1bd43eaa90d4f4bf0fb2a4edc202e979937ee7f5e" 1262 | dependencies = [ 1263 | "anyhow", 1264 | "intel-mkl-tool", 1265 | "ocipkg", 1266 | ] 1267 | 1268 | [[package]] 1269 | name = "intel-mkl-tool" 1270 | version = "0.8.1" 1271 | source = "registry+https://github.com/rust-lang/crates.io-index" 1272 | checksum = "887a16b4537d82227af54d3372971cfa5e0cde53322e60f57584056c16ada1b4" 1273 | dependencies = [ 1274 | "anyhow", 1275 | "log", 1276 | "walkdir", 1277 | ] 1278 | 1279 | [[package]] 1280 | name = "ipnet" 1281 | version = "2.9.0" 1282 | source = "registry+https://github.com/rust-lang/crates.io-index" 1283 | checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" 1284 | 1285 | [[package]] 1286 | name = "itertools" 1287 | version = "0.11.0" 1288 | source = "registry+https://github.com/rust-lang/crates.io-index" 1289 | checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" 1290 | dependencies = [ 1291 | "either", 1292 | ] 1293 | 1294 | [[package]] 1295 | name = "itertools" 1296 | version = "0.12.1" 1297 | source = "registry+https://github.com/rust-lang/crates.io-index" 1298 | checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" 1299 | dependencies = [ 1300 | "either", 1301 | ] 1302 | 1303 | [[package]] 1304 | name = "itoa" 1305 | version = "1.0.10" 1306 | source = "registry+https://github.com/rust-lang/crates.io-index" 1307 | checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" 1308 | 1309 | [[package]] 1310 | name = "js-sys" 1311 | version = "0.3.68" 1312 | source = "registry+https://github.com/rust-lang/crates.io-index" 1313 | checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" 1314 | dependencies = [ 1315 | "wasm-bindgen", 1316 | ] 1317 | 1318 | [[package]] 1319 | name = "lazy_static" 1320 | version = "1.4.0" 1321 | source = "registry+https://github.com/rust-lang/crates.io-index" 1322 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 1323 | 1324 | [[package]] 1325 | name = "libc" 1326 | version = "0.2.153" 1327 | source = "registry+https://github.com/rust-lang/crates.io-index" 1328 | checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" 1329 | 1330 | [[package]] 1331 | name = "libm" 1332 | version = "0.2.8" 1333 | source = "registry+https://github.com/rust-lang/crates.io-index" 1334 | checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" 1335 | 1336 | [[package]] 1337 | name = "libredox" 1338 | version = "0.0.1" 1339 | source = "registry+https://github.com/rust-lang/crates.io-index" 1340 | checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" 1341 | dependencies = [ 1342 | "bitflags 2.4.2", 1343 | "libc", 1344 | "redox_syscall", 1345 | ] 1346 | 1347 | [[package]] 1348 | name = "linux-raw-sys" 1349 | version = "0.4.13" 1350 | source = "registry+https://github.com/rust-lang/crates.io-index" 1351 | checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" 1352 | 1353 | [[package]] 1354 | name = "log" 1355 | version = "0.4.20" 1356 | source = "registry+https://github.com/rust-lang/crates.io-index" 1357 | checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" 1358 | 1359 | [[package]] 1360 | name = "macro_rules_attribute" 1361 | version = "0.2.0" 1362 | source = "registry+https://github.com/rust-lang/crates.io-index" 1363 | checksum = "8a82271f7bc033d84bbca59a3ce3e4159938cb08a9c3aebbe54d215131518a13" 1364 | dependencies = [ 1365 | "macro_rules_attribute-proc_macro", 1366 | "paste", 1367 | ] 1368 | 1369 | [[package]] 1370 | name = "macro_rules_attribute-proc_macro" 1371 | version = "0.2.0" 1372 | source = "registry+https://github.com/rust-lang/crates.io-index" 1373 | checksum = "b8dd856d451cc0da70e2ef2ce95a18e39a93b7558bedf10201ad28503f918568" 1374 | 1375 | [[package]] 1376 | name = "malloc_buf" 1377 | version = "0.0.6" 1378 | source = "registry+https://github.com/rust-lang/crates.io-index" 1379 | checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" 1380 | dependencies = [ 1381 | "libc", 1382 | ] 1383 | 1384 | [[package]] 1385 | name = "memchr" 1386 | version = "2.7.1" 1387 | source = "registry+https://github.com/rust-lang/crates.io-index" 1388 | checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" 1389 | 1390 | [[package]] 1391 | name = "memmap2" 1392 | version = "0.9.4" 1393 | source = "registry+https://github.com/rust-lang/crates.io-index" 1394 | checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" 1395 | dependencies = [ 1396 | "libc", 1397 | "stable_deref_trait", 1398 | ] 1399 | 1400 | [[package]] 1401 | name = "metal" 1402 | version = "0.27.0" 1403 | source = "registry+https://github.com/rust-lang/crates.io-index" 1404 | checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25" 1405 | dependencies = [ 1406 | "bitflags 2.4.2", 1407 | "block", 1408 | "core-graphics-types", 1409 | "foreign-types 0.5.0", 1410 | "log", 1411 | "objc", 1412 | "paste", 1413 | ] 1414 | 1415 | [[package]] 1416 | name = "mime" 1417 | version = "0.3.17" 1418 | source = "registry+https://github.com/rust-lang/crates.io-index" 1419 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 1420 | 1421 | [[package]] 1422 | name = "minimal-lexical" 1423 | version = "0.2.1" 1424 | source = "registry+https://github.com/rust-lang/crates.io-index" 1425 | checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 1426 | 1427 | [[package]] 1428 | name = "miniz_oxide" 1429 | version = "0.7.2" 1430 | source = "registry+https://github.com/rust-lang/crates.io-index" 1431 | checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" 1432 | dependencies = [ 1433 | "adler", 1434 | ] 1435 | 1436 | [[package]] 1437 | name = "mio" 1438 | version = "0.8.10" 1439 | source = "registry+https://github.com/rust-lang/crates.io-index" 1440 | checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" 1441 | dependencies = [ 1442 | "libc", 1443 | "wasi", 1444 | "windows-sys 0.48.0", 1445 | ] 1446 | 1447 | [[package]] 1448 | name = "monostate" 1449 | version = "0.1.11" 1450 | source = "registry+https://github.com/rust-lang/crates.io-index" 1451 | checksum = "878c2a1f1c70e5724fa28f101ca787b6a7e8ad5c5e4ae4ca3b0fa4a419fa9075" 1452 | dependencies = [ 1453 | "monostate-impl", 1454 | "serde", 1455 | ] 1456 | 1457 | [[package]] 1458 | name = "monostate-impl" 1459 | version = "0.1.11" 1460 | source = "registry+https://github.com/rust-lang/crates.io-index" 1461 | checksum = "f686d68a09079e63b1d2c64aa305095887ce50565f00a922ebfaeeee0d9ba6ce" 1462 | dependencies = [ 1463 | "proc-macro2", 1464 | "quote", 1465 | "syn 2.0.48", 1466 | ] 1467 | 1468 | [[package]] 1469 | name = "native-tls" 1470 | version = "0.2.11" 1471 | source = "registry+https://github.com/rust-lang/crates.io-index" 1472 | checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" 1473 | dependencies = [ 1474 | "lazy_static", 1475 | "libc", 1476 | "log", 1477 | "openssl", 1478 | "openssl-probe", 1479 | "openssl-sys", 1480 | "schannel", 1481 | "security-framework", 1482 | "security-framework-sys", 1483 | "tempfile", 1484 | ] 1485 | 1486 | [[package]] 1487 | name = "nom" 1488 | version = "7.1.3" 1489 | source = "registry+https://github.com/rust-lang/crates.io-index" 1490 | checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 1491 | dependencies = [ 1492 | "memchr", 1493 | "minimal-lexical", 1494 | ] 1495 | 1496 | [[package]] 1497 | name = "nu-ansi-term" 1498 | version = "0.46.0" 1499 | source = "registry+https://github.com/rust-lang/crates.io-index" 1500 | checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" 1501 | dependencies = [ 1502 | "overload", 1503 | "winapi", 1504 | ] 1505 | 1506 | [[package]] 1507 | name = "num-complex" 1508 | version = "0.4.5" 1509 | source = "registry+https://github.com/rust-lang/crates.io-index" 1510 | checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6" 1511 | dependencies = [ 1512 | "bytemuck", 1513 | "num-traits", 1514 | ] 1515 | 1516 | [[package]] 1517 | name = "num-traits" 1518 | version = "0.2.18" 1519 | source = "registry+https://github.com/rust-lang/crates.io-index" 1520 | checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" 1521 | dependencies = [ 1522 | "autocfg", 1523 | "libm", 1524 | ] 1525 | 1526 | [[package]] 1527 | name = "num_cpus" 1528 | version = "1.16.0" 1529 | source = "registry+https://github.com/rust-lang/crates.io-index" 1530 | checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" 1531 | dependencies = [ 1532 | "hermit-abi", 1533 | "libc", 1534 | ] 1535 | 1536 | [[package]] 1537 | name = "number_prefix" 1538 | version = "0.4.0" 1539 | source = "registry+https://github.com/rust-lang/crates.io-index" 1540 | checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" 1541 | 1542 | [[package]] 1543 | name = "objc" 1544 | version = "0.2.7" 1545 | source = "registry+https://github.com/rust-lang/crates.io-index" 1546 | checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" 1547 | dependencies = [ 1548 | "malloc_buf", 1549 | "objc_exception", 1550 | ] 1551 | 1552 | [[package]] 1553 | name = "objc_exception" 1554 | version = "0.1.2" 1555 | source = "registry+https://github.com/rust-lang/crates.io-index" 1556 | checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" 1557 | dependencies = [ 1558 | "cc", 1559 | ] 1560 | 1561 | [[package]] 1562 | name = "object" 1563 | version = "0.32.2" 1564 | source = "registry+https://github.com/rust-lang/crates.io-index" 1565 | checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" 1566 | dependencies = [ 1567 | "memchr", 1568 | ] 1569 | 1570 | [[package]] 1571 | name = "oci-spec" 1572 | version = "0.5.8" 1573 | source = "registry+https://github.com/rust-lang/crates.io-index" 1574 | checksum = "98135224dd4faeb24c05a2fac911ed53ea6b09ecb09d7cada1cb79963ab2ee34" 1575 | dependencies = [ 1576 | "derive_builder 0.11.2", 1577 | "getset", 1578 | "serde", 1579 | "serde_json", 1580 | "thiserror", 1581 | ] 1582 | 1583 | [[package]] 1584 | name = "ocipkg" 1585 | version = "0.2.8" 1586 | source = "registry+https://github.com/rust-lang/crates.io-index" 1587 | checksum = "60cf01280832705a4e4c4d046d9e67a54b900297c69191457a8fc6d198ddefa2" 1588 | dependencies = [ 1589 | "base16ct", 1590 | "base64 0.13.1", 1591 | "chrono", 1592 | "directories", 1593 | "flate2", 1594 | "lazy_static", 1595 | "log", 1596 | "oci-spec", 1597 | "regex", 1598 | "serde", 1599 | "serde_json", 1600 | "sha2", 1601 | "tar", 1602 | "thiserror", 1603 | "toml", 1604 | "ureq", 1605 | "url", 1606 | "uuid", 1607 | "walkdir", 1608 | ] 1609 | 1610 | [[package]] 1611 | name = "once_cell" 1612 | version = "1.19.0" 1613 | source = "registry+https://github.com/rust-lang/crates.io-index" 1614 | checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" 1615 | 1616 | [[package]] 1617 | name = "onig" 1618 | version = "6.4.0" 1619 | source = "registry+https://github.com/rust-lang/crates.io-index" 1620 | checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f" 1621 | dependencies = [ 1622 | "bitflags 1.3.2", 1623 | "libc", 1624 | "once_cell", 1625 | "onig_sys", 1626 | ] 1627 | 1628 | [[package]] 1629 | name = "onig_sys" 1630 | version = "69.8.1" 1631 | source = "registry+https://github.com/rust-lang/crates.io-index" 1632 | checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7" 1633 | dependencies = [ 1634 | "cc", 1635 | "pkg-config", 1636 | ] 1637 | 1638 | [[package]] 1639 | name = "openssl" 1640 | version = "0.10.63" 1641 | source = "registry+https://github.com/rust-lang/crates.io-index" 1642 | checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8" 1643 | dependencies = [ 1644 | "bitflags 2.4.2", 1645 | "cfg-if", 1646 | "foreign-types 0.3.2", 1647 | "libc", 1648 | "once_cell", 1649 | "openssl-macros", 1650 | "openssl-sys", 1651 | ] 1652 | 1653 | [[package]] 1654 | name = "openssl-macros" 1655 | version = "0.1.1" 1656 | source = "registry+https://github.com/rust-lang/crates.io-index" 1657 | checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" 1658 | dependencies = [ 1659 | "proc-macro2", 1660 | "quote", 1661 | "syn 2.0.48", 1662 | ] 1663 | 1664 | [[package]] 1665 | name = "openssl-probe" 1666 | version = "0.1.5" 1667 | source = "registry+https://github.com/rust-lang/crates.io-index" 1668 | checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 1669 | 1670 | [[package]] 1671 | name = "openssl-sys" 1672 | version = "0.9.99" 1673 | source = "registry+https://github.com/rust-lang/crates.io-index" 1674 | checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" 1675 | dependencies = [ 1676 | "cc", 1677 | "libc", 1678 | "pkg-config", 1679 | "vcpkg", 1680 | ] 1681 | 1682 | [[package]] 1683 | name = "option-ext" 1684 | version = "0.2.0" 1685 | source = "registry+https://github.com/rust-lang/crates.io-index" 1686 | checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" 1687 | 1688 | [[package]] 1689 | name = "overload" 1690 | version = "0.1.1" 1691 | source = "registry+https://github.com/rust-lang/crates.io-index" 1692 | checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" 1693 | 1694 | [[package]] 1695 | name = "paste" 1696 | version = "1.0.14" 1697 | source = "registry+https://github.com/rust-lang/crates.io-index" 1698 | checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" 1699 | 1700 | [[package]] 1701 | name = "percent-encoding" 1702 | version = "2.3.1" 1703 | source = "registry+https://github.com/rust-lang/crates.io-index" 1704 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 1705 | 1706 | [[package]] 1707 | name = "pin-project-lite" 1708 | version = "0.2.13" 1709 | source = "registry+https://github.com/rust-lang/crates.io-index" 1710 | checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" 1711 | 1712 | [[package]] 1713 | name = "pin-utils" 1714 | version = "0.1.0" 1715 | source = "registry+https://github.com/rust-lang/crates.io-index" 1716 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 1717 | 1718 | [[package]] 1719 | name = "pkg-config" 1720 | version = "0.3.29" 1721 | source = "registry+https://github.com/rust-lang/crates.io-index" 1722 | checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" 1723 | 1724 | [[package]] 1725 | name = "portable-atomic" 1726 | version = "1.6.0" 1727 | source = "registry+https://github.com/rust-lang/crates.io-index" 1728 | checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" 1729 | 1730 | [[package]] 1731 | name = "ppv-lite86" 1732 | version = "0.2.17" 1733 | source = "registry+https://github.com/rust-lang/crates.io-index" 1734 | checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 1735 | 1736 | [[package]] 1737 | name = "proc-macro-error" 1738 | version = "1.0.4" 1739 | source = "registry+https://github.com/rust-lang/crates.io-index" 1740 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 1741 | dependencies = [ 1742 | "proc-macro-error-attr", 1743 | "proc-macro2", 1744 | "quote", 1745 | "syn 1.0.109", 1746 | "version_check", 1747 | ] 1748 | 1749 | [[package]] 1750 | name = "proc-macro-error-attr" 1751 | version = "1.0.4" 1752 | source = "registry+https://github.com/rust-lang/crates.io-index" 1753 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 1754 | dependencies = [ 1755 | "proc-macro2", 1756 | "quote", 1757 | "version_check", 1758 | ] 1759 | 1760 | [[package]] 1761 | name = "proc-macro2" 1762 | version = "1.0.78" 1763 | source = "registry+https://github.com/rust-lang/crates.io-index" 1764 | checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" 1765 | dependencies = [ 1766 | "unicode-ident", 1767 | ] 1768 | 1769 | [[package]] 1770 | name = "pulp" 1771 | version = "0.18.7" 1772 | source = "registry+https://github.com/rust-lang/crates.io-index" 1773 | checksum = "b1618ee89537c2b388d62ac260e124be07c20c2d9f531787a62c4528c485d46c" 1774 | dependencies = [ 1775 | "bytemuck", 1776 | "libm", 1777 | "num-complex", 1778 | "reborrow", 1779 | ] 1780 | 1781 | [[package]] 1782 | name = "quote" 1783 | version = "1.0.35" 1784 | source = "registry+https://github.com/rust-lang/crates.io-index" 1785 | checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" 1786 | dependencies = [ 1787 | "proc-macro2", 1788 | ] 1789 | 1790 | [[package]] 1791 | name = "rand" 1792 | version = "0.8.5" 1793 | source = "registry+https://github.com/rust-lang/crates.io-index" 1794 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 1795 | dependencies = [ 1796 | "libc", 1797 | "rand_chacha", 1798 | "rand_core", 1799 | ] 1800 | 1801 | [[package]] 1802 | name = "rand_chacha" 1803 | version = "0.3.1" 1804 | source = "registry+https://github.com/rust-lang/crates.io-index" 1805 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 1806 | dependencies = [ 1807 | "ppv-lite86", 1808 | "rand_core", 1809 | ] 1810 | 1811 | [[package]] 1812 | name = "rand_core" 1813 | version = "0.6.4" 1814 | source = "registry+https://github.com/rust-lang/crates.io-index" 1815 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 1816 | dependencies = [ 1817 | "getrandom", 1818 | ] 1819 | 1820 | [[package]] 1821 | name = "rand_distr" 1822 | version = "0.4.3" 1823 | source = "registry+https://github.com/rust-lang/crates.io-index" 1824 | checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" 1825 | dependencies = [ 1826 | "num-traits", 1827 | "rand", 1828 | ] 1829 | 1830 | [[package]] 1831 | name = "raw-cpuid" 1832 | version = "10.7.0" 1833 | source = "registry+https://github.com/rust-lang/crates.io-index" 1834 | checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332" 1835 | dependencies = [ 1836 | "bitflags 1.3.2", 1837 | ] 1838 | 1839 | [[package]] 1840 | name = "rayon" 1841 | version = "1.8.1" 1842 | source = "registry+https://github.com/rust-lang/crates.io-index" 1843 | checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" 1844 | dependencies = [ 1845 | "either", 1846 | "rayon-core", 1847 | ] 1848 | 1849 | [[package]] 1850 | name = "rayon-cond" 1851 | version = "0.3.0" 1852 | source = "registry+https://github.com/rust-lang/crates.io-index" 1853 | checksum = "059f538b55efd2309c9794130bc149c6a553db90e9d99c2030785c82f0bd7df9" 1854 | dependencies = [ 1855 | "either", 1856 | "itertools 0.11.0", 1857 | "rayon", 1858 | ] 1859 | 1860 | [[package]] 1861 | name = "rayon-core" 1862 | version = "1.12.1" 1863 | source = "registry+https://github.com/rust-lang/crates.io-index" 1864 | checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" 1865 | dependencies = [ 1866 | "crossbeam-deque", 1867 | "crossbeam-utils", 1868 | ] 1869 | 1870 | [[package]] 1871 | name = "reborrow" 1872 | version = "0.5.5" 1873 | source = "registry+https://github.com/rust-lang/crates.io-index" 1874 | checksum = "03251193000f4bd3b042892be858ee50e8b3719f2b08e5833ac4353724632430" 1875 | 1876 | [[package]] 1877 | name = "redox_syscall" 1878 | version = "0.4.1" 1879 | source = "registry+https://github.com/rust-lang/crates.io-index" 1880 | checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" 1881 | dependencies = [ 1882 | "bitflags 1.3.2", 1883 | ] 1884 | 1885 | [[package]] 1886 | name = "redox_users" 1887 | version = "0.4.4" 1888 | source = "registry+https://github.com/rust-lang/crates.io-index" 1889 | checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" 1890 | dependencies = [ 1891 | "getrandom", 1892 | "libredox", 1893 | "thiserror", 1894 | ] 1895 | 1896 | [[package]] 1897 | name = "regex" 1898 | version = "1.10.3" 1899 | source = "registry+https://github.com/rust-lang/crates.io-index" 1900 | checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" 1901 | dependencies = [ 1902 | "aho-corasick", 1903 | "memchr", 1904 | "regex-automata", 1905 | "regex-syntax", 1906 | ] 1907 | 1908 | [[package]] 1909 | name = "regex-automata" 1910 | version = "0.4.5" 1911 | source = "registry+https://github.com/rust-lang/crates.io-index" 1912 | checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" 1913 | dependencies = [ 1914 | "aho-corasick", 1915 | "memchr", 1916 | "regex-syntax", 1917 | ] 1918 | 1919 | [[package]] 1920 | name = "regex-syntax" 1921 | version = "0.8.2" 1922 | source = "registry+https://github.com/rust-lang/crates.io-index" 1923 | checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" 1924 | 1925 | [[package]] 1926 | name = "reqwest" 1927 | version = "0.11.24" 1928 | source = "registry+https://github.com/rust-lang/crates.io-index" 1929 | checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251" 1930 | dependencies = [ 1931 | "base64 0.21.7", 1932 | "bytes", 1933 | "encoding_rs", 1934 | "futures-core", 1935 | "futures-util", 1936 | "h2", 1937 | "http", 1938 | "http-body", 1939 | "hyper", 1940 | "hyper-tls", 1941 | "ipnet", 1942 | "js-sys", 1943 | "log", 1944 | "mime", 1945 | "native-tls", 1946 | "once_cell", 1947 | "percent-encoding", 1948 | "pin-project-lite", 1949 | "rustls-pemfile", 1950 | "serde", 1951 | "serde_json", 1952 | "serde_urlencoded", 1953 | "sync_wrapper", 1954 | "system-configuration", 1955 | "tokio", 1956 | "tokio-native-tls", 1957 | "tower-service", 1958 | "url", 1959 | "wasm-bindgen", 1960 | "wasm-bindgen-futures", 1961 | "web-sys", 1962 | "winreg", 1963 | ] 1964 | 1965 | [[package]] 1966 | name = "ring" 1967 | version = "0.17.7" 1968 | source = "registry+https://github.com/rust-lang/crates.io-index" 1969 | checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" 1970 | dependencies = [ 1971 | "cc", 1972 | "getrandom", 1973 | "libc", 1974 | "spin", 1975 | "untrusted", 1976 | "windows-sys 0.48.0", 1977 | ] 1978 | 1979 | [[package]] 1980 | name = "rustc-demangle" 1981 | version = "0.1.23" 1982 | source = "registry+https://github.com/rust-lang/crates.io-index" 1983 | checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" 1984 | 1985 | [[package]] 1986 | name = "rustix" 1987 | version = "0.38.31" 1988 | source = "registry+https://github.com/rust-lang/crates.io-index" 1989 | checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" 1990 | dependencies = [ 1991 | "bitflags 2.4.2", 1992 | "errno", 1993 | "libc", 1994 | "linux-raw-sys", 1995 | "windows-sys 0.52.0", 1996 | ] 1997 | 1998 | [[package]] 1999 | name = "rustls" 2000 | version = "0.22.2" 2001 | source = "registry+https://github.com/rust-lang/crates.io-index" 2002 | checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" 2003 | dependencies = [ 2004 | "log", 2005 | "ring", 2006 | "rustls-pki-types", 2007 | "rustls-webpki", 2008 | "subtle", 2009 | "zeroize", 2010 | ] 2011 | 2012 | [[package]] 2013 | name = "rustls-pemfile" 2014 | version = "1.0.4" 2015 | source = "registry+https://github.com/rust-lang/crates.io-index" 2016 | checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" 2017 | dependencies = [ 2018 | "base64 0.21.7", 2019 | ] 2020 | 2021 | [[package]] 2022 | name = "rustls-pki-types" 2023 | version = "1.3.0" 2024 | source = "registry+https://github.com/rust-lang/crates.io-index" 2025 | checksum = "048a63e5b3ac996d78d402940b5fa47973d2d080c6c6fffa1d0f19c4445310b7" 2026 | 2027 | [[package]] 2028 | name = "rustls-webpki" 2029 | version = "0.102.2" 2030 | source = "registry+https://github.com/rust-lang/crates.io-index" 2031 | checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" 2032 | dependencies = [ 2033 | "ring", 2034 | "rustls-pki-types", 2035 | "untrusted", 2036 | ] 2037 | 2038 | [[package]] 2039 | name = "ryu" 2040 | version = "1.0.16" 2041 | source = "registry+https://github.com/rust-lang/crates.io-index" 2042 | checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" 2043 | 2044 | [[package]] 2045 | name = "safetensors" 2046 | version = "0.4.2" 2047 | source = "registry+https://github.com/rust-lang/crates.io-index" 2048 | checksum = "8d980e6bfb34436fb0a81e42bc41af43f11805bbbca443e7f68e9faaabe669ed" 2049 | dependencies = [ 2050 | "serde", 2051 | "serde_json", 2052 | ] 2053 | 2054 | [[package]] 2055 | name = "same-file" 2056 | version = "1.0.6" 2057 | source = "registry+https://github.com/rust-lang/crates.io-index" 2058 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 2059 | dependencies = [ 2060 | "winapi-util", 2061 | ] 2062 | 2063 | [[package]] 2064 | name = "schannel" 2065 | version = "0.1.23" 2066 | source = "registry+https://github.com/rust-lang/crates.io-index" 2067 | checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" 2068 | dependencies = [ 2069 | "windows-sys 0.52.0", 2070 | ] 2071 | 2072 | [[package]] 2073 | name = "security-framework" 2074 | version = "2.9.2" 2075 | source = "registry+https://github.com/rust-lang/crates.io-index" 2076 | checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" 2077 | dependencies = [ 2078 | "bitflags 1.3.2", 2079 | "core-foundation", 2080 | "core-foundation-sys", 2081 | "libc", 2082 | "security-framework-sys", 2083 | ] 2084 | 2085 | [[package]] 2086 | name = "security-framework-sys" 2087 | version = "2.9.1" 2088 | source = "registry+https://github.com/rust-lang/crates.io-index" 2089 | checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" 2090 | dependencies = [ 2091 | "core-foundation-sys", 2092 | "libc", 2093 | ] 2094 | 2095 | [[package]] 2096 | name = "seq-macro" 2097 | version = "0.3.5" 2098 | source = "registry+https://github.com/rust-lang/crates.io-index" 2099 | checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4" 2100 | 2101 | [[package]] 2102 | name = "serde" 2103 | version = "1.0.196" 2104 | source = "registry+https://github.com/rust-lang/crates.io-index" 2105 | checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" 2106 | dependencies = [ 2107 | "serde_derive", 2108 | ] 2109 | 2110 | [[package]] 2111 | name = "serde_derive" 2112 | version = "1.0.196" 2113 | source = "registry+https://github.com/rust-lang/crates.io-index" 2114 | checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" 2115 | dependencies = [ 2116 | "proc-macro2", 2117 | "quote", 2118 | "syn 2.0.48", 2119 | ] 2120 | 2121 | [[package]] 2122 | name = "serde_json" 2123 | version = "1.0.113" 2124 | source = "registry+https://github.com/rust-lang/crates.io-index" 2125 | checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" 2126 | dependencies = [ 2127 | "itoa", 2128 | "ryu", 2129 | "serde", 2130 | ] 2131 | 2132 | [[package]] 2133 | name = "serde_plain" 2134 | version = "1.0.2" 2135 | source = "registry+https://github.com/rust-lang/crates.io-index" 2136 | checksum = "9ce1fc6db65a611022b23a0dec6975d63fb80a302cb3388835ff02c097258d50" 2137 | dependencies = [ 2138 | "serde", 2139 | ] 2140 | 2141 | [[package]] 2142 | name = "serde_urlencoded" 2143 | version = "0.7.1" 2144 | source = "registry+https://github.com/rust-lang/crates.io-index" 2145 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 2146 | dependencies = [ 2147 | "form_urlencoded", 2148 | "itoa", 2149 | "ryu", 2150 | "serde", 2151 | ] 2152 | 2153 | [[package]] 2154 | name = "sha2" 2155 | version = "0.10.8" 2156 | source = "registry+https://github.com/rust-lang/crates.io-index" 2157 | checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" 2158 | dependencies = [ 2159 | "cfg-if", 2160 | "cpufeatures", 2161 | "digest", 2162 | ] 2163 | 2164 | [[package]] 2165 | name = "sharded-slab" 2166 | version = "0.1.7" 2167 | source = "registry+https://github.com/rust-lang/crates.io-index" 2168 | checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" 2169 | dependencies = [ 2170 | "lazy_static", 2171 | ] 2172 | 2173 | [[package]] 2174 | name = "slab" 2175 | version = "0.4.9" 2176 | source = "registry+https://github.com/rust-lang/crates.io-index" 2177 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 2178 | dependencies = [ 2179 | "autocfg", 2180 | ] 2181 | 2182 | [[package]] 2183 | name = "smallvec" 2184 | version = "1.13.1" 2185 | source = "registry+https://github.com/rust-lang/crates.io-index" 2186 | checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" 2187 | 2188 | [[package]] 2189 | name = "socket2" 2190 | version = "0.5.5" 2191 | source = "registry+https://github.com/rust-lang/crates.io-index" 2192 | checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" 2193 | dependencies = [ 2194 | "libc", 2195 | "windows-sys 0.48.0", 2196 | ] 2197 | 2198 | [[package]] 2199 | name = "spin" 2200 | version = "0.9.8" 2201 | source = "registry+https://github.com/rust-lang/crates.io-index" 2202 | checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 2203 | 2204 | [[package]] 2205 | name = "spm_precompiled" 2206 | version = "0.1.4" 2207 | source = "registry+https://github.com/rust-lang/crates.io-index" 2208 | checksum = "5851699c4033c63636f7ea4cf7b7c1f1bf06d0cc03cfb42e711de5a5c46cf326" 2209 | dependencies = [ 2210 | "base64 0.13.1", 2211 | "nom", 2212 | "serde", 2213 | "unicode-segmentation", 2214 | ] 2215 | 2216 | [[package]] 2217 | name = "stable_deref_trait" 2218 | version = "1.2.0" 2219 | source = "registry+https://github.com/rust-lang/crates.io-index" 2220 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 2221 | 2222 | [[package]] 2223 | name = "strsim" 2224 | version = "0.10.0" 2225 | source = "registry+https://github.com/rust-lang/crates.io-index" 2226 | checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" 2227 | 2228 | [[package]] 2229 | name = "strsim" 2230 | version = "0.11.0" 2231 | source = "registry+https://github.com/rust-lang/crates.io-index" 2232 | checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" 2233 | 2234 | [[package]] 2235 | name = "subtle" 2236 | version = "2.5.0" 2237 | source = "registry+https://github.com/rust-lang/crates.io-index" 2238 | checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" 2239 | 2240 | [[package]] 2241 | name = "syn" 2242 | version = "1.0.109" 2243 | source = "registry+https://github.com/rust-lang/crates.io-index" 2244 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 2245 | dependencies = [ 2246 | "proc-macro2", 2247 | "quote", 2248 | "unicode-ident", 2249 | ] 2250 | 2251 | [[package]] 2252 | name = "syn" 2253 | version = "2.0.48" 2254 | source = "registry+https://github.com/rust-lang/crates.io-index" 2255 | checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" 2256 | dependencies = [ 2257 | "proc-macro2", 2258 | "quote", 2259 | "unicode-ident", 2260 | ] 2261 | 2262 | [[package]] 2263 | name = "sync_wrapper" 2264 | version = "0.1.2" 2265 | source = "registry+https://github.com/rust-lang/crates.io-index" 2266 | checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" 2267 | 2268 | [[package]] 2269 | name = "synstructure" 2270 | version = "0.13.1" 2271 | source = "registry+https://github.com/rust-lang/crates.io-index" 2272 | checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" 2273 | dependencies = [ 2274 | "proc-macro2", 2275 | "quote", 2276 | "syn 2.0.48", 2277 | ] 2278 | 2279 | [[package]] 2280 | name = "sysctl" 2281 | version = "0.5.5" 2282 | source = "registry+https://github.com/rust-lang/crates.io-index" 2283 | checksum = "ec7dddc5f0fee506baf8b9fdb989e242f17e4b11c61dfbb0635b705217199eea" 2284 | dependencies = [ 2285 | "bitflags 2.4.2", 2286 | "byteorder", 2287 | "enum-as-inner", 2288 | "libc", 2289 | "thiserror", 2290 | "walkdir", 2291 | ] 2292 | 2293 | [[package]] 2294 | name = "system-configuration" 2295 | version = "0.5.1" 2296 | source = "registry+https://github.com/rust-lang/crates.io-index" 2297 | checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" 2298 | dependencies = [ 2299 | "bitflags 1.3.2", 2300 | "core-foundation", 2301 | "system-configuration-sys", 2302 | ] 2303 | 2304 | [[package]] 2305 | name = "system-configuration-sys" 2306 | version = "0.5.0" 2307 | source = "registry+https://github.com/rust-lang/crates.io-index" 2308 | checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" 2309 | dependencies = [ 2310 | "core-foundation-sys", 2311 | "libc", 2312 | ] 2313 | 2314 | [[package]] 2315 | name = "tar" 2316 | version = "0.4.40" 2317 | source = "registry+https://github.com/rust-lang/crates.io-index" 2318 | checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" 2319 | dependencies = [ 2320 | "filetime", 2321 | "libc", 2322 | "xattr", 2323 | ] 2324 | 2325 | [[package]] 2326 | name = "tempfile" 2327 | version = "3.10.0" 2328 | source = "registry+https://github.com/rust-lang/crates.io-index" 2329 | checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" 2330 | dependencies = [ 2331 | "cfg-if", 2332 | "fastrand", 2333 | "rustix", 2334 | "windows-sys 0.52.0", 2335 | ] 2336 | 2337 | [[package]] 2338 | name = "thiserror" 2339 | version = "1.0.57" 2340 | source = "registry+https://github.com/rust-lang/crates.io-index" 2341 | checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" 2342 | dependencies = [ 2343 | "thiserror-impl", 2344 | ] 2345 | 2346 | [[package]] 2347 | name = "thiserror-impl" 2348 | version = "1.0.57" 2349 | source = "registry+https://github.com/rust-lang/crates.io-index" 2350 | checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" 2351 | dependencies = [ 2352 | "proc-macro2", 2353 | "quote", 2354 | "syn 2.0.48", 2355 | ] 2356 | 2357 | [[package]] 2358 | name = "thread_local" 2359 | version = "1.1.7" 2360 | source = "registry+https://github.com/rust-lang/crates.io-index" 2361 | checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" 2362 | dependencies = [ 2363 | "cfg-if", 2364 | "once_cell", 2365 | ] 2366 | 2367 | [[package]] 2368 | name = "tinyvec" 2369 | version = "1.6.0" 2370 | source = "registry+https://github.com/rust-lang/crates.io-index" 2371 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 2372 | dependencies = [ 2373 | "tinyvec_macros", 2374 | ] 2375 | 2376 | [[package]] 2377 | name = "tinyvec_macros" 2378 | version = "0.1.1" 2379 | source = "registry+https://github.com/rust-lang/crates.io-index" 2380 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 2381 | 2382 | [[package]] 2383 | name = "tokenizers" 2384 | version = "0.15.2" 2385 | source = "registry+https://github.com/rust-lang/crates.io-index" 2386 | checksum = "3dd47962b0ba36e7fd33518fbf1754d136fd1474000162bbf2a8b5fcb2d3654d" 2387 | dependencies = [ 2388 | "aho-corasick", 2389 | "derive_builder 0.12.0", 2390 | "esaxx-rs", 2391 | "getrandom", 2392 | "itertools 0.12.1", 2393 | "lazy_static", 2394 | "log", 2395 | "macro_rules_attribute", 2396 | "monostate", 2397 | "onig", 2398 | "paste", 2399 | "rand", 2400 | "rayon", 2401 | "rayon-cond", 2402 | "regex", 2403 | "regex-syntax", 2404 | "serde", 2405 | "serde_json", 2406 | "spm_precompiled", 2407 | "thiserror", 2408 | "unicode-normalization-alignments", 2409 | "unicode-segmentation", 2410 | "unicode_categories", 2411 | ] 2412 | 2413 | [[package]] 2414 | name = "tokio" 2415 | version = "1.36.0" 2416 | source = "registry+https://github.com/rust-lang/crates.io-index" 2417 | checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" 2418 | dependencies = [ 2419 | "backtrace", 2420 | "bytes", 2421 | "libc", 2422 | "mio", 2423 | "num_cpus", 2424 | "pin-project-lite", 2425 | "socket2", 2426 | "tokio-macros", 2427 | "windows-sys 0.48.0", 2428 | ] 2429 | 2430 | [[package]] 2431 | name = "tokio-macros" 2432 | version = "2.2.0" 2433 | source = "registry+https://github.com/rust-lang/crates.io-index" 2434 | checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" 2435 | dependencies = [ 2436 | "proc-macro2", 2437 | "quote", 2438 | "syn 2.0.48", 2439 | ] 2440 | 2441 | [[package]] 2442 | name = "tokio-native-tls" 2443 | version = "0.3.1" 2444 | source = "registry+https://github.com/rust-lang/crates.io-index" 2445 | checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" 2446 | dependencies = [ 2447 | "native-tls", 2448 | "tokio", 2449 | ] 2450 | 2451 | [[package]] 2452 | name = "tokio-util" 2453 | version = "0.7.10" 2454 | source = "registry+https://github.com/rust-lang/crates.io-index" 2455 | checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" 2456 | dependencies = [ 2457 | "bytes", 2458 | "futures-core", 2459 | "futures-sink", 2460 | "pin-project-lite", 2461 | "tokio", 2462 | "tracing", 2463 | ] 2464 | 2465 | [[package]] 2466 | name = "toml" 2467 | version = "0.5.11" 2468 | source = "registry+https://github.com/rust-lang/crates.io-index" 2469 | checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" 2470 | dependencies = [ 2471 | "serde", 2472 | ] 2473 | 2474 | [[package]] 2475 | name = "tower-service" 2476 | version = "0.3.2" 2477 | source = "registry+https://github.com/rust-lang/crates.io-index" 2478 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 2479 | 2480 | [[package]] 2481 | name = "tracing" 2482 | version = "0.1.40" 2483 | source = "registry+https://github.com/rust-lang/crates.io-index" 2484 | checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 2485 | dependencies = [ 2486 | "pin-project-lite", 2487 | "tracing-attributes", 2488 | "tracing-core", 2489 | ] 2490 | 2491 | [[package]] 2492 | name = "tracing-attributes" 2493 | version = "0.1.27" 2494 | source = "registry+https://github.com/rust-lang/crates.io-index" 2495 | checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" 2496 | dependencies = [ 2497 | "proc-macro2", 2498 | "quote", 2499 | "syn 2.0.48", 2500 | ] 2501 | 2502 | [[package]] 2503 | name = "tracing-chrome" 2504 | version = "0.7.1" 2505 | source = "registry+https://github.com/rust-lang/crates.io-index" 2506 | checksum = "496b3cd5447f7ff527bbbf19b071ad542a000adf297d4127078b4dfdb931f41a" 2507 | dependencies = [ 2508 | "serde_json", 2509 | "tracing-core", 2510 | "tracing-subscriber", 2511 | ] 2512 | 2513 | [[package]] 2514 | name = "tracing-core" 2515 | version = "0.1.32" 2516 | source = "registry+https://github.com/rust-lang/crates.io-index" 2517 | checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" 2518 | dependencies = [ 2519 | "once_cell", 2520 | "valuable", 2521 | ] 2522 | 2523 | [[package]] 2524 | name = "tracing-log" 2525 | version = "0.2.0" 2526 | source = "registry+https://github.com/rust-lang/crates.io-index" 2527 | checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" 2528 | dependencies = [ 2529 | "log", 2530 | "once_cell", 2531 | "tracing-core", 2532 | ] 2533 | 2534 | [[package]] 2535 | name = "tracing-subscriber" 2536 | version = "0.3.18" 2537 | source = "registry+https://github.com/rust-lang/crates.io-index" 2538 | checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" 2539 | dependencies = [ 2540 | "nu-ansi-term", 2541 | "sharded-slab", 2542 | "smallvec", 2543 | "thread_local", 2544 | "tracing-core", 2545 | "tracing-log", 2546 | ] 2547 | 2548 | [[package]] 2549 | name = "try-lock" 2550 | version = "0.2.5" 2551 | source = "registry+https://github.com/rust-lang/crates.io-index" 2552 | checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 2553 | 2554 | [[package]] 2555 | name = "typenum" 2556 | version = "1.17.0" 2557 | source = "registry+https://github.com/rust-lang/crates.io-index" 2558 | checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" 2559 | 2560 | [[package]] 2561 | name = "unicode-bidi" 2562 | version = "0.3.15" 2563 | source = "registry+https://github.com/rust-lang/crates.io-index" 2564 | checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" 2565 | 2566 | [[package]] 2567 | name = "unicode-ident" 2568 | version = "1.0.12" 2569 | source = "registry+https://github.com/rust-lang/crates.io-index" 2570 | checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" 2571 | 2572 | [[package]] 2573 | name = "unicode-normalization" 2574 | version = "0.1.22" 2575 | source = "registry+https://github.com/rust-lang/crates.io-index" 2576 | checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 2577 | dependencies = [ 2578 | "tinyvec", 2579 | ] 2580 | 2581 | [[package]] 2582 | name = "unicode-normalization-alignments" 2583 | version = "0.1.12" 2584 | source = "registry+https://github.com/rust-lang/crates.io-index" 2585 | checksum = "43f613e4fa046e69818dd287fdc4bc78175ff20331479dab6e1b0f98d57062de" 2586 | dependencies = [ 2587 | "smallvec", 2588 | ] 2589 | 2590 | [[package]] 2591 | name = "unicode-segmentation" 2592 | version = "1.11.0" 2593 | source = "registry+https://github.com/rust-lang/crates.io-index" 2594 | checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" 2595 | 2596 | [[package]] 2597 | name = "unicode-width" 2598 | version = "0.1.11" 2599 | source = "registry+https://github.com/rust-lang/crates.io-index" 2600 | checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" 2601 | 2602 | [[package]] 2603 | name = "unicode_categories" 2604 | version = "0.1.1" 2605 | source = "registry+https://github.com/rust-lang/crates.io-index" 2606 | checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" 2607 | 2608 | [[package]] 2609 | name = "untrusted" 2610 | version = "0.9.0" 2611 | source = "registry+https://github.com/rust-lang/crates.io-index" 2612 | checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 2613 | 2614 | [[package]] 2615 | name = "ureq" 2616 | version = "2.9.5" 2617 | source = "registry+https://github.com/rust-lang/crates.io-index" 2618 | checksum = "0b52731d03d6bb2fd18289d4028aee361d6c28d44977846793b994b13cdcc64d" 2619 | dependencies = [ 2620 | "base64 0.21.7", 2621 | "flate2", 2622 | "hootbin", 2623 | "log", 2624 | "native-tls", 2625 | "once_cell", 2626 | "rustls", 2627 | "rustls-pki-types", 2628 | "rustls-webpki", 2629 | "serde", 2630 | "serde_json", 2631 | "url", 2632 | "webpki-roots", 2633 | ] 2634 | 2635 | [[package]] 2636 | name = "url" 2637 | version = "2.5.0" 2638 | source = "registry+https://github.com/rust-lang/crates.io-index" 2639 | checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" 2640 | dependencies = [ 2641 | "form_urlencoded", 2642 | "idna", 2643 | "percent-encoding", 2644 | ] 2645 | 2646 | [[package]] 2647 | name = "utf8parse" 2648 | version = "0.2.1" 2649 | source = "registry+https://github.com/rust-lang/crates.io-index" 2650 | checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" 2651 | 2652 | [[package]] 2653 | name = "uuid" 2654 | version = "1.7.0" 2655 | source = "registry+https://github.com/rust-lang/crates.io-index" 2656 | checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a" 2657 | dependencies = [ 2658 | "getrandom", 2659 | ] 2660 | 2661 | [[package]] 2662 | name = "valuable" 2663 | version = "0.1.0" 2664 | source = "registry+https://github.com/rust-lang/crates.io-index" 2665 | checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" 2666 | 2667 | [[package]] 2668 | name = "vcpkg" 2669 | version = "0.2.15" 2670 | source = "registry+https://github.com/rust-lang/crates.io-index" 2671 | checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 2672 | 2673 | [[package]] 2674 | name = "version_check" 2675 | version = "0.9.4" 2676 | source = "registry+https://github.com/rust-lang/crates.io-index" 2677 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 2678 | 2679 | [[package]] 2680 | name = "walkdir" 2681 | version = "2.4.0" 2682 | source = "registry+https://github.com/rust-lang/crates.io-index" 2683 | checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" 2684 | dependencies = [ 2685 | "same-file", 2686 | "winapi-util", 2687 | ] 2688 | 2689 | [[package]] 2690 | name = "want" 2691 | version = "0.3.1" 2692 | source = "registry+https://github.com/rust-lang/crates.io-index" 2693 | checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 2694 | dependencies = [ 2695 | "try-lock", 2696 | ] 2697 | 2698 | [[package]] 2699 | name = "wasi" 2700 | version = "0.11.0+wasi-snapshot-preview1" 2701 | source = "registry+https://github.com/rust-lang/crates.io-index" 2702 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 2703 | 2704 | [[package]] 2705 | name = "wasm-bindgen" 2706 | version = "0.2.91" 2707 | source = "registry+https://github.com/rust-lang/crates.io-index" 2708 | checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" 2709 | dependencies = [ 2710 | "cfg-if", 2711 | "wasm-bindgen-macro", 2712 | ] 2713 | 2714 | [[package]] 2715 | name = "wasm-bindgen-backend" 2716 | version = "0.2.91" 2717 | source = "registry+https://github.com/rust-lang/crates.io-index" 2718 | checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" 2719 | dependencies = [ 2720 | "bumpalo", 2721 | "log", 2722 | "once_cell", 2723 | "proc-macro2", 2724 | "quote", 2725 | "syn 2.0.48", 2726 | "wasm-bindgen-shared", 2727 | ] 2728 | 2729 | [[package]] 2730 | name = "wasm-bindgen-futures" 2731 | version = "0.4.41" 2732 | source = "registry+https://github.com/rust-lang/crates.io-index" 2733 | checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97" 2734 | dependencies = [ 2735 | "cfg-if", 2736 | "js-sys", 2737 | "wasm-bindgen", 2738 | "web-sys", 2739 | ] 2740 | 2741 | [[package]] 2742 | name = "wasm-bindgen-macro" 2743 | version = "0.2.91" 2744 | source = "registry+https://github.com/rust-lang/crates.io-index" 2745 | checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" 2746 | dependencies = [ 2747 | "quote", 2748 | "wasm-bindgen-macro-support", 2749 | ] 2750 | 2751 | [[package]] 2752 | name = "wasm-bindgen-macro-support" 2753 | version = "0.2.91" 2754 | source = "registry+https://github.com/rust-lang/crates.io-index" 2755 | checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" 2756 | dependencies = [ 2757 | "proc-macro2", 2758 | "quote", 2759 | "syn 2.0.48", 2760 | "wasm-bindgen-backend", 2761 | "wasm-bindgen-shared", 2762 | ] 2763 | 2764 | [[package]] 2765 | name = "wasm-bindgen-shared" 2766 | version = "0.2.91" 2767 | source = "registry+https://github.com/rust-lang/crates.io-index" 2768 | checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" 2769 | 2770 | [[package]] 2771 | name = "web-sys" 2772 | version = "0.3.68" 2773 | source = "registry+https://github.com/rust-lang/crates.io-index" 2774 | checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" 2775 | dependencies = [ 2776 | "js-sys", 2777 | "wasm-bindgen", 2778 | ] 2779 | 2780 | [[package]] 2781 | name = "webpki-roots" 2782 | version = "0.26.1" 2783 | source = "registry+https://github.com/rust-lang/crates.io-index" 2784 | checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009" 2785 | dependencies = [ 2786 | "rustls-pki-types", 2787 | ] 2788 | 2789 | [[package]] 2790 | name = "winapi" 2791 | version = "0.3.9" 2792 | source = "registry+https://github.com/rust-lang/crates.io-index" 2793 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 2794 | dependencies = [ 2795 | "winapi-i686-pc-windows-gnu", 2796 | "winapi-x86_64-pc-windows-gnu", 2797 | ] 2798 | 2799 | [[package]] 2800 | name = "winapi-i686-pc-windows-gnu" 2801 | version = "0.4.0" 2802 | source = "registry+https://github.com/rust-lang/crates.io-index" 2803 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 2804 | 2805 | [[package]] 2806 | name = "winapi-util" 2807 | version = "0.1.6" 2808 | source = "registry+https://github.com/rust-lang/crates.io-index" 2809 | checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" 2810 | dependencies = [ 2811 | "winapi", 2812 | ] 2813 | 2814 | [[package]] 2815 | name = "winapi-x86_64-pc-windows-gnu" 2816 | version = "0.4.0" 2817 | source = "registry+https://github.com/rust-lang/crates.io-index" 2818 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 2819 | 2820 | [[package]] 2821 | name = "windows-core" 2822 | version = "0.52.0" 2823 | source = "registry+https://github.com/rust-lang/crates.io-index" 2824 | checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" 2825 | dependencies = [ 2826 | "windows-targets 0.52.0", 2827 | ] 2828 | 2829 | [[package]] 2830 | name = "windows-sys" 2831 | version = "0.48.0" 2832 | source = "registry+https://github.com/rust-lang/crates.io-index" 2833 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 2834 | dependencies = [ 2835 | "windows-targets 0.48.5", 2836 | ] 2837 | 2838 | [[package]] 2839 | name = "windows-sys" 2840 | version = "0.52.0" 2841 | source = "registry+https://github.com/rust-lang/crates.io-index" 2842 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 2843 | dependencies = [ 2844 | "windows-targets 0.52.0", 2845 | ] 2846 | 2847 | [[package]] 2848 | name = "windows-targets" 2849 | version = "0.48.5" 2850 | source = "registry+https://github.com/rust-lang/crates.io-index" 2851 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 2852 | dependencies = [ 2853 | "windows_aarch64_gnullvm 0.48.5", 2854 | "windows_aarch64_msvc 0.48.5", 2855 | "windows_i686_gnu 0.48.5", 2856 | "windows_i686_msvc 0.48.5", 2857 | "windows_x86_64_gnu 0.48.5", 2858 | "windows_x86_64_gnullvm 0.48.5", 2859 | "windows_x86_64_msvc 0.48.5", 2860 | ] 2861 | 2862 | [[package]] 2863 | name = "windows-targets" 2864 | version = "0.52.0" 2865 | source = "registry+https://github.com/rust-lang/crates.io-index" 2866 | checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" 2867 | dependencies = [ 2868 | "windows_aarch64_gnullvm 0.52.0", 2869 | "windows_aarch64_msvc 0.52.0", 2870 | "windows_i686_gnu 0.52.0", 2871 | "windows_i686_msvc 0.52.0", 2872 | "windows_x86_64_gnu 0.52.0", 2873 | "windows_x86_64_gnullvm 0.52.0", 2874 | "windows_x86_64_msvc 0.52.0", 2875 | ] 2876 | 2877 | [[package]] 2878 | name = "windows_aarch64_gnullvm" 2879 | version = "0.48.5" 2880 | source = "registry+https://github.com/rust-lang/crates.io-index" 2881 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 2882 | 2883 | [[package]] 2884 | name = "windows_aarch64_gnullvm" 2885 | version = "0.52.0" 2886 | source = "registry+https://github.com/rust-lang/crates.io-index" 2887 | checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" 2888 | 2889 | [[package]] 2890 | name = "windows_aarch64_msvc" 2891 | version = "0.48.5" 2892 | source = "registry+https://github.com/rust-lang/crates.io-index" 2893 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 2894 | 2895 | [[package]] 2896 | name = "windows_aarch64_msvc" 2897 | version = "0.52.0" 2898 | source = "registry+https://github.com/rust-lang/crates.io-index" 2899 | checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" 2900 | 2901 | [[package]] 2902 | name = "windows_i686_gnu" 2903 | version = "0.48.5" 2904 | source = "registry+https://github.com/rust-lang/crates.io-index" 2905 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 2906 | 2907 | [[package]] 2908 | name = "windows_i686_gnu" 2909 | version = "0.52.0" 2910 | source = "registry+https://github.com/rust-lang/crates.io-index" 2911 | checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" 2912 | 2913 | [[package]] 2914 | name = "windows_i686_msvc" 2915 | version = "0.48.5" 2916 | source = "registry+https://github.com/rust-lang/crates.io-index" 2917 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 2918 | 2919 | [[package]] 2920 | name = "windows_i686_msvc" 2921 | version = "0.52.0" 2922 | source = "registry+https://github.com/rust-lang/crates.io-index" 2923 | checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" 2924 | 2925 | [[package]] 2926 | name = "windows_x86_64_gnu" 2927 | version = "0.48.5" 2928 | source = "registry+https://github.com/rust-lang/crates.io-index" 2929 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 2930 | 2931 | [[package]] 2932 | name = "windows_x86_64_gnu" 2933 | version = "0.52.0" 2934 | source = "registry+https://github.com/rust-lang/crates.io-index" 2935 | checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" 2936 | 2937 | [[package]] 2938 | name = "windows_x86_64_gnullvm" 2939 | version = "0.48.5" 2940 | source = "registry+https://github.com/rust-lang/crates.io-index" 2941 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 2942 | 2943 | [[package]] 2944 | name = "windows_x86_64_gnullvm" 2945 | version = "0.52.0" 2946 | source = "registry+https://github.com/rust-lang/crates.io-index" 2947 | checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" 2948 | 2949 | [[package]] 2950 | name = "windows_x86_64_msvc" 2951 | version = "0.48.5" 2952 | source = "registry+https://github.com/rust-lang/crates.io-index" 2953 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 2954 | 2955 | [[package]] 2956 | name = "windows_x86_64_msvc" 2957 | version = "0.52.0" 2958 | source = "registry+https://github.com/rust-lang/crates.io-index" 2959 | checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" 2960 | 2961 | [[package]] 2962 | name = "winreg" 2963 | version = "0.50.0" 2964 | source = "registry+https://github.com/rust-lang/crates.io-index" 2965 | checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" 2966 | dependencies = [ 2967 | "cfg-if", 2968 | "windows-sys 0.48.0", 2969 | ] 2970 | 2971 | [[package]] 2972 | name = "xattr" 2973 | version = "1.3.1" 2974 | source = "registry+https://github.com/rust-lang/crates.io-index" 2975 | checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" 2976 | dependencies = [ 2977 | "libc", 2978 | "linux-raw-sys", 2979 | "rustix", 2980 | ] 2981 | 2982 | [[package]] 2983 | name = "yoke" 2984 | version = "0.7.3" 2985 | source = "registry+https://github.com/rust-lang/crates.io-index" 2986 | checksum = "65e71b2e4f287f467794c671e2b8f8a5f3716b3c829079a1c44740148eff07e4" 2987 | dependencies = [ 2988 | "serde", 2989 | "stable_deref_trait", 2990 | "yoke-derive", 2991 | "zerofrom", 2992 | ] 2993 | 2994 | [[package]] 2995 | name = "yoke-derive" 2996 | version = "0.7.3" 2997 | source = "registry+https://github.com/rust-lang/crates.io-index" 2998 | checksum = "9e6936f0cce458098a201c245a11bef556c6a0181129c7034d10d76d1ec3a2b8" 2999 | dependencies = [ 3000 | "proc-macro2", 3001 | "quote", 3002 | "syn 2.0.48", 3003 | "synstructure", 3004 | ] 3005 | 3006 | [[package]] 3007 | name = "zerofrom" 3008 | version = "0.1.3" 3009 | source = "registry+https://github.com/rust-lang/crates.io-index" 3010 | checksum = "655b0814c5c0b19ade497851070c640773304939a6c0fd5f5fb43da0696d05b7" 3011 | dependencies = [ 3012 | "zerofrom-derive", 3013 | ] 3014 | 3015 | [[package]] 3016 | name = "zerofrom-derive" 3017 | version = "0.1.3" 3018 | source = "registry+https://github.com/rust-lang/crates.io-index" 3019 | checksum = "e6a647510471d372f2e6c2e6b7219e44d8c574d24fdc11c610a61455782f18c3" 3020 | dependencies = [ 3021 | "proc-macro2", 3022 | "quote", 3023 | "syn 2.0.48", 3024 | "synstructure", 3025 | ] 3026 | 3027 | [[package]] 3028 | name = "zeroize" 3029 | version = "1.7.0" 3030 | source = "registry+https://github.com/rust-lang/crates.io-index" 3031 | checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" 3032 | 3033 | [[package]] 3034 | name = "zip" 3035 | version = "0.6.6" 3036 | source = "registry+https://github.com/rust-lang/crates.io-index" 3037 | checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" 3038 | dependencies = [ 3039 | "byteorder", 3040 | "crc32fast", 3041 | "crossbeam-utils", 3042 | ] 3043 | --------------------------------------------------------------------------------