├── assets └── example.gif ├── .gitignore ├── uninstall.sh ├── helix-driver ├── Cargo.toml ├── src │ └── main.rs └── Cargo.lock ├── LICENSE ├── install.sh ├── README.md └── helix_zsh.zsh /assets/example.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/john-h-k/helix-zsh/HEAD/assets/example.gif -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Generated by Cargo 2 | # will have compiled files and executables 3 | debug/ 4 | target/ 5 | 6 | *.log 7 | 8 | # These are backup files generated by rustfmt 9 | **/*.rs.bk 10 | 11 | # MSVC Windows builds of rustc generate these, which store debugging information 12 | *.pdb 13 | 14 | # RustRover 15 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can 16 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore 17 | # and can be added to the global gitignore or merged into this file. For a more nuclear 18 | # option (not recommended) you can uncomment the following to ignore the entire idea folder. 19 | #.idea/ 20 | -------------------------------------------------------------------------------- /uninstall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/zsh 2 | 3 | if [[ "$ZSH_EVAL_CONTEXT" != *:file ]]; then 4 | echo "This script must be sourced, not executed." 5 | return 1 2>/dev/null || exit 1 6 | fi 7 | 8 | _hx_zsh_uninstall() { 9 | echo "Uninstalling driver..." 10 | 11 | cargo uninstall helix-driver 12 | 13 | echo "Driver uninstalled" 14 | 15 | if [ -n "$ZSH_CUSTOM" ]; then 16 | echo "Uninstalling zsh plugin..." 17 | rm -rf "$ZSH_CUSTOM/plugins/helix-zsh" 18 | 19 | omz plugin disable helix-zsh 20 | echo "Uninstalled from '$ZSH_CUSTOM/plugins/helix-zsh'" 21 | else 22 | echo "The driver is uninstalled and helix-zsh will not run" 23 | echo "However, you will need to manually remove the 'helix_zsh.zsh' file as it was not installed via the installer" 24 | fi 25 | 26 | echo "Installation complete!" 27 | } 28 | 29 | _hx_zsh_uninstall 30 | 31 | unset -f _hx_zsh_uninstall 32 | -------------------------------------------------------------------------------- /helix-driver/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "helix-driver" 3 | version = "0.1.0" 4 | edition = "2021" 5 | description = "Driver for building helix-compatible keybindings" 6 | license = "MIT" 7 | repository = "https://github.com/john-h-k/helix-zsh" 8 | authors = ["John Harry Kelly "] 9 | 10 | 11 | [dependencies] 12 | arc-swap = "1.7.1" 13 | clap = { version = "4.5.27", features = ["derive"] } 14 | 15 | helix-core = { git = "https://github.com/helix-editor/helix.git" } 16 | helix-view = { git = "https://github.com/helix-editor/helix.git" } 17 | helix-loader = { git = "https://github.com/helix-editor/helix.git" } 18 | helix-term = { git = "https://github.com/helix-editor/helix.git" } 19 | helix-event = { git = "https://github.com/helix-editor/helix.git" } 20 | 21 | toml = "0.8.19" 22 | tokio = { version = "1.43.0", features = ["io-util"] } 23 | anyhow = "1.0.95" 24 | env_logger = "0.11.6" 25 | log = "0.4.25" 26 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 John Kelly 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/zsh 2 | 3 | if [[ "$ZSH_EVAL_CONTEXT" != *:file ]]; then 4 | echo "This script must be sourced, not executed." 5 | return 1 2>/dev/null || exit 1 6 | fi 7 | 8 | _hx_zsh_install() { 9 | echo "Installing driver..." 10 | 11 | local flags=() 12 | if [[ -n "$HELIX_ZSH_HELIX_REPO_USER" ]]; then 13 | echo "Using helix repo 'https://github.com/$HELIX_ZSH_HELIX_REPO_USER/helix'" 14 | local deps=( 15 | helix-core 16 | helix-view 17 | helix-loader 18 | helix-term 19 | helix-event 20 | ) 21 | 22 | for dep in "${deps[@]}"; do 23 | flags+=( 24 | --config 25 | "patch.'https://github.com/helix-editor/helix'.'$dep'.git = 'https://github.com/$HELIX_ZSH_HELIX_REPO_USER/helix.git'" 26 | ) 27 | done 28 | else 29 | echo "Using default helix repo 'https://github.com/helix-editor/helix'" 30 | fi 31 | 32 | if ! cargo install "${flags[@]}" --path "$(dirname "$0")/helix-driver"; then 33 | echo "driver install failed!" 34 | return 1 35 | fi 36 | 37 | echo "Driver installed" 38 | 39 | if [ -n "$ZSH_CUSTOM" ]; then 40 | echo "Installing zsh plugin..." 41 | mkdir -p "$ZSH_CUSTOM/plugins/helix-zsh" 42 | 43 | cp helix_zsh.zsh "$ZSH_CUSTOM/plugins/helix-zsh/helix-zsh.plugin.zsh" 44 | 45 | omz plugin enable helix-zsh 46 | echo "Installed as zsh plugin 'helix-zsh'" 47 | else 48 | echo "The '\$ZSH_CUSTOM' variable could not be found" 49 | echo "Manually place the 'helix_zsh.zsh' file where you would like it, and 'source ' it within your '.zshrc' file" 50 | fi 51 | 52 | echo "Installation complete!" 53 | } 54 | 55 | _hx_zsh_install 56 | 57 | unset -f _hx_zsh_install 58 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # helix-zsh 2 | 3 | Helix bindings for zsh. 4 | 5 | ZSH contains in-built vim/emacs style bindings, and this repo is built to provide the same experience with Helix bindings. Unlike other implementations,it respects your Helix config, custom keybindings, and automatically incorporates new Helix features. 6 | 7 | ![Example usage](./assets/example.gif) 8 | 9 | > [!WARNING] 10 | > This is intentionally not tied to a helix version so that it keeps updating. This means it will occasionally break when various Helix config structs change. If this occurs, feel free to open a PR that fixes it (often it is just a 1 or 2 line change), or open an issue with the full build error. I try to get to it quick-ish but am quite busy at the moment! 11 | 12 | Requirements: 13 | 14 | * Rust toolchain 15 | - Needed to build and install the driver 16 | * Zsh 17 | - ... 18 | * [Optional] [oh-my-zsh](https://ohmyz.sh) 19 | - Install script will automatically configure it as a plugin 20 | 21 | 22 | It has two components: 23 | 24 | * [`helix_zsh.zsh`](helix_zsh.zsh) 25 | - This script creates the keymaps and handles input/output via the driver 26 | * [helix-driver](helix-driver) 27 | - This is a rust program which spins up a hidden instance of Helix 28 | - This is a different approach to other shell bindings (e.g `zsh-vi-mode`), but it means: 29 | - Your helix config file is respected 30 | - Updates to helix just require a driver rebuild rather than adding new mappings 31 | 32 | ### Known problems 33 | 34 | * Movement to end-of-line does not work as we strip trailing newline 35 | * Clipboard behaviour can occasionally be inconsistent (but generally works) 36 | * Deleting single characters can cause zsh re-render - doesn't break anything but visually jarring 37 | * Use of `coproc` causes process-id to flash on screen when driver starts 38 | - I haven't found a way to suppress this or a better alternative. Would love to find one 39 | - In certain scenarios, `terminated _hx_driver` will show for the same reason (it is then automatically restarted) 40 | - These are purely visual problems and don't affect functionality 41 | * Autocomplete menu for some tools fails 42 | 43 | All the shell scripts bits should be namespaced enough to prevent any problems. 44 | Please open an issue if you find any other bugs. 45 | 46 | Note on terminal usability: 47 | 48 | `hx-zsh` _should_ automagically terminate itself and revert back to defaults when any glitches occur (driver vanishes, driver can't be executed, etc). I've been using it for a few months and never hit an issue that prevents all input to the terminal. If it does not, and this leaves the terminal in a weird state, this is a bug and opening an issue for it would be greatly appreciated. In the unlikely scenario it happens to you, there are a few ways to try and reset things: 49 | 50 | * If you can input any characters, deleting the helix-driver executable and reloading the shell should cause it to auto-disable 51 | * If you cannot, then using another editor/tool to disable where you `source` the plugin is the best bet 52 | 53 | # Installing & using 54 | 55 | How to use: 56 | 57 | > [!NOTE] 58 | > The installer will add the plugin if oh-my-zsh is used for plugin management 59 | > If not, you must manually place [`helix_zsh.zsh`](helix_zsh.zsh) somewhere and `source ` in your `.zshrc` 60 | 61 | > [!NOTE] 62 | > Install can be a touch slow as it has to build helix itself 63 | 64 | 1. Clone 65 | 2. Run `source install.sh` 66 | 67 | If you wish to use a custom repo of helix, set the `HELIX_ZSH_HELIX_REPO_USER` variable to the github username of the repo before install. For example, I use: 68 | 69 | ```zsh 70 | HELIX_ZSH_HELIX_REPO_USER="john-h-k" source install.sh 71 | ``` 72 | 73 | to install against my fork of helix. 74 | 75 | This should be enough for everything to work, but if it doesn't, reload your shell. 76 | You can do a quick check by typing `foo`, then your 'enter-normal-mode' key, then `b`, and you should see `foo` be highlighted as it would if you made this movement in Helix. 77 | 78 | The `hx-zsh` function can be used to check info about the plugin. Run `hx-zsh --help` for more details. 79 | 80 | 4. Optionally, if you use powerlevel10k, add this code to your powerlevel10k (`p10k.zsh`) file to get different characters for different modes: 81 | 82 | ```sh 83 | function prompt_hx_mode() { 84 | # will display '❯' for insert mode, else '❮' 85 | if (( _p9k__status )); then 86 | p10k segment -c '${${hx_mode:-main}:#hxcmd}' -f 196 -t "❯" 87 | p10k segment -c '${(M)hx_mode:#hxcmd}' -f 196 -t "❮" 88 | else 89 | p10k segment -c '${${hx_mode:-main}:#hxcmd}' -f 76 -t "❯" 90 | p10k segment -c '${(M)hx_mode:#hxcmd}' -f 76 -t "❮" 91 | fi 92 | } 93 | 94 | function instant_prompt_hx_mode() { 95 | p10k segment -f 76 -t "❯" 96 | } 97 | ``` 98 | 99 | And add it to your prompt elements: 100 | 101 | ```diff 102 | typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=( 103 | # =========================[ Line #1 ]========================= 104 | # os_icon # os identifier 105 | dir # current directory 106 | vcs # git status 107 | # =========================[ Line #2 ]========================= 108 | newline # \n 109 | - prompt_char # often also `vi_mode` 110 | + hx_mode 111 | ) 112 | ``` 113 | 114 | ### Uninstalling / disablings 115 | 116 | To disable: 117 | 118 | * If it is enabled as a oh-my-zsh plugin, simply `omz plugin disable helix-zsh` 119 | * Else, simply comment out wherever you `source` it 120 | 121 | To uninstall: 122 | 123 | * Run `source uninstall.sh`, which 124 | - `cargo uninstall`'s the driver 125 | - Removes the zsh plugin if it can 126 | -------------------------------------------------------------------------------- /helix-driver/src/main.rs: -------------------------------------------------------------------------------- 1 | use std::{collections::HashMap, env, process::ExitCode, str::FromStr, sync::Arc}; 2 | 3 | use log::{error, info, trace, LevelFilter}; 4 | use tokio::{ 5 | io::{self, AsyncReadExt, AsyncWriteExt, BufReader, BufWriter, ErrorKind, Stdin, Stdout}, 6 | sync::mpsc::{self, Sender}, 7 | }; 8 | 9 | use arc_swap::{access::Map, ArcSwap}; 10 | use clap::Parser; 11 | use helix_core::{ 12 | syntax::{self, config::Configuration}, 13 | Selection, 14 | }; 15 | use helix_term::{ 16 | commands, 17 | compositor::{self, Compositor}, 18 | config::{Config, ConfigLoadError}, 19 | events::{self, PostCommand}, 20 | job::Jobs, 21 | keymap::{Keymaps, MappableCommand}, 22 | ui, 23 | }; 24 | use helix_view::{ 25 | editor::Action, 26 | graphics::Rect, 27 | handlers::{completion::CompletionHandler, word_index, Handlers}, 28 | input::{Event, KeyCode, KeyEvent, KeyModifiers}, 29 | theme, Editor, 30 | }; 31 | 32 | #[derive(Parser, Debug)] 33 | #[command(version, about, long_about = None)] 34 | struct Args { 35 | buffer: String, 36 | 37 | #[arg(long)] 38 | mark: usize, 39 | 40 | #[arg(long)] 41 | cursor: usize, 42 | } 43 | 44 | fn null_handler() -> Sender { 45 | let (sender, _receiver) = mpsc::channel(100 /* FIXME how do we prevent this filling up */); 46 | 47 | sender 48 | } 49 | 50 | #[tokio::main] 51 | async fn main() -> ExitCode { 52 | let mut args = env::args().collect::>(); 53 | args.remove(0); 54 | 55 | match args.first().map(|s| s.as_str()) { 56 | Some("version") if args.len() == 1 => { 57 | println!("helix-driver"); 58 | println!("{}", env!("CARGO_PKG_VERSION")); 59 | ExitCode::SUCCESS 60 | } 61 | None => { 62 | main_impl().await; 63 | ExitCode::SUCCESS 64 | } 65 | _ => panic!("unrecognised args {args:?}"), 66 | } 67 | } 68 | 69 | fn enter_insert_mode(editor: &mut Editor) { 70 | let mut ctx = commands::Context { 71 | editor, 72 | count: None, 73 | register: None, 74 | callback: Vec::new(), 75 | on_next_key_callback: None, 76 | jobs: &mut Jobs::new(), 77 | }; 78 | 79 | let command = &MappableCommand::insert_mode; 80 | command.execute(&mut ctx); 81 | helix_event::dispatch(PostCommand { 82 | command, 83 | cx: &mut ctx, 84 | }); 85 | } 86 | 87 | fn char_to_key(ch: u8) -> KeyEvent { 88 | let code; 89 | let mut modifiers = KeyModifiers::NONE; 90 | match ch { 91 | 0 => panic!("hit null char; this should be end-of-keys"), 92 | 27 => code = KeyCode::Esc, 93 | 8 => code = KeyCode::Backspace, 94 | 9 => code = KeyCode::Tab, 95 | 10 | 13 => code = KeyCode::Enter, 96 | 127 => code = KeyCode::Backspace, 97 | 1..27 => { 98 | code = KeyCode::Char((b'a' + (ch - 1)) as char); 99 | modifiers = KeyModifiers::CONTROL; 100 | } 101 | _ => code = KeyCode::Char(ch as char), 102 | } 103 | 104 | KeyEvent { code, modifiers } 105 | } 106 | 107 | fn close_other_docs(editor: &mut Editor) { 108 | let doc = editor.documents().next().unwrap().id(); 109 | let view_id = editor 110 | .tree 111 | .views() 112 | .find(|(v, _)| v.doc == doc) 113 | .unwrap() 114 | .0 115 | .id; 116 | 117 | // safety: shut any other open documents in case weird key combos open others 118 | let ids = editor 119 | .documents() 120 | .skip(1) 121 | .map(|d| d.id()) 122 | .collect::>(); 123 | 124 | for id in ids { 125 | let _ = editor.close_document(id, true); 126 | } 127 | 128 | editor.focus(view_id); 129 | } 130 | 131 | fn reset_editor(editor: &mut Editor, compositor: &mut Compositor) { 132 | close_other_docs(editor); 133 | 134 | let id = editor.documents().next().unwrap().id(); 135 | let _ = editor.close_document(id, true); 136 | 137 | editor.new_file(Action::Load); 138 | 139 | editor.enter_normal_mode(); 140 | 141 | // new document has a trailing newline, so delete it (with `"_d`) 142 | let mut ctx = compositor::Context { 143 | editor, 144 | jobs: &mut Jobs::new(), 145 | scroll: None, 146 | }; 147 | 148 | for key in ['"', '_', 'd'] { 149 | let ev = KeyEvent { 150 | code: KeyCode::Char(key), 151 | modifiers: KeyModifiers::NONE, 152 | }; 153 | 154 | _ = compositor.handle_event(&Event::Key(ev), &mut ctx); 155 | } 156 | 157 | enter_insert_mode(editor); 158 | } 159 | 160 | #[derive(Debug, Clone, Copy, PartialEq, Eq)] 161 | #[repr(u8)] 162 | enum MessageType { 163 | Heartbeat = b'H', 164 | Keys = b'K', 165 | Text = b'T', 166 | Cursor = b'C', 167 | Reset = b'R', 168 | } 169 | 170 | impl TryFrom for MessageType { 171 | type Error = u8; 172 | 173 | fn try_from(value: u8) -> Result { 174 | match value { 175 | b'H' => Ok(MessageType::Heartbeat), 176 | b'K' => Ok(MessageType::Keys), 177 | b'T' => Ok(MessageType::Text), 178 | b'C' => Ok(MessageType::Cursor), 179 | b'R' => Ok(MessageType::Reset), 180 | _ => Err(value), 181 | } 182 | } 183 | } 184 | 185 | async fn handle_command( 186 | editor: &mut Editor, 187 | compositor: &mut Compositor, 188 | jobs: &mut Jobs, 189 | stdin: &mut BufReader, 190 | stdout: &mut BufWriter, 191 | last_cb_value: &mut Option, 192 | ) -> Result<(), io::Error> { 193 | let mut ignored = true; 194 | 195 | let Ok(cmd) = MessageType::try_from(stdin.read_u8().await?) else { 196 | stdout.write_u8(b'E').await?; 197 | stdout.write_u8(0).await?; 198 | stdout.flush().await?; 199 | return Ok(()); 200 | }; 201 | 202 | let mut inp = Vec::new(); 203 | loop { 204 | let ch = stdin.read_u8().await?; 205 | 206 | if ch == 0 { 207 | break; 208 | } 209 | 210 | inp.push(ch); 211 | } 212 | 213 | if log::max_level() >= log::Level::Trace { 214 | trace! {"Command: {cmd:?}"}; 215 | trace!( 216 | "Input: {:?}", 217 | inp.iter().map(|&b| b as char).collect::>() 218 | ); 219 | } 220 | 221 | match cmd { 222 | MessageType::Heartbeat => { 223 | stdout.write_u8(b'1').await.expect("write_u8 failed!"); 224 | stdout.write_u8(0).await.expect("write_u8 failed!"); 225 | stdout.flush().await.expect("flush failed"); 226 | Ok(()) 227 | } 228 | MessageType::Reset => { 229 | reset_editor(editor, compositor); 230 | Ok(()) 231 | } 232 | MessageType::Cursor => { 233 | let pos = String::from_utf8(inp) 234 | .expect("bad cursor pos") 235 | .parse::() 236 | .expect("bad cursor pos"); 237 | 238 | let views = editor.tree.views_mut().collect::>(); 239 | 240 | assert!(views.len() == 1); 241 | let (view, _) = &views[0]; 242 | let id = view.id; 243 | 244 | let doc = editor.documents_mut().next().unwrap(); 245 | 246 | let pos = pos.min(doc.text().len_chars()); 247 | doc.set_selection(id, Selection::point(pos)); 248 | 249 | info!("Set cursor to {pos}"); 250 | 251 | Ok(()) 252 | } 253 | MessageType::Keys | MessageType::Text => { 254 | // FIXME: properly push text in so it can't hit keybindings (and will insert in normal mode) 255 | 256 | for ch in inp { 257 | let mut ctx = compositor::Context { 258 | editor, 259 | jobs, 260 | scroll: None, 261 | }; 262 | 263 | let ev = char_to_key(ch); 264 | 265 | trace!("Event: {ev:?}"); 266 | 267 | if compositor.handle_event(&Event::Key(ev), &mut ctx) { 268 | ignored = false; 269 | } 270 | } 271 | 272 | // not currently used 273 | _ = ignored; 274 | 275 | let mut message = Vec::new(); 276 | let reg = editor.registers.read('"', editor); 277 | 278 | let mut clipboard = String::new(); 279 | if let Some(mut reg) = reg { 280 | if let Some(val) = reg.next() { 281 | if last_cb_value.as_ref().is_none_or(|s| s != val.as_ref()) { 282 | clipboard = val.to_string(); 283 | *last_cb_value = Some(clipboard.clone()); 284 | } 285 | } 286 | } 287 | 288 | let doc = editor.documents().next().unwrap(); 289 | let text = doc.text().to_string(); 290 | 291 | message.extend(text.as_bytes()); 292 | message.push(0); 293 | 294 | for selection in doc.selections().values() { 295 | for range in selection.ranges() { 296 | message.extend(range.head.to_string().as_bytes()); 297 | message.push(0); 298 | 299 | message.extend(range.anchor.to_string().as_bytes()); 300 | message.push(0); 301 | } 302 | } 303 | 304 | message.push(0); 305 | 306 | if !clipboard.is_empty() { 307 | message.push(b'Y'); 308 | message.extend(clipboard.as_bytes()); 309 | message.push(0); 310 | } else { 311 | message.push(b'N'); 312 | } 313 | 314 | trace!("Mode: {:?}", editor.mode); 315 | trace!("Text: {text}"); 316 | let mode = match editor.mode { 317 | helix_view::document::Mode::Normal => 'n', 318 | helix_view::document::Mode::Select => 's', 319 | helix_view::document::Mode::Insert => 'i', 320 | }; 321 | 322 | message.push(mode as u8); 323 | 324 | if cmd == MessageType::Keys { 325 | stdout.write_all(&message).await?; 326 | stdout.flush().await?; 327 | } 328 | 329 | Ok(()) 330 | } 331 | } 332 | } 333 | 334 | async fn main_impl() { 335 | events::register(); 336 | 337 | let level = env::var("RUST_LOG").unwrap_or("WARN".into()); 338 | let level = LevelFilter::from_str(&level).expect("Invalid log level '{level}'"); 339 | env_logger::Builder::new() 340 | // .filter(None, LevelFilter::Off) 341 | .filter(None, level) 342 | // .filter_module("helix_driver", level) 343 | .init(); 344 | 345 | helix_loader::initialize_config_file(None); 346 | helix_loader::initialize_log_file(None); 347 | 348 | let area = Rect { 349 | x: 0, 350 | y: 0, 351 | height: 100, 352 | width: 800, 353 | }; 354 | 355 | let theme_loader = theme::Loader::new(&[]); 356 | let syn_loader = syntax::Loader::new(Configuration { 357 | language: Vec::new(), 358 | language_server: HashMap::new(), 359 | }) 360 | .unwrap(); 361 | 362 | let config = match Config::load_default() { 363 | Ok(config) => config, 364 | Err(ConfigLoadError::Error(err)) if err.kind() == std::io::ErrorKind::NotFound => { 365 | Config::default() 366 | } 367 | Err(err) => panic!("{err}"), 368 | }; 369 | 370 | let config = Arc::new(ArcSwap::from_pointee(config)); 371 | 372 | let handlers = Handlers { 373 | completions: CompletionHandler::new(null_handler()), 374 | signature_hints: null_handler(), 375 | document_colors: null_handler(), 376 | auto_save: null_handler(), 377 | word_index: word_index::Handler::spawn(), 378 | pull_diagnostics: null_handler(), 379 | pull_all_documents_diagnostics: null_handler(), 380 | }; 381 | 382 | let mut editor = Editor::new( 383 | area, 384 | Arc::new(theme_loader), 385 | Arc::new(ArcSwap::from_pointee(syn_loader)), 386 | Arc::new(Map::new(Arc::clone(&config), |config: &Config| { 387 | &config.editor 388 | })), 389 | handlers, 390 | ); 391 | 392 | editor.new_file(Action::VerticalSplit); 393 | 394 | let mut jobs = Jobs::new(); 395 | 396 | let keys = Box::new(Map::new(Arc::clone(&config), |config: &Config| { 397 | &config.keys 398 | })); 399 | 400 | let editor_view = Box::new(ui::EditorView::new(Keymaps::new(keys))); 401 | 402 | let mut stdin = BufReader::new(io::stdin()); 403 | let mut stdout = BufWriter::new(io::stdout()); 404 | 405 | let mut compositor = Compositor::new(area); 406 | compositor.push(editor_view); 407 | 408 | reset_editor(&mut editor, &mut compositor); 409 | 410 | let mut last_cb_value = None; 411 | loop { 412 | if let Err(e) = handle_command( 413 | &mut editor, 414 | &mut compositor, 415 | &mut jobs, 416 | &mut stdin, 417 | &mut stdout, 418 | &mut last_cb_value, 419 | ) 420 | .await 421 | { 422 | if e.kind() == ErrorKind::UnexpectedEof { 423 | info!("Closing"); 424 | return; 425 | } 426 | 427 | error!("{e}"); 428 | continue; 429 | }; 430 | 431 | close_other_docs(&mut editor); 432 | } 433 | } 434 | -------------------------------------------------------------------------------- /helix_zsh.zsh: -------------------------------------------------------------------------------- 1 | HELIX_ZSH="" 2 | 3 | HELIX_ZSH_EN_LOG="" 4 | HELIX_ZSH_LOG_DIR=~/.cache/helix-zsh 5 | 6 | # _helix_zsh_driver="./helix-driver/target/debug/helix-driver" 7 | _helix_zsh_driver="helix-driver" 8 | _helix_zsh_driver_path="" 9 | _helix_zsh_driver_ver="" 10 | 11 | _hx_driver_exists() { 12 | # check it exists 13 | [[ -f $_helix_zsh_driver ]] || command -v $_helix_zsh_driver &> /dev/null || return 1 14 | 15 | # now check it is what we expect 16 | local name ver 17 | { read -r name && read -r ver; } < <($_helix_zsh_driver version) || return 1 18 | 19 | if [[ "$name" == "helix-driver" ]]; then 20 | _helix_zsh_driver_ver="$ver" 21 | return 0; 22 | else 23 | return 1 24 | fi 25 | } 26 | 27 | _hx_driver_info() { 28 | _hx_driver_exists || return 1 29 | 30 | if [[ "$(whence -w $_helix_zsh_driver)" == *function* ]]; then 31 | _helix_zsh_driver_path="(zsh function)" 32 | else 33 | _helix_zsh_driver_path=$(command -v $_helix_zsh_driver) 34 | fi 35 | } 36 | 37 | hx-zsh() { 38 | # TODO: flesh this out 39 | 40 | _hx-zsh-help() { 41 | echo "helix-zsh bindings" 42 | echo "John Kelly " 43 | echo "" 44 | echo "hx-zsh [OPTIONS]" 45 | echo "" 46 | echo "OPTIONS:" 47 | echo "" 48 | echo " -e,--enabled " 49 | echo " Succeed if hx-zsh is enabled" 50 | echo "" 51 | echo " --driver " 52 | echo " Show driver information" 53 | echo "" 54 | echo " --info " 55 | echo " Show information" 56 | echo "" 57 | echo " -h,--help " 58 | echo " Show help" 59 | echo "" 60 | } 61 | 62 | if [[ $# == 0 ]]; then 63 | echo "hx-zsh" 64 | echo "John Kelly " 65 | echo "" 66 | if [[ "$HELIX_ZSH" == "1" ]]; then 67 | echo "Status: enabled" 68 | else 69 | echo "Status: disabled (likely could not find driver)" 70 | fi 71 | echo "" 72 | 73 | return 74 | fi 75 | 76 | _hx_zsh_log_info() { 77 | if [[ "$HELIX_ZSH_EN_LOG" == "1" ]]; then 78 | echo "Logs:" 79 | echo " HELIX_ZSH_LOG_DIR: $HELIX_ZSH_LOG_DIR" 80 | echo " HELIX_ZSH_DRIVER_LOG: $HELIX_ZSH_DRIVER_LOG" 81 | echo " HELIX_ZSH_LOG: $HELIX_ZSH_LOG" 82 | else 83 | echo "Logging disabled" 84 | fi 85 | } 86 | 87 | _hx_zsh_driver_info() { 88 | if ! _hx_driver_info; then 89 | echo "Driver could not be found!" 90 | else 91 | echo "Driver: " 92 | echo " command: $_helix_zsh_driver" 93 | echo " path: $_helix_zsh_driver_path" 94 | echo " version: $_helix_zsh_driver_ver" 95 | fi 96 | } 97 | 98 | case "$1" in 99 | --help|-h|help) 100 | _hx-zsh-help 101 | return 102 | ;; 103 | -e|--enabled) 104 | return [[ "$HELIX_ZSH" == "1" ]] 105 | ;; 106 | --info) 107 | _hx_zsh_log_info 108 | echo "\n" 109 | _hx_zsh_driver_info 110 | ;; 111 | --driver) 112 | _hx_zsh_driver_info 113 | ;; 114 | *) 115 | tput setaf 1 116 | tput bold 117 | 118 | echo "Unrecognised argument '$1'" 119 | 120 | tput sgr0 121 | ;; 122 | esac 123 | } 124 | 125 | _helix_zsh_failed="" 126 | 127 | if [[ -n "$_helix_zsh_failed" ]] || ! _hx_driver_exists; then 128 | _helix_zsh_failed="1" 129 | 130 | # the newlines prevent this text being hidden by prompts 131 | 132 | tput setaf 1 133 | tput bold 134 | 135 | echo "\n\n\n\n" 136 | echo "helix-zsh enabled but could not find helix-driver, is it installed?" 137 | echo "\n\n\n\n" 138 | 139 | tput sgr0 140 | else 141 | HELIX_ZSH="1" 142 | 143 | typeset -g _hx_driver_pid 144 | 145 | HELIX_ZSH_DRIVER_LOG="/dev/null" 146 | HELIX_ZSH_LOG="/dev/null" 147 | 148 | if [[ "$HELIX_ZSH_EN_LOG" == "1" ]]; then 149 | mkdir -p $HELIX_ZSH_LOG_DIR 150 | 151 | HELIX_ZSH_DRIVER_LOG="$HELIX_ZSH_LOG_DIR/helix-driver.log" 152 | HELIX_ZSH_LOG="$HELIX_ZSH_LOG_DIR/helix_zsh.log" 153 | fi 154 | 155 | _hx_driver() { 156 | RUST_BACKTRACE=1 RUST_LOG=trace $_helix_zsh_driver 2>> $HELIX_ZSH_DRIVER_LOG 157 | } 158 | 159 | _hx_driver_fail () { 160 | # hx driver has suddenly vanished 161 | # reset to default state and back out 162 | HELIX_ZSH="0" 163 | 164 | tput setaf 1 165 | tput bold 166 | 167 | echo "\n\n\n\n" 168 | echo "$1" 169 | 170 | if [[ "$HELIX_ZSH_EN_LOG" == "1" ]]; then 171 | echo "\n" 172 | echo "End of driver logs: " 173 | tail -20 $HELIX_ZSH_DRIVER_LOG 174 | fi 175 | 176 | echo "\n\n\n\n" 177 | 178 | tput sgr0 179 | 180 | bindkey -d 181 | } 182 | 183 | _hx_driver_heartbeat() { 184 | printf "%s" 'H' >&p 185 | printf "\0" >&p 186 | } 187 | 188 | _hx_driver_keys() { 189 | printf "%s" 'K' >&p 190 | printf "%s" "$1" >&p 191 | printf "\0" >&p 192 | } 193 | 194 | _hx_driver_text() { 195 | printf "%s" 'T' >&p 196 | printf "%s" "$1" >&p 197 | printf "\0" >&p 198 | } 199 | 200 | _hx_driver_cursor() { 201 | printf "%s" 'C' >&p 202 | printf "%s" "$1" >&p 203 | printf "\0" >&p 204 | } 205 | 206 | _hx_driver_reset() { 207 | printf "%s" 'R' >&p 208 | printf "\0" >&p 209 | hx_mode="hxins" 210 | _hx_mode="hxins" 211 | _hx_buffer="" 212 | _hx_cursor=0 213 | } 214 | 215 | _hx_cursor_beam() { 216 | echo -ne '\e[5 q' 217 | } 218 | 219 | _hx_cursor_block() { 220 | echo -ne '\e[1 q' 221 | } 222 | 223 | _hx_ensure_driver() { 224 | echo "Ensuring driver" >> $HELIX_ZSH_LOG 225 | 226 | if ps -p $_hx_driver_pid > /dev/null 2>&1; then 227 | return 228 | fi 229 | 230 | if ! _hx_driver_exists; then 231 | _hx_driver_fail "helix-driver has disappeared, reverting to default keybindings" 232 | return 1 233 | fi 234 | 235 | coproc _hx_driver 236 | _hx_driver_pid=$! 237 | 238 | _hx_driver_heartbeat 239 | 240 | local heartbeat 241 | IFS= read -r -u 0 -d $'\0' heartbeat <&p 242 | 243 | if [[ "$heartbeat" != "1" ]]; then 244 | _hx_driver_fail "heartbeat check with helix-driver failed" 245 | return 1 246 | fi 247 | 248 | echo "Started driver pid=$_hx_driver_pid" >> $HELIX_ZSH_LOG 249 | } 250 | 251 | _hx_ensure_driver 252 | 253 | _hx_kill_driver() { 254 | echo "Killing driver pid=$_hx_driver_pid" >> $HELIX_ZSH_LOG 255 | kill $_hx_driver_pid >/dev/null 2>&1 256 | } 257 | 258 | # if exit was previously overriden, save it into `_hx_exit`, else just have `_hx_exit` call builtin 259 | 260 | if typeset -f exit > /dev/null && [[ "$(typeset -f exit)" != "$(typeset -f _hx_prev_exit)" ]]; then 261 | eval "_hx_prev_exit $(typeset -f exit | sed '1s/exit//')" 262 | else 263 | _hx_prev_exit() { 264 | builtin exit "$@" 265 | } 266 | fi 267 | 268 | exit() { 269 | _hx_kill_driver 270 | sleep 0.1 271 | _hx_prev_exit "$@" 272 | } 273 | 274 | _hx_add_default_bindings() { 275 | _hx_bindkey_all "^A"-"^C" self-insert 276 | _hx_bindkey_all "^D" list-choices 277 | _hx_bindkey_all "^E"-"^F" self-insert 278 | _hx_bindkey_all "^G" list-expand 279 | _hx_bindkey_all "^H" vi-backward-delete-char 280 | _hx_bindkey_all "^I" expand-or-complete 281 | _hx_bindkey_all "^J" accept-line 282 | _hx_bindkey_all "^K" self-insert 283 | _hx_bindkey_all "^L" clear-screen 284 | _hx_bindkey_all "^N"-"^P" self-insert 285 | _hx_bindkey_all "^Q" vi-quoted-insert 286 | _hx_bindkey_all "^R" redisplay 287 | _hx_bindkey_all "^S"-"^T" self-insert 288 | _hx_bindkey_all "^U" vi-kill-line 289 | _hx_bindkey_all "^V" vi-quoted-insert 290 | _hx_bindkey_all "^W" vi-backward-kill-word 291 | _hx_bindkey_all "^Y"-"^Z" self-insert 292 | _hx_bindkey_all "^[OA" up-line-or-beginning-search 293 | _hx_bindkey_all "^[OB" down-line-or-beginning-search 294 | _hx_bindkey_all "^[OC" vi-forward-char 295 | _hx_bindkey_all "^[OD" vi-backward-char 296 | _hx_bindkey_all "^[OF" end-of-line 297 | _hx_bindkey_all "^[OH" beginning-of-line 298 | _hx_bindkey_all "^[[1;5C" forward-word 299 | _hx_bindkey_all "^[[1;5D" backward-word 300 | _hx_bindkey_all "^[[200~" bracketed-paste 301 | _hx_bindkey_all "^[[3;5~" kill-word 302 | _hx_bindkey_all "^[[3~" delete-char 303 | _hx_bindkey_all "^[[5~" up-line-or-history 304 | _hx_bindkey_all "^[[6~" down-line-or-history 305 | _hx_bindkey_all "^[[A" up-line-or-history 306 | _hx_bindkey_all "^[[B" down-line-or-history 307 | _hx_bindkey_all "^[[C" vi-forward-char 308 | _hx_bindkey_all "^[[D" vi-backward-char 309 | _hx_bindkey_all "^[[Z" reverse-menu-complete 310 | } 311 | 312 | # public variable, kept so we can change inners 313 | # must be `hxins|hxcmd|hxsel` 314 | typeset -g hx_mode="hxins" 315 | _hx_mode="hxins" 316 | _hx_cursor="0" 317 | _hx_buffer="" 318 | 319 | _hx_get_mode() { 320 | case $1 in 321 | i) 322 | echo hxins ;; 323 | n) 324 | echo hxcmd ;; 325 | s) 326 | echo hxsel ;; 327 | esac 328 | } 329 | 330 | _hx_process() { 331 | _hx_ensure_driver 332 | 333 | if [[ $_hx_mode == "hxins" && ($KEYS == $'\r' || $KEYS == $'\n' || $KEYS == '^M') ]]; then 334 | region_highlight=() 335 | zle accept-line 336 | _hx_driver_reset 337 | return 338 | fi 339 | 340 | if [[ "$_hx_buffer" != "$BUFFER" ]]; then 341 | echo "Buffer changed; from '$_hx_buffer' -> '$BUFFER' and cursor from $_hx_cursor -> $CURSOR" >> $HELIX_ZSH_LOG 342 | 343 | _hx_driver_reset 344 | _hx_driver_text "$BUFFER" 345 | _hx_driver_cursor "$CURSOR" 346 | elif [[ "$_hx_cursor" != "$CURSOR" ]]; then 347 | echo "Moving cursor from $_hx_cursor -> $CURSOR" >> $HELIX_ZSH_LOG 348 | _hx_driver_cursor "$CURSOR" 349 | fi 350 | 351 | _hx_driver_keys "$KEYS" 352 | 353 | local text sel cb new_mode reset_prompt; 354 | 355 | IFS= read -r -u 0 -d $'\0' text <&p 356 | 357 | typeset -a sels 358 | 359 | while IFS= read -u 0 -d $'\0' sel <&p; do 360 | [[ -z "$sel" ]] && break 361 | sels+=("$sel") 362 | done 363 | 364 | read -k 1 -u 0 c <&p 365 | if [[ "$c" == "Y" ]]; then 366 | IFS= read -r -u 0 -d $'\0' cb <&p 367 | printf "%s" "$cb" | pbcopy 368 | echo "copied '$cb' to clipboard" >> $HELIX_ZSH_LOG 369 | fi 370 | 371 | read -k 1 -u 0 new_mode <&p 372 | new_mode=$(_hx_get_mode $new_mode) 373 | 374 | head=$sels[1] 375 | anchor=$sels[2] 376 | 377 | if (( head < anchor )); then 378 | start=$head 379 | end=$anchor 380 | else 381 | start=$anchor 382 | end=$head 383 | fi 384 | 385 | BUFFER="$text" 386 | CURSOR="$start" 387 | 388 | local render_regions="" 389 | local nsels=${#sels} 390 | if (( nsels > 2 )); then 391 | render_regions="1" 392 | fi 393 | 394 | region_highlight=() 395 | 396 | if [[ "$new_mode" != "$_hx_mode" ]]; then 397 | case "$new_mode" in 398 | hxins) 399 | echo "hxins" >> $HELIX_ZSH_LOG 400 | _hx_cursor_beam 401 | zle -K hxins ;; 402 | hxcmd) 403 | echo "cmd" >> $HELIX_ZSH_LOG 404 | _hx_cursor_block 405 | zle -K hxcmd ;; 406 | hxsel) 407 | echo "sel" >> $HELIX_ZSH_LOG 408 | _hx_cursor_block 409 | zle -K hxsel ;; 410 | esac 411 | 412 | _hx_mode="$new_mode" 413 | hx_mode="$new_mode" 414 | reset_prompt="1" 415 | else 416 | reset_prompt="" 417 | fi 418 | 419 | if [[ "$_hx_mode" != "hxins" || -n $render_regions ]]; then 420 | region_highlight=() 421 | 422 | for ((i=1; i<${#sels[@]}; i+=2)); do 423 | head=${sels[i]} 424 | anchor=${sels[i+1]} 425 | 426 | if (( head < anchor )); then 427 | start=$head 428 | end=$anchor 429 | else 430 | start=$anchor 431 | end=$head 432 | fi 433 | 434 | region_highlight+=("$start $end bg=#a9a9a9") 435 | done 436 | fi 437 | 438 | if [[ $BUFFER != $_hx_buffer ]]; then 439 | zle redisplay 440 | elif [[ -n $reset_prompt ]]; then 441 | zle .reset-prompt 442 | fi 443 | 444 | _hx_buffer="$BUFFER" 445 | _hx_cursor="$CURSOR" 446 | } 447 | 448 | _hx_line_init() { 449 | _hx_driver_reset 450 | } 451 | 452 | _hx_bracketed_paste() { 453 | # TODO: impl 454 | } 455 | 456 | _hx_keymaps=("hxcmd" "hxins" "hxsel") 457 | 458 | _hx_bindkey_all() { 459 | for keymap in $_hx_keymaps; do 460 | bindkey -M $keymap "$@" 461 | done 462 | } 463 | 464 | zle -N _hx_process 465 | zle -N _hx_bracketed_paste 466 | zle -N undefined-key _hx_process 467 | zle -N zle-line-init _hx_ensure_driver 468 | 469 | echo -ne '\e[?2004h' 470 | 471 | for keymap in $_hx_keymaps; do 472 | bindkey -N $keymap 473 | done 474 | 475 | _hx_add_default_bindings 476 | 477 | # explicitly binding escape prevents zle waiting for an escape sequence 478 | _hx_bindkey_all '^[' _hx_process 479 | _hx_bindkey_all '^M' _hx_process 480 | _hx_bindkey_all $'\r' _hx_process 481 | _hx_bindkey_all '^[[200~' _hx_bracketed_paste 482 | _hx_bindkey_all '^[[A' up-line-or-beginning-search 483 | _hx_bindkey_all '^[[B' down-line-or-beginning-search 484 | 485 | # start in insert mode 486 | bindkey -A hxins main 487 | fi 488 | -------------------------------------------------------------------------------- /helix-driver/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 4 4 | 5 | [[package]] 6 | name = "adler2" 7 | version = "2.0.1" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" 10 | 11 | [[package]] 12 | name = "ahash" 13 | version = "0.8.12" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" 16 | dependencies = [ 17 | "cfg-if", 18 | "getrandom", 19 | "once_cell", 20 | "version_check", 21 | "zerocopy", 22 | ] 23 | 24 | [[package]] 25 | name = "aho-corasick" 26 | version = "1.1.3" 27 | source = "registry+https://github.com/rust-lang/crates.io-index" 28 | checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 29 | dependencies = [ 30 | "memchr", 31 | ] 32 | 33 | [[package]] 34 | name = "allocator-api2" 35 | version = "0.2.21" 36 | source = "registry+https://github.com/rust-lang/crates.io-index" 37 | checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" 38 | 39 | [[package]] 40 | name = "android_system_properties" 41 | version = "0.1.5" 42 | source = "registry+https://github.com/rust-lang/crates.io-index" 43 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 44 | dependencies = [ 45 | "libc", 46 | ] 47 | 48 | [[package]] 49 | name = "anstream" 50 | version = "0.6.21" 51 | source = "registry+https://github.com/rust-lang/crates.io-index" 52 | checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" 53 | dependencies = [ 54 | "anstyle", 55 | "anstyle-parse", 56 | "anstyle-query", 57 | "anstyle-wincon", 58 | "colorchoice", 59 | "is_terminal_polyfill", 60 | "utf8parse", 61 | ] 62 | 63 | [[package]] 64 | name = "anstyle" 65 | version = "1.0.13" 66 | source = "registry+https://github.com/rust-lang/crates.io-index" 67 | checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" 68 | 69 | [[package]] 70 | name = "anstyle-parse" 71 | version = "0.2.7" 72 | source = "registry+https://github.com/rust-lang/crates.io-index" 73 | checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" 74 | dependencies = [ 75 | "utf8parse", 76 | ] 77 | 78 | [[package]] 79 | name = "anstyle-query" 80 | version = "1.1.4" 81 | source = "registry+https://github.com/rust-lang/crates.io-index" 82 | checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" 83 | dependencies = [ 84 | "windows-sys 0.60.2", 85 | ] 86 | 87 | [[package]] 88 | name = "anstyle-wincon" 89 | version = "3.0.10" 90 | source = "registry+https://github.com/rust-lang/crates.io-index" 91 | checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" 92 | dependencies = [ 93 | "anstyle", 94 | "once_cell_polyfill", 95 | "windows-sys 0.60.2", 96 | ] 97 | 98 | [[package]] 99 | name = "anyhow" 100 | version = "1.0.100" 101 | source = "registry+https://github.com/rust-lang/crates.io-index" 102 | checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" 103 | 104 | [[package]] 105 | name = "arc-swap" 106 | version = "1.7.1" 107 | source = "registry+https://github.com/rust-lang/crates.io-index" 108 | checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" 109 | 110 | [[package]] 111 | name = "autocfg" 112 | version = "1.5.0" 113 | source = "registry+https://github.com/rust-lang/crates.io-index" 114 | checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 115 | 116 | [[package]] 117 | name = "bitflags" 118 | version = "2.10.0" 119 | source = "registry+https://github.com/rust-lang/crates.io-index" 120 | checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" 121 | 122 | [[package]] 123 | name = "block-buffer" 124 | version = "0.10.4" 125 | source = "registry+https://github.com/rust-lang/crates.io-index" 126 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 127 | dependencies = [ 128 | "generic-array", 129 | ] 130 | 131 | [[package]] 132 | name = "bstr" 133 | version = "1.12.0" 134 | source = "registry+https://github.com/rust-lang/crates.io-index" 135 | checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" 136 | dependencies = [ 137 | "memchr", 138 | "regex-automata", 139 | "serde", 140 | ] 141 | 142 | [[package]] 143 | name = "bumpalo" 144 | version = "3.19.0" 145 | source = "registry+https://github.com/rust-lang/crates.io-index" 146 | checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" 147 | 148 | [[package]] 149 | name = "byteorder" 150 | version = "1.5.0" 151 | source = "registry+https://github.com/rust-lang/crates.io-index" 152 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 153 | 154 | [[package]] 155 | name = "bytes" 156 | version = "1.10.1" 157 | source = "registry+https://github.com/rust-lang/crates.io-index" 158 | checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" 159 | 160 | [[package]] 161 | name = "cassowary" 162 | version = "0.3.0" 163 | source = "registry+https://github.com/rust-lang/crates.io-index" 164 | checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" 165 | 166 | [[package]] 167 | name = "cc" 168 | version = "1.2.41" 169 | source = "registry+https://github.com/rust-lang/crates.io-index" 170 | checksum = "ac9fe6cdbb24b6ade63616c0a0688e45bb56732262c158df3c0c4bea4ca47cb7" 171 | dependencies = [ 172 | "find-msvc-tools", 173 | "shlex", 174 | ] 175 | 176 | [[package]] 177 | name = "cfg-if" 178 | version = "1.0.4" 179 | source = "registry+https://github.com/rust-lang/crates.io-index" 180 | checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 181 | 182 | [[package]] 183 | name = "chardetng" 184 | version = "0.1.17" 185 | source = "registry+https://github.com/rust-lang/crates.io-index" 186 | checksum = "14b8f0b65b7b08ae3c8187e8d77174de20cb6777864c6b832d8ad365999cf1ea" 187 | dependencies = [ 188 | "cfg-if", 189 | "encoding_rs", 190 | "memchr", 191 | ] 192 | 193 | [[package]] 194 | name = "chrono" 195 | version = "0.4.42" 196 | source = "registry+https://github.com/rust-lang/crates.io-index" 197 | checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" 198 | dependencies = [ 199 | "iana-time-zone", 200 | "num-traits", 201 | "windows-link", 202 | ] 203 | 204 | [[package]] 205 | name = "clap" 206 | version = "4.5.50" 207 | source = "registry+https://github.com/rust-lang/crates.io-index" 208 | checksum = "0c2cfd7bf8a6017ddaa4e32ffe7403d547790db06bd171c1c53926faab501623" 209 | dependencies = [ 210 | "clap_builder", 211 | "clap_derive", 212 | ] 213 | 214 | [[package]] 215 | name = "clap_builder" 216 | version = "4.5.50" 217 | source = "registry+https://github.com/rust-lang/crates.io-index" 218 | checksum = "0a4c05b9e80c5ccd3a7ef080ad7b6ba7d6fc00a985b8b157197075677c82c7a0" 219 | dependencies = [ 220 | "anstream", 221 | "anstyle", 222 | "clap_lex", 223 | "strsim", 224 | ] 225 | 226 | [[package]] 227 | name = "clap_derive" 228 | version = "4.5.49" 229 | source = "registry+https://github.com/rust-lang/crates.io-index" 230 | checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" 231 | dependencies = [ 232 | "heck", 233 | "proc-macro2", 234 | "quote", 235 | "syn", 236 | ] 237 | 238 | [[package]] 239 | name = "clap_lex" 240 | version = "0.7.6" 241 | source = "registry+https://github.com/rust-lang/crates.io-index" 242 | checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" 243 | 244 | [[package]] 245 | name = "clipboard-win" 246 | version = "5.4.1" 247 | source = "registry+https://github.com/rust-lang/crates.io-index" 248 | checksum = "bde03770d3df201d4fb868f2c9c59e66a3e4e2bd06692a0fe701e7103c7e84d4" 249 | dependencies = [ 250 | "error-code", 251 | ] 252 | 253 | [[package]] 254 | name = "clru" 255 | version = "0.6.2" 256 | source = "registry+https://github.com/rust-lang/crates.io-index" 257 | checksum = "cbd0f76e066e64fdc5631e3bb46381254deab9ef1158292f27c8c57e3bf3fe59" 258 | 259 | [[package]] 260 | name = "colorchoice" 261 | version = "1.0.4" 262 | source = "registry+https://github.com/rust-lang/crates.io-index" 263 | checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" 264 | 265 | [[package]] 266 | name = "content_inspector" 267 | version = "0.2.4" 268 | source = "registry+https://github.com/rust-lang/crates.io-index" 269 | checksum = "b7bda66e858c683005a53a9a60c69a4aca7eeaa45d124526e389f7aec8e62f38" 270 | dependencies = [ 271 | "memchr", 272 | ] 273 | 274 | [[package]] 275 | name = "core-foundation-sys" 276 | version = "0.8.7" 277 | source = "registry+https://github.com/rust-lang/crates.io-index" 278 | checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 279 | 280 | [[package]] 281 | name = "cpufeatures" 282 | version = "0.2.17" 283 | source = "registry+https://github.com/rust-lang/crates.io-index" 284 | checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" 285 | dependencies = [ 286 | "libc", 287 | ] 288 | 289 | [[package]] 290 | name = "crc32fast" 291 | version = "1.5.0" 292 | source = "registry+https://github.com/rust-lang/crates.io-index" 293 | checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" 294 | dependencies = [ 295 | "cfg-if", 296 | ] 297 | 298 | [[package]] 299 | name = "crossbeam-deque" 300 | version = "0.8.6" 301 | source = "registry+https://github.com/rust-lang/crates.io-index" 302 | checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" 303 | dependencies = [ 304 | "crossbeam-epoch", 305 | "crossbeam-utils", 306 | ] 307 | 308 | [[package]] 309 | name = "crossbeam-epoch" 310 | version = "0.9.18" 311 | source = "registry+https://github.com/rust-lang/crates.io-index" 312 | checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 313 | dependencies = [ 314 | "crossbeam-utils", 315 | ] 316 | 317 | [[package]] 318 | name = "crossbeam-utils" 319 | version = "0.8.21" 320 | source = "registry+https://github.com/rust-lang/crates.io-index" 321 | checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 322 | 323 | [[package]] 324 | name = "crossterm" 325 | version = "0.28.1" 326 | source = "registry+https://github.com/rust-lang/crates.io-index" 327 | checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" 328 | dependencies = [ 329 | "bitflags", 330 | "crossterm_winapi", 331 | "futures-core", 332 | "mio", 333 | "parking_lot", 334 | "rustix 0.38.44", 335 | "signal-hook", 336 | "signal-hook-mio", 337 | "winapi", 338 | ] 339 | 340 | [[package]] 341 | name = "crossterm_winapi" 342 | version = "0.9.1" 343 | source = "registry+https://github.com/rust-lang/crates.io-index" 344 | checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" 345 | dependencies = [ 346 | "winapi", 347 | ] 348 | 349 | [[package]] 350 | name = "crypto-common" 351 | version = "0.1.6" 352 | source = "registry+https://github.com/rust-lang/crates.io-index" 353 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 354 | dependencies = [ 355 | "generic-array", 356 | "typenum", 357 | ] 358 | 359 | [[package]] 360 | name = "dashmap" 361 | version = "6.1.0" 362 | source = "registry+https://github.com/rust-lang/crates.io-index" 363 | checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" 364 | dependencies = [ 365 | "cfg-if", 366 | "crossbeam-utils", 367 | "hashbrown 0.14.5", 368 | "lock_api", 369 | "once_cell", 370 | "parking_lot_core", 371 | ] 372 | 373 | [[package]] 374 | name = "digest" 375 | version = "0.10.7" 376 | source = "registry+https://github.com/rust-lang/crates.io-index" 377 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 378 | dependencies = [ 379 | "block-buffer", 380 | "crypto-common", 381 | ] 382 | 383 | [[package]] 384 | name = "displaydoc" 385 | version = "0.2.5" 386 | source = "registry+https://github.com/rust-lang/crates.io-index" 387 | checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 388 | dependencies = [ 389 | "proc-macro2", 390 | "quote", 391 | "syn", 392 | ] 393 | 394 | [[package]] 395 | name = "dunce" 396 | version = "1.0.5" 397 | source = "registry+https://github.com/rust-lang/crates.io-index" 398 | checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" 399 | 400 | [[package]] 401 | name = "either" 402 | version = "1.15.0" 403 | source = "registry+https://github.com/rust-lang/crates.io-index" 404 | checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" 405 | 406 | [[package]] 407 | name = "encoding_rs" 408 | version = "0.8.35" 409 | source = "registry+https://github.com/rust-lang/crates.io-index" 410 | checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" 411 | dependencies = [ 412 | "cfg-if", 413 | ] 414 | 415 | [[package]] 416 | name = "encoding_rs_io" 417 | version = "0.1.7" 418 | source = "registry+https://github.com/rust-lang/crates.io-index" 419 | checksum = "1cc3c5651fb62ab8aa3103998dade57efdd028544bd300516baa31840c252a83" 420 | dependencies = [ 421 | "encoding_rs", 422 | ] 423 | 424 | [[package]] 425 | name = "env_filter" 426 | version = "0.1.4" 427 | source = "registry+https://github.com/rust-lang/crates.io-index" 428 | checksum = "1bf3c259d255ca70051b30e2e95b5446cdb8949ac4cd22c0d7fd634d89f568e2" 429 | dependencies = [ 430 | "log", 431 | "regex", 432 | ] 433 | 434 | [[package]] 435 | name = "env_home" 436 | version = "0.1.0" 437 | source = "registry+https://github.com/rust-lang/crates.io-index" 438 | checksum = "c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe" 439 | 440 | [[package]] 441 | name = "env_logger" 442 | version = "0.11.8" 443 | source = "registry+https://github.com/rust-lang/crates.io-index" 444 | checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" 445 | dependencies = [ 446 | "anstream", 447 | "anstyle", 448 | "env_filter", 449 | "jiff", 450 | "log", 451 | ] 452 | 453 | [[package]] 454 | name = "equivalent" 455 | version = "1.0.2" 456 | source = "registry+https://github.com/rust-lang/crates.io-index" 457 | checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 458 | 459 | [[package]] 460 | name = "errno" 461 | version = "0.3.14" 462 | source = "registry+https://github.com/rust-lang/crates.io-index" 463 | checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" 464 | dependencies = [ 465 | "libc", 466 | "windows-sys 0.61.2", 467 | ] 468 | 469 | [[package]] 470 | name = "error-code" 471 | version = "3.3.2" 472 | source = "registry+https://github.com/rust-lang/crates.io-index" 473 | checksum = "dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59" 474 | 475 | [[package]] 476 | name = "etcetera" 477 | version = "0.10.0" 478 | source = "registry+https://github.com/rust-lang/crates.io-index" 479 | checksum = "26c7b13d0780cb82722fd59f6f57f925e143427e4a75313a6c77243bf5326ae6" 480 | dependencies = [ 481 | "cfg-if", 482 | "home", 483 | "windows-sys 0.59.0", 484 | ] 485 | 486 | [[package]] 487 | name = "faster-hex" 488 | version = "0.10.0" 489 | source = "registry+https://github.com/rust-lang/crates.io-index" 490 | checksum = "7223ae2d2f179b803433d9c830478527e92b8117eab39460edae7f1614d9fb73" 491 | dependencies = [ 492 | "heapless", 493 | "serde", 494 | ] 495 | 496 | [[package]] 497 | name = "fastrand" 498 | version = "2.3.0" 499 | source = "registry+https://github.com/rust-lang/crates.io-index" 500 | checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 501 | 502 | [[package]] 503 | name = "faststr" 504 | version = "0.2.32" 505 | source = "registry+https://github.com/rust-lang/crates.io-index" 506 | checksum = "baec6a0289d7f1fe5665586ef7340af82e3037207bef60f5785e57569776f0c8" 507 | dependencies = [ 508 | "bytes", 509 | "rkyv", 510 | "serde", 511 | "simdutf8", 512 | ] 513 | 514 | [[package]] 515 | name = "fern" 516 | version = "0.7.1" 517 | source = "registry+https://github.com/rust-lang/crates.io-index" 518 | checksum = "4316185f709b23713e41e3195f90edef7fb00c3ed4adc79769cf09cc762a3b29" 519 | dependencies = [ 520 | "log", 521 | ] 522 | 523 | [[package]] 524 | name = "filetime" 525 | version = "0.2.26" 526 | source = "registry+https://github.com/rust-lang/crates.io-index" 527 | checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" 528 | dependencies = [ 529 | "cfg-if", 530 | "libc", 531 | "libredox", 532 | "windows-sys 0.60.2", 533 | ] 534 | 535 | [[package]] 536 | name = "find-msvc-tools" 537 | version = "0.1.4" 538 | source = "registry+https://github.com/rust-lang/crates.io-index" 539 | checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" 540 | 541 | [[package]] 542 | name = "flate2" 543 | version = "1.1.4" 544 | source = "registry+https://github.com/rust-lang/crates.io-index" 545 | checksum = "dc5a4e564e38c699f2880d3fda590bedc2e69f3f84cd48b457bd892ce61d0aa9" 546 | dependencies = [ 547 | "crc32fast", 548 | "libz-rs-sys", 549 | "miniz_oxide", 550 | ] 551 | 552 | [[package]] 553 | name = "fnv" 554 | version = "1.0.7" 555 | source = "registry+https://github.com/rust-lang/crates.io-index" 556 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 557 | 558 | [[package]] 559 | name = "foldhash" 560 | version = "0.1.5" 561 | source = "registry+https://github.com/rust-lang/crates.io-index" 562 | checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 563 | 564 | [[package]] 565 | name = "foldhash" 566 | version = "0.2.0" 567 | source = "registry+https://github.com/rust-lang/crates.io-index" 568 | checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" 569 | 570 | [[package]] 571 | name = "form_urlencoded" 572 | version = "1.2.2" 573 | source = "registry+https://github.com/rust-lang/crates.io-index" 574 | checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" 575 | dependencies = [ 576 | "percent-encoding", 577 | ] 578 | 579 | [[package]] 580 | name = "futures-core" 581 | version = "0.3.31" 582 | source = "registry+https://github.com/rust-lang/crates.io-index" 583 | checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 584 | 585 | [[package]] 586 | name = "futures-executor" 587 | version = "0.3.31" 588 | source = "registry+https://github.com/rust-lang/crates.io-index" 589 | checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" 590 | dependencies = [ 591 | "futures-core", 592 | "futures-task", 593 | "futures-util", 594 | ] 595 | 596 | [[package]] 597 | name = "futures-task" 598 | version = "0.3.31" 599 | source = "registry+https://github.com/rust-lang/crates.io-index" 600 | checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 601 | 602 | [[package]] 603 | name = "futures-util" 604 | version = "0.3.31" 605 | source = "registry+https://github.com/rust-lang/crates.io-index" 606 | checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 607 | dependencies = [ 608 | "futures-core", 609 | "futures-task", 610 | "pin-project-lite", 611 | "pin-utils", 612 | "slab", 613 | ] 614 | 615 | [[package]] 616 | name = "generic-array" 617 | version = "0.14.9" 618 | source = "registry+https://github.com/rust-lang/crates.io-index" 619 | checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" 620 | dependencies = [ 621 | "typenum", 622 | "version_check", 623 | ] 624 | 625 | [[package]] 626 | name = "getrandom" 627 | version = "0.3.4" 628 | source = "registry+https://github.com/rust-lang/crates.io-index" 629 | checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" 630 | dependencies = [ 631 | "cfg-if", 632 | "libc", 633 | "r-efi", 634 | "wasip2", 635 | ] 636 | 637 | [[package]] 638 | name = "gix" 639 | version = "0.73.0" 640 | source = "registry+https://github.com/rust-lang/crates.io-index" 641 | checksum = "514c29cc879bdc0286b0cbc205585a49b252809eb86c69df4ce4f855ee75f635" 642 | dependencies = [ 643 | "gix-actor", 644 | "gix-attributes", 645 | "gix-command", 646 | "gix-commitgraph", 647 | "gix-config", 648 | "gix-date", 649 | "gix-diff", 650 | "gix-dir", 651 | "gix-discover", 652 | "gix-features", 653 | "gix-filter", 654 | "gix-fs", 655 | "gix-glob", 656 | "gix-hash", 657 | "gix-hashtable", 658 | "gix-ignore", 659 | "gix-index", 660 | "gix-lock", 661 | "gix-object", 662 | "gix-odb", 663 | "gix-pack", 664 | "gix-path", 665 | "gix-pathspec", 666 | "gix-protocol", 667 | "gix-ref", 668 | "gix-refspec", 669 | "gix-revision", 670 | "gix-revwalk", 671 | "gix-sec", 672 | "gix-shallow", 673 | "gix-status", 674 | "gix-submodule", 675 | "gix-tempfile", 676 | "gix-trace", 677 | "gix-traverse", 678 | "gix-url", 679 | "gix-utils", 680 | "gix-validate", 681 | "gix-worktree", 682 | "once_cell", 683 | "smallvec", 684 | "thiserror", 685 | ] 686 | 687 | [[package]] 688 | name = "gix-actor" 689 | version = "0.35.5" 690 | source = "registry+https://github.com/rust-lang/crates.io-index" 691 | checksum = "575bb2dafa4e56721c0f7e8b2da647452e6c10c69b6157b118388a132cccb892" 692 | dependencies = [ 693 | "bstr", 694 | "gix-date", 695 | "gix-utils", 696 | "itoa", 697 | "thiserror", 698 | "winnow", 699 | ] 700 | 701 | [[package]] 702 | name = "gix-attributes" 703 | version = "0.27.0" 704 | source = "registry+https://github.com/rust-lang/crates.io-index" 705 | checksum = "45442188216d08a5959af195f659cb1f244a50d7d2d0c3873633b1cd7135f638" 706 | dependencies = [ 707 | "bstr", 708 | "gix-glob", 709 | "gix-path", 710 | "gix-quote", 711 | "gix-trace", 712 | "kstring", 713 | "smallvec", 714 | "thiserror", 715 | "unicode-bom", 716 | ] 717 | 718 | [[package]] 719 | name = "gix-bitmap" 720 | version = "0.2.15" 721 | source = "registry+https://github.com/rust-lang/crates.io-index" 722 | checksum = "5e150161b8a75b5860521cb876b506879a3376d3adc857ec7a9d35e7c6a5e531" 723 | dependencies = [ 724 | "thiserror", 725 | ] 726 | 727 | [[package]] 728 | name = "gix-chunk" 729 | version = "0.4.12" 730 | source = "registry+https://github.com/rust-lang/crates.io-index" 731 | checksum = "5c356b3825677cb6ff579551bb8311a81821e184453cbd105e2fc5311b288eeb" 732 | dependencies = [ 733 | "thiserror", 734 | ] 735 | 736 | [[package]] 737 | name = "gix-command" 738 | version = "0.6.3" 739 | source = "registry+https://github.com/rust-lang/crates.io-index" 740 | checksum = "095c8367c9dc4872a7706fbc39c7f34271b88b541120a4365ff0e36366f66e62" 741 | dependencies = [ 742 | "bstr", 743 | "gix-path", 744 | "gix-quote", 745 | "gix-trace", 746 | "shell-words", 747 | ] 748 | 749 | [[package]] 750 | name = "gix-commitgraph" 751 | version = "0.29.0" 752 | source = "registry+https://github.com/rust-lang/crates.io-index" 753 | checksum = "6bb23121e952f43a5b07e3e80890336cb847297467a410475036242732980d06" 754 | dependencies = [ 755 | "bstr", 756 | "gix-chunk", 757 | "gix-hash", 758 | "memmap2", 759 | "thiserror", 760 | ] 761 | 762 | [[package]] 763 | name = "gix-config" 764 | version = "0.46.0" 765 | source = "registry+https://github.com/rust-lang/crates.io-index" 766 | checksum = "5dfb898c5b695fd4acfc3c0ab638525a65545d47706064dcf7b5ead6cdb136c0" 767 | dependencies = [ 768 | "bstr", 769 | "gix-config-value", 770 | "gix-features", 771 | "gix-glob", 772 | "gix-path", 773 | "gix-ref", 774 | "gix-sec", 775 | "memchr", 776 | "once_cell", 777 | "smallvec", 778 | "thiserror", 779 | "unicode-bom", 780 | "winnow", 781 | ] 782 | 783 | [[package]] 784 | name = "gix-config-value" 785 | version = "0.15.2" 786 | source = "registry+https://github.com/rust-lang/crates.io-index" 787 | checksum = "7d837b93598b240624ed9b30f3a7629dc6088db60a025c90a628116a16d26719" 788 | dependencies = [ 789 | "bitflags", 790 | "bstr", 791 | "gix-path", 792 | "libc", 793 | "thiserror", 794 | ] 795 | 796 | [[package]] 797 | name = "gix-date" 798 | version = "0.10.6" 799 | source = "registry+https://github.com/rust-lang/crates.io-index" 800 | checksum = "36911ec97d0343048c6ecbcd2dcbcc6a9adf8272845417593915d1f8514b44ee" 801 | dependencies = [ 802 | "bstr", 803 | "itoa", 804 | "jiff", 805 | "smallvec", 806 | "thiserror", 807 | ] 808 | 809 | [[package]] 810 | name = "gix-diff" 811 | version = "0.53.0" 812 | source = "registry+https://github.com/rust-lang/crates.io-index" 813 | checksum = "de854852010d44a317f30c92d67a983e691c9478c8a3fb4117c1f48626bcdea8" 814 | dependencies = [ 815 | "bstr", 816 | "gix-attributes", 817 | "gix-command", 818 | "gix-filter", 819 | "gix-fs", 820 | "gix-hash", 821 | "gix-index", 822 | "gix-object", 823 | "gix-path", 824 | "gix-pathspec", 825 | "gix-tempfile", 826 | "gix-trace", 827 | "gix-traverse", 828 | "gix-worktree", 829 | "imara-diff 0.1.8", 830 | "thiserror", 831 | ] 832 | 833 | [[package]] 834 | name = "gix-dir" 835 | version = "0.15.0" 836 | source = "registry+https://github.com/rust-lang/crates.io-index" 837 | checksum = "dad34e4f373f94902df1ba1d2a1df3a1b29eacd15e316ac5972d842e31422dd7" 838 | dependencies = [ 839 | "bstr", 840 | "gix-discover", 841 | "gix-fs", 842 | "gix-ignore", 843 | "gix-index", 844 | "gix-object", 845 | "gix-path", 846 | "gix-pathspec", 847 | "gix-trace", 848 | "gix-utils", 849 | "gix-worktree", 850 | "thiserror", 851 | ] 852 | 853 | [[package]] 854 | name = "gix-discover" 855 | version = "0.41.0" 856 | source = "registry+https://github.com/rust-lang/crates.io-index" 857 | checksum = "ffb180c91ca1a2cf53e828bb63d8d8f8fa7526f49b83b33d7f46cbeb5d79d30a" 858 | dependencies = [ 859 | "bstr", 860 | "dunce", 861 | "gix-fs", 862 | "gix-hash", 863 | "gix-path", 864 | "gix-ref", 865 | "gix-sec", 866 | "thiserror", 867 | ] 868 | 869 | [[package]] 870 | name = "gix-features" 871 | version = "0.43.1" 872 | source = "registry+https://github.com/rust-lang/crates.io-index" 873 | checksum = "cd1543cd9b8abcbcebaa1a666a5c168ee2cda4dea50d3961ee0e6d1c42f81e5b" 874 | dependencies = [ 875 | "crc32fast", 876 | "flate2", 877 | "gix-path", 878 | "gix-trace", 879 | "gix-utils", 880 | "libc", 881 | "once_cell", 882 | "prodash", 883 | "thiserror", 884 | "walkdir", 885 | ] 886 | 887 | [[package]] 888 | name = "gix-filter" 889 | version = "0.20.0" 890 | source = "registry+https://github.com/rust-lang/crates.io-index" 891 | checksum = "aa6571a3927e7ab10f64279a088e0dae08e8da05547771796d7389bbe28ad9ff" 892 | dependencies = [ 893 | "bstr", 894 | "encoding_rs", 895 | "gix-attributes", 896 | "gix-command", 897 | "gix-hash", 898 | "gix-object", 899 | "gix-packetline-blocking", 900 | "gix-path", 901 | "gix-quote", 902 | "gix-trace", 903 | "gix-utils", 904 | "smallvec", 905 | "thiserror", 906 | ] 907 | 908 | [[package]] 909 | name = "gix-fs" 910 | version = "0.16.1" 911 | source = "registry+https://github.com/rust-lang/crates.io-index" 912 | checksum = "9a4d90307d064fa7230e0f87b03231be28f8ba63b913fc15346f489519d0c304" 913 | dependencies = [ 914 | "bstr", 915 | "fastrand", 916 | "gix-features", 917 | "gix-path", 918 | "gix-utils", 919 | "thiserror", 920 | ] 921 | 922 | [[package]] 923 | name = "gix-glob" 924 | version = "0.21.0" 925 | source = "registry+https://github.com/rust-lang/crates.io-index" 926 | checksum = "b947db8366823e7a750c254f6bb29e27e17f27e457bf336ba79b32423db62cd5" 927 | dependencies = [ 928 | "bitflags", 929 | "bstr", 930 | "gix-features", 931 | "gix-path", 932 | ] 933 | 934 | [[package]] 935 | name = "gix-hash" 936 | version = "0.19.0" 937 | source = "registry+https://github.com/rust-lang/crates.io-index" 938 | checksum = "251fad79796a731a2a7664d9ea95ee29a9e99474de2769e152238d4fdb69d50e" 939 | dependencies = [ 940 | "faster-hex", 941 | "gix-features", 942 | "sha1-checked", 943 | "thiserror", 944 | ] 945 | 946 | [[package]] 947 | name = "gix-hashtable" 948 | version = "0.9.0" 949 | source = "registry+https://github.com/rust-lang/crates.io-index" 950 | checksum = "c35300b54896153e55d53f4180460931ccd69b7e8d2f6b9d6401122cdedc4f07" 951 | dependencies = [ 952 | "gix-hash", 953 | "hashbrown 0.15.5", 954 | "parking_lot", 955 | ] 956 | 957 | [[package]] 958 | name = "gix-ignore" 959 | version = "0.16.0" 960 | source = "registry+https://github.com/rust-lang/crates.io-index" 961 | checksum = "564d6fddf46e2c981f571b23d6ad40cb08bddcaf6fc7458b1d49727ad23c2870" 962 | dependencies = [ 963 | "bstr", 964 | "gix-glob", 965 | "gix-path", 966 | "gix-trace", 967 | "unicode-bom", 968 | ] 969 | 970 | [[package]] 971 | name = "gix-index" 972 | version = "0.41.0" 973 | source = "registry+https://github.com/rust-lang/crates.io-index" 974 | checksum = "2af39fde3ce4ce11371d9ce826f2936ec347318f2d1972fe98c2e7134e267e25" 975 | dependencies = [ 976 | "bitflags", 977 | "bstr", 978 | "filetime", 979 | "fnv", 980 | "gix-bitmap", 981 | "gix-features", 982 | "gix-fs", 983 | "gix-hash", 984 | "gix-lock", 985 | "gix-object", 986 | "gix-traverse", 987 | "gix-utils", 988 | "gix-validate", 989 | "hashbrown 0.15.5", 990 | "itoa", 991 | "libc", 992 | "memmap2", 993 | "rustix 1.1.2", 994 | "smallvec", 995 | "thiserror", 996 | ] 997 | 998 | [[package]] 999 | name = "gix-lock" 1000 | version = "18.0.0" 1001 | source = "registry+https://github.com/rust-lang/crates.io-index" 1002 | checksum = "b9fa71da90365668a621e184eb5b979904471af1b3b09b943a84bc50e8ad42ed" 1003 | dependencies = [ 1004 | "gix-tempfile", 1005 | "gix-utils", 1006 | "thiserror", 1007 | ] 1008 | 1009 | [[package]] 1010 | name = "gix-object" 1011 | version = "0.50.2" 1012 | source = "registry+https://github.com/rust-lang/crates.io-index" 1013 | checksum = "d69ce108ab67b65fbd4fb7e1331502429d78baeb2eee10008bdef55765397c07" 1014 | dependencies = [ 1015 | "bstr", 1016 | "gix-actor", 1017 | "gix-date", 1018 | "gix-features", 1019 | "gix-hash", 1020 | "gix-hashtable", 1021 | "gix-path", 1022 | "gix-utils", 1023 | "gix-validate", 1024 | "itoa", 1025 | "smallvec", 1026 | "thiserror", 1027 | "winnow", 1028 | ] 1029 | 1030 | [[package]] 1031 | name = "gix-odb" 1032 | version = "0.70.0" 1033 | source = "registry+https://github.com/rust-lang/crates.io-index" 1034 | checksum = "9c9d7af10fda9df0bb4f7f9bd507963560b3c66cb15a5b825caf752e0eb109ac" 1035 | dependencies = [ 1036 | "arc-swap", 1037 | "gix-date", 1038 | "gix-features", 1039 | "gix-fs", 1040 | "gix-hash", 1041 | "gix-hashtable", 1042 | "gix-object", 1043 | "gix-pack", 1044 | "gix-path", 1045 | "gix-quote", 1046 | "parking_lot", 1047 | "tempfile", 1048 | "thiserror", 1049 | ] 1050 | 1051 | [[package]] 1052 | name = "gix-pack" 1053 | version = "0.60.0" 1054 | source = "registry+https://github.com/rust-lang/crates.io-index" 1055 | checksum = "d8571df89bfca5abb49c3e3372393f7af7e6f8b8dbe2b96303593cef5b263019" 1056 | dependencies = [ 1057 | "clru", 1058 | "gix-chunk", 1059 | "gix-features", 1060 | "gix-hash", 1061 | "gix-hashtable", 1062 | "gix-object", 1063 | "gix-path", 1064 | "memmap2", 1065 | "smallvec", 1066 | "thiserror", 1067 | ] 1068 | 1069 | [[package]] 1070 | name = "gix-packetline" 1071 | version = "0.19.2" 1072 | source = "registry+https://github.com/rust-lang/crates.io-index" 1073 | checksum = "cd57d692b4625c2ece7634ba5d71939bbfe07bcc70eac92e10875faaf83f5316" 1074 | dependencies = [ 1075 | "bstr", 1076 | "faster-hex", 1077 | "gix-trace", 1078 | "thiserror", 1079 | ] 1080 | 1081 | [[package]] 1082 | name = "gix-packetline-blocking" 1083 | version = "0.19.2" 1084 | source = "registry+https://github.com/rust-lang/crates.io-index" 1085 | checksum = "d10476ed5b3c9e04113e16dbee1fa7a4690279f257a74691e85372c63588c4fd" 1086 | dependencies = [ 1087 | "bstr", 1088 | "faster-hex", 1089 | "gix-trace", 1090 | "thiserror", 1091 | ] 1092 | 1093 | [[package]] 1094 | name = "gix-path" 1095 | version = "0.10.21" 1096 | source = "registry+https://github.com/rust-lang/crates.io-index" 1097 | checksum = "0416b41cd00ff292af9b94b0660880c44bd2ed66828ddca9a2b333535cbb71b8" 1098 | dependencies = [ 1099 | "bstr", 1100 | "gix-trace", 1101 | "gix-validate", 1102 | "home", 1103 | "thiserror", 1104 | ] 1105 | 1106 | [[package]] 1107 | name = "gix-pathspec" 1108 | version = "0.12.0" 1109 | source = "registry+https://github.com/rust-lang/crates.io-index" 1110 | checksum = "daedead611c9bd1f3640dc90a9012b45f790201788af4d659f28d94071da7fba" 1111 | dependencies = [ 1112 | "bitflags", 1113 | "bstr", 1114 | "gix-attributes", 1115 | "gix-config-value", 1116 | "gix-glob", 1117 | "gix-path", 1118 | "thiserror", 1119 | ] 1120 | 1121 | [[package]] 1122 | name = "gix-protocol" 1123 | version = "0.51.0" 1124 | source = "registry+https://github.com/rust-lang/crates.io-index" 1125 | checksum = "12b4b807c47ffcf7c1e5b8119585368a56449f3493da93b931e1d4239364e922" 1126 | dependencies = [ 1127 | "bstr", 1128 | "gix-date", 1129 | "gix-features", 1130 | "gix-hash", 1131 | "gix-ref", 1132 | "gix-shallow", 1133 | "gix-transport", 1134 | "gix-utils", 1135 | "maybe-async", 1136 | "thiserror", 1137 | "winnow", 1138 | ] 1139 | 1140 | [[package]] 1141 | name = "gix-quote" 1142 | version = "0.6.1" 1143 | source = "registry+https://github.com/rust-lang/crates.io-index" 1144 | checksum = "e912ec04b7b1566a85ad486db0cab6b9955e3e32bcd3c3a734542ab3af084c5b" 1145 | dependencies = [ 1146 | "bstr", 1147 | "gix-utils", 1148 | "thiserror", 1149 | ] 1150 | 1151 | [[package]] 1152 | name = "gix-ref" 1153 | version = "0.53.1" 1154 | source = "registry+https://github.com/rust-lang/crates.io-index" 1155 | checksum = "b966f578079a42f4a51413b17bce476544cca1cf605753466669082f94721758" 1156 | dependencies = [ 1157 | "gix-actor", 1158 | "gix-features", 1159 | "gix-fs", 1160 | "gix-hash", 1161 | "gix-lock", 1162 | "gix-object", 1163 | "gix-path", 1164 | "gix-tempfile", 1165 | "gix-utils", 1166 | "gix-validate", 1167 | "memmap2", 1168 | "thiserror", 1169 | "winnow", 1170 | ] 1171 | 1172 | [[package]] 1173 | name = "gix-refspec" 1174 | version = "0.31.0" 1175 | source = "registry+https://github.com/rust-lang/crates.io-index" 1176 | checksum = "7d29cae1ae31108826e7156a5e60bffacab405f4413f5bc0375e19772cce0055" 1177 | dependencies = [ 1178 | "bstr", 1179 | "gix-hash", 1180 | "gix-revision", 1181 | "gix-validate", 1182 | "smallvec", 1183 | "thiserror", 1184 | ] 1185 | 1186 | [[package]] 1187 | name = "gix-revision" 1188 | version = "0.35.0" 1189 | source = "registry+https://github.com/rust-lang/crates.io-index" 1190 | checksum = "f651f2b1742f760bb8161d6743229206e962b73d9c33c41f4e4aefa6586cbd3d" 1191 | dependencies = [ 1192 | "bstr", 1193 | "gix-commitgraph", 1194 | "gix-date", 1195 | "gix-hash", 1196 | "gix-object", 1197 | "gix-revwalk", 1198 | "thiserror", 1199 | ] 1200 | 1201 | [[package]] 1202 | name = "gix-revwalk" 1203 | version = "0.21.0" 1204 | source = "registry+https://github.com/rust-lang/crates.io-index" 1205 | checksum = "06e74f91709729e099af6721bd0fa7d62f243f2005085152301ca5cdd86ec02c" 1206 | dependencies = [ 1207 | "gix-commitgraph", 1208 | "gix-date", 1209 | "gix-hash", 1210 | "gix-hashtable", 1211 | "gix-object", 1212 | "smallvec", 1213 | "thiserror", 1214 | ] 1215 | 1216 | [[package]] 1217 | name = "gix-sec" 1218 | version = "0.12.1" 1219 | source = "registry+https://github.com/rust-lang/crates.io-index" 1220 | checksum = "52e45952d0f94824e6ae7e4388b4cf9691cf50ca2ac544e3540858305a316ce7" 1221 | dependencies = [ 1222 | "bitflags", 1223 | "gix-path", 1224 | "libc", 1225 | "windows-sys 0.61.2", 1226 | ] 1227 | 1228 | [[package]] 1229 | name = "gix-shallow" 1230 | version = "0.5.0" 1231 | source = "registry+https://github.com/rust-lang/crates.io-index" 1232 | checksum = "d936745103243ae4c510f19e0760ce73fb0f08096588fdbe0f0d7fb7ce8944b7" 1233 | dependencies = [ 1234 | "bstr", 1235 | "gix-hash", 1236 | "gix-lock", 1237 | "thiserror", 1238 | ] 1239 | 1240 | [[package]] 1241 | name = "gix-status" 1242 | version = "0.20.0" 1243 | source = "registry+https://github.com/rust-lang/crates.io-index" 1244 | checksum = "2a4afff9b34eeececa8bdc32b42fb318434b6b1391d9f8d45fe455af08dc2d35" 1245 | dependencies = [ 1246 | "bstr", 1247 | "filetime", 1248 | "gix-diff", 1249 | "gix-dir", 1250 | "gix-features", 1251 | "gix-filter", 1252 | "gix-fs", 1253 | "gix-hash", 1254 | "gix-index", 1255 | "gix-object", 1256 | "gix-path", 1257 | "gix-pathspec", 1258 | "gix-worktree", 1259 | "portable-atomic", 1260 | "thiserror", 1261 | ] 1262 | 1263 | [[package]] 1264 | name = "gix-submodule" 1265 | version = "0.20.0" 1266 | source = "registry+https://github.com/rust-lang/crates.io-index" 1267 | checksum = "657cc5dd43cbc7a14d9c5aaf02cfbe9c2a15d077cded3f304adb30ef78852d3e" 1268 | dependencies = [ 1269 | "bstr", 1270 | "gix-config", 1271 | "gix-path", 1272 | "gix-pathspec", 1273 | "gix-refspec", 1274 | "gix-url", 1275 | "thiserror", 1276 | ] 1277 | 1278 | [[package]] 1279 | name = "gix-tempfile" 1280 | version = "18.0.0" 1281 | source = "registry+https://github.com/rust-lang/crates.io-index" 1282 | checksum = "666c0041bcdedf5fa05e9bef663c897debab24b7dc1741605742412d1d47da57" 1283 | dependencies = [ 1284 | "dashmap", 1285 | "gix-fs", 1286 | "libc", 1287 | "once_cell", 1288 | "parking_lot", 1289 | "tempfile", 1290 | ] 1291 | 1292 | [[package]] 1293 | name = "gix-trace" 1294 | version = "0.1.14" 1295 | source = "registry+https://github.com/rust-lang/crates.io-index" 1296 | checksum = "d35bf1c8c1a883bdbb17ed1fef49be8c751a50dc3a28a2deb4234d826eddb4bb" 1297 | 1298 | [[package]] 1299 | name = "gix-transport" 1300 | version = "0.48.0" 1301 | source = "registry+https://github.com/rust-lang/crates.io-index" 1302 | checksum = "12f7cc0179fc89d53c54e1f9ce51229494864ab4bf136132d69db1b011741ca3" 1303 | dependencies = [ 1304 | "bstr", 1305 | "gix-command", 1306 | "gix-features", 1307 | "gix-packetline", 1308 | "gix-quote", 1309 | "gix-sec", 1310 | "gix-url", 1311 | "thiserror", 1312 | ] 1313 | 1314 | [[package]] 1315 | name = "gix-traverse" 1316 | version = "0.47.0" 1317 | source = "registry+https://github.com/rust-lang/crates.io-index" 1318 | checksum = "c7cdc82509d792ba0ad815f86f6b469c7afe10f94362e96c4494525a6601bdd5" 1319 | dependencies = [ 1320 | "bitflags", 1321 | "gix-commitgraph", 1322 | "gix-date", 1323 | "gix-hash", 1324 | "gix-hashtable", 1325 | "gix-object", 1326 | "gix-revwalk", 1327 | "smallvec", 1328 | "thiserror", 1329 | ] 1330 | 1331 | [[package]] 1332 | name = "gix-url" 1333 | version = "0.32.0" 1334 | source = "registry+https://github.com/rust-lang/crates.io-index" 1335 | checksum = "1b76a9d266254ad287ffd44467cd88e7868799b08f4d52e02d942b93e514d16f" 1336 | dependencies = [ 1337 | "bstr", 1338 | "gix-features", 1339 | "gix-path", 1340 | "percent-encoding", 1341 | "thiserror", 1342 | "url", 1343 | ] 1344 | 1345 | [[package]] 1346 | name = "gix-utils" 1347 | version = "0.3.1" 1348 | source = "registry+https://github.com/rust-lang/crates.io-index" 1349 | checksum = "befcdbdfb1238d2854591f760a48711bed85e72d80a10e8f2f93f656746ef7c5" 1350 | dependencies = [ 1351 | "bstr", 1352 | "fastrand", 1353 | "unicode-normalization", 1354 | ] 1355 | 1356 | [[package]] 1357 | name = "gix-validate" 1358 | version = "0.10.1" 1359 | source = "registry+https://github.com/rust-lang/crates.io-index" 1360 | checksum = "5b1e63a5b516e970a594f870ed4571a8fdcb8a344e7bd407a20db8bd61dbfde4" 1361 | dependencies = [ 1362 | "bstr", 1363 | "thiserror", 1364 | ] 1365 | 1366 | [[package]] 1367 | name = "gix-worktree" 1368 | version = "0.42.0" 1369 | source = "registry+https://github.com/rust-lang/crates.io-index" 1370 | checksum = "55f625ac9126c19bef06dbc6d2703cdd7987e21e35b497bb265ac37d383877b1" 1371 | dependencies = [ 1372 | "bstr", 1373 | "gix-attributes", 1374 | "gix-features", 1375 | "gix-fs", 1376 | "gix-glob", 1377 | "gix-hash", 1378 | "gix-ignore", 1379 | "gix-index", 1380 | "gix-object", 1381 | "gix-path", 1382 | "gix-validate", 1383 | ] 1384 | 1385 | [[package]] 1386 | name = "globset" 1387 | version = "0.4.16" 1388 | source = "registry+https://github.com/rust-lang/crates.io-index" 1389 | checksum = "54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5" 1390 | dependencies = [ 1391 | "aho-corasick", 1392 | "bstr", 1393 | "log", 1394 | "regex-automata", 1395 | "regex-syntax", 1396 | ] 1397 | 1398 | [[package]] 1399 | name = "grep-matcher" 1400 | version = "0.1.7" 1401 | source = "registry+https://github.com/rust-lang/crates.io-index" 1402 | checksum = "47a3141a10a43acfedc7c98a60a834d7ba00dfe7bec9071cbfc19b55b292ac02" 1403 | dependencies = [ 1404 | "memchr", 1405 | ] 1406 | 1407 | [[package]] 1408 | name = "grep-regex" 1409 | version = "0.1.13" 1410 | source = "registry+https://github.com/rust-lang/crates.io-index" 1411 | checksum = "9edd147c7e3296e7a26bd3a81345ce849557d5a8e48ed88f736074e760f91f7e" 1412 | dependencies = [ 1413 | "bstr", 1414 | "grep-matcher", 1415 | "log", 1416 | "regex-automata", 1417 | "regex-syntax", 1418 | ] 1419 | 1420 | [[package]] 1421 | name = "grep-searcher" 1422 | version = "0.1.14" 1423 | source = "registry+https://github.com/rust-lang/crates.io-index" 1424 | checksum = "b9b6c14b3fc2e0a107d6604d3231dec0509e691e62447104bc385a46a7892cda" 1425 | dependencies = [ 1426 | "bstr", 1427 | "encoding_rs", 1428 | "encoding_rs_io", 1429 | "grep-matcher", 1430 | "log", 1431 | "memchr", 1432 | "memmap2", 1433 | ] 1434 | 1435 | [[package]] 1436 | name = "hash32" 1437 | version = "0.3.1" 1438 | source = "registry+https://github.com/rust-lang/crates.io-index" 1439 | checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" 1440 | dependencies = [ 1441 | "byteorder", 1442 | ] 1443 | 1444 | [[package]] 1445 | name = "hashbrown" 1446 | version = "0.14.5" 1447 | source = "registry+https://github.com/rust-lang/crates.io-index" 1448 | checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 1449 | 1450 | [[package]] 1451 | name = "hashbrown" 1452 | version = "0.15.5" 1453 | source = "registry+https://github.com/rust-lang/crates.io-index" 1454 | checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" 1455 | dependencies = [ 1456 | "allocator-api2", 1457 | "equivalent", 1458 | "foldhash 0.1.5", 1459 | ] 1460 | 1461 | [[package]] 1462 | name = "hashbrown" 1463 | version = "0.16.0" 1464 | source = "registry+https://github.com/rust-lang/crates.io-index" 1465 | checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" 1466 | dependencies = [ 1467 | "allocator-api2", 1468 | "equivalent", 1469 | "foldhash 0.2.0", 1470 | ] 1471 | 1472 | [[package]] 1473 | name = "heapless" 1474 | version = "0.8.0" 1475 | source = "registry+https://github.com/rust-lang/crates.io-index" 1476 | checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" 1477 | dependencies = [ 1478 | "hash32", 1479 | "stable_deref_trait", 1480 | ] 1481 | 1482 | [[package]] 1483 | name = "heck" 1484 | version = "0.5.0" 1485 | source = "registry+https://github.com/rust-lang/crates.io-index" 1486 | checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 1487 | 1488 | [[package]] 1489 | name = "helix-core" 1490 | version = "25.7.1" 1491 | source = "git+https://github.com/helix-editor/helix.git#d79cce4e4bfc24dd204f1b294c899ed73f7e9453" 1492 | dependencies = [ 1493 | "anyhow", 1494 | "arc-swap", 1495 | "bitflags", 1496 | "chrono", 1497 | "encoding_rs", 1498 | "foldhash 0.2.0", 1499 | "globset", 1500 | "helix-loader", 1501 | "helix-parsec", 1502 | "helix-stdx", 1503 | "imara-diff 0.2.0", 1504 | "log", 1505 | "nucleo", 1506 | "once_cell", 1507 | "parking_lot", 1508 | "regex", 1509 | "regex-cursor", 1510 | "ropey", 1511 | "serde", 1512 | "serde_json", 1513 | "slotmap", 1514 | "smallvec", 1515 | "smartstring", 1516 | "textwrap", 1517 | "toml 0.9.8", 1518 | "tree-house", 1519 | "unicode-general-category", 1520 | "unicode-segmentation", 1521 | "unicode-width 0.1.12", 1522 | "url", 1523 | ] 1524 | 1525 | [[package]] 1526 | name = "helix-dap" 1527 | version = "25.7.1" 1528 | source = "git+https://github.com/helix-editor/helix.git#d79cce4e4bfc24dd204f1b294c899ed73f7e9453" 1529 | dependencies = [ 1530 | "anyhow", 1531 | "futures-executor", 1532 | "futures-util", 1533 | "helix-core", 1534 | "helix-stdx", 1535 | "log", 1536 | "serde", 1537 | "serde_json", 1538 | "slotmap", 1539 | "sonic-rs", 1540 | "thiserror", 1541 | "tokio", 1542 | "tokio-stream", 1543 | ] 1544 | 1545 | [[package]] 1546 | name = "helix-driver" 1547 | version = "0.1.0" 1548 | dependencies = [ 1549 | "anyhow", 1550 | "arc-swap", 1551 | "clap", 1552 | "env_logger", 1553 | "helix-core", 1554 | "helix-event", 1555 | "helix-loader", 1556 | "helix-term", 1557 | "helix-view", 1558 | "log", 1559 | "tokio", 1560 | "toml 0.8.23", 1561 | ] 1562 | 1563 | [[package]] 1564 | name = "helix-event" 1565 | version = "25.7.1" 1566 | source = "git+https://github.com/helix-editor/helix.git#d79cce4e4bfc24dd204f1b294c899ed73f7e9453" 1567 | dependencies = [ 1568 | "anyhow", 1569 | "foldhash 0.2.0", 1570 | "futures-executor", 1571 | "hashbrown 0.16.0", 1572 | "log", 1573 | "once_cell", 1574 | "parking_lot", 1575 | "tokio", 1576 | ] 1577 | 1578 | [[package]] 1579 | name = "helix-loader" 1580 | version = "25.7.1" 1581 | source = "git+https://github.com/helix-editor/helix.git#d79cce4e4bfc24dd204f1b294c899ed73f7e9453" 1582 | dependencies = [ 1583 | "anyhow", 1584 | "cc", 1585 | "etcetera", 1586 | "helix-stdx", 1587 | "log", 1588 | "once_cell", 1589 | "serde", 1590 | "tempfile", 1591 | "threadpool", 1592 | "toml 0.9.8", 1593 | "tree-house", 1594 | ] 1595 | 1596 | [[package]] 1597 | name = "helix-lsp" 1598 | version = "25.7.1" 1599 | source = "git+https://github.com/helix-editor/helix.git#d79cce4e4bfc24dd204f1b294c899ed73f7e9453" 1600 | dependencies = [ 1601 | "anyhow", 1602 | "arc-swap", 1603 | "futures-executor", 1604 | "futures-util", 1605 | "globset", 1606 | "helix-core", 1607 | "helix-loader", 1608 | "helix-lsp-types", 1609 | "helix-stdx", 1610 | "log", 1611 | "parking_lot", 1612 | "serde", 1613 | "serde_json", 1614 | "slotmap", 1615 | "sonic-rs", 1616 | "thiserror", 1617 | "tokio", 1618 | "tokio-stream", 1619 | ] 1620 | 1621 | [[package]] 1622 | name = "helix-lsp-types" 1623 | version = "0.95.1" 1624 | source = "git+https://github.com/helix-editor/helix.git#d79cce4e4bfc24dd204f1b294c899ed73f7e9453" 1625 | dependencies = [ 1626 | "bitflags", 1627 | "serde", 1628 | "serde_json", 1629 | "url", 1630 | ] 1631 | 1632 | [[package]] 1633 | name = "helix-parsec" 1634 | version = "25.7.1" 1635 | source = "git+https://github.com/helix-editor/helix.git#d79cce4e4bfc24dd204f1b294c899ed73f7e9453" 1636 | 1637 | [[package]] 1638 | name = "helix-stdx" 1639 | version = "25.7.1" 1640 | source = "git+https://github.com/helix-editor/helix.git#d79cce4e4bfc24dd204f1b294c899ed73f7e9453" 1641 | dependencies = [ 1642 | "bitflags", 1643 | "dunce", 1644 | "etcetera", 1645 | "once_cell", 1646 | "regex-automata", 1647 | "regex-cursor", 1648 | "ropey", 1649 | "rustix 1.1.2", 1650 | "unicode-segmentation", 1651 | "which", 1652 | "windows-sys 0.61.2", 1653 | ] 1654 | 1655 | [[package]] 1656 | name = "helix-term" 1657 | version = "25.7.1" 1658 | source = "git+https://github.com/helix-editor/helix.git#d79cce4e4bfc24dd204f1b294c899ed73f7e9453" 1659 | dependencies = [ 1660 | "anyhow", 1661 | "arc-swap", 1662 | "chrono", 1663 | "content_inspector", 1664 | "crossterm", 1665 | "dashmap", 1666 | "fern", 1667 | "futures-util", 1668 | "grep-matcher", 1669 | "grep-regex", 1670 | "grep-searcher", 1671 | "helix-core", 1672 | "helix-dap", 1673 | "helix-event", 1674 | "helix-loader", 1675 | "helix-lsp", 1676 | "helix-stdx", 1677 | "helix-tui", 1678 | "helix-vcs", 1679 | "helix-view", 1680 | "ignore", 1681 | "indexmap", 1682 | "libc", 1683 | "log", 1684 | "nucleo", 1685 | "once_cell", 1686 | "open", 1687 | "pulldown-cmark", 1688 | "serde", 1689 | "serde_json", 1690 | "signal-hook", 1691 | "signal-hook-tokio", 1692 | "termina", 1693 | "termini", 1694 | "thiserror", 1695 | "tokio", 1696 | "tokio-stream", 1697 | "toml 0.9.8", 1698 | "url", 1699 | ] 1700 | 1701 | [[package]] 1702 | name = "helix-tui" 1703 | version = "25.7.1" 1704 | source = "git+https://github.com/helix-editor/helix.git#d79cce4e4bfc24dd204f1b294c899ed73f7e9453" 1705 | dependencies = [ 1706 | "bitflags", 1707 | "cassowary", 1708 | "crossterm", 1709 | "helix-core", 1710 | "helix-view", 1711 | "log", 1712 | "once_cell", 1713 | "termina", 1714 | "termini", 1715 | "unicode-segmentation", 1716 | ] 1717 | 1718 | [[package]] 1719 | name = "helix-vcs" 1720 | version = "25.7.1" 1721 | source = "git+https://github.com/helix-editor/helix.git#d79cce4e4bfc24dd204f1b294c899ed73f7e9453" 1722 | dependencies = [ 1723 | "anyhow", 1724 | "arc-swap", 1725 | "gix", 1726 | "helix-core", 1727 | "helix-event", 1728 | "imara-diff 0.2.0", 1729 | "log", 1730 | "parking_lot", 1731 | "tokio", 1732 | ] 1733 | 1734 | [[package]] 1735 | name = "helix-view" 1736 | version = "25.7.1" 1737 | source = "git+https://github.com/helix-editor/helix.git#d79cce4e4bfc24dd204f1b294c899ed73f7e9453" 1738 | dependencies = [ 1739 | "anyhow", 1740 | "arc-swap", 1741 | "bitflags", 1742 | "chardetng", 1743 | "clipboard-win", 1744 | "crossterm", 1745 | "futures-util", 1746 | "helix-core", 1747 | "helix-dap", 1748 | "helix-event", 1749 | "helix-loader", 1750 | "helix-lsp", 1751 | "helix-stdx", 1752 | "helix-vcs", 1753 | "kstring", 1754 | "libc", 1755 | "log", 1756 | "once_cell", 1757 | "parking_lot", 1758 | "rustix 1.1.2", 1759 | "serde", 1760 | "serde_json", 1761 | "slotmap", 1762 | "tempfile", 1763 | "termina", 1764 | "thiserror", 1765 | "tokio", 1766 | "tokio-stream", 1767 | "toml 0.9.8", 1768 | "url", 1769 | ] 1770 | 1771 | [[package]] 1772 | name = "hermit-abi" 1773 | version = "0.5.2" 1774 | source = "registry+https://github.com/rust-lang/crates.io-index" 1775 | checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" 1776 | 1777 | [[package]] 1778 | name = "home" 1779 | version = "0.5.11" 1780 | source = "registry+https://github.com/rust-lang/crates.io-index" 1781 | checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" 1782 | dependencies = [ 1783 | "windows-sys 0.59.0", 1784 | ] 1785 | 1786 | [[package]] 1787 | name = "iana-time-zone" 1788 | version = "0.1.64" 1789 | source = "registry+https://github.com/rust-lang/crates.io-index" 1790 | checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" 1791 | dependencies = [ 1792 | "android_system_properties", 1793 | "core-foundation-sys", 1794 | "iana-time-zone-haiku", 1795 | "js-sys", 1796 | "log", 1797 | "wasm-bindgen", 1798 | "windows-core", 1799 | ] 1800 | 1801 | [[package]] 1802 | name = "iana-time-zone-haiku" 1803 | version = "0.1.2" 1804 | source = "registry+https://github.com/rust-lang/crates.io-index" 1805 | checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 1806 | dependencies = [ 1807 | "cc", 1808 | ] 1809 | 1810 | [[package]] 1811 | name = "icu_collections" 1812 | version = "2.0.0" 1813 | source = "registry+https://github.com/rust-lang/crates.io-index" 1814 | checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" 1815 | dependencies = [ 1816 | "displaydoc", 1817 | "potential_utf", 1818 | "yoke", 1819 | "zerofrom", 1820 | "zerovec", 1821 | ] 1822 | 1823 | [[package]] 1824 | name = "icu_locale_core" 1825 | version = "2.0.0" 1826 | source = "registry+https://github.com/rust-lang/crates.io-index" 1827 | checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" 1828 | dependencies = [ 1829 | "displaydoc", 1830 | "litemap", 1831 | "tinystr", 1832 | "writeable", 1833 | "zerovec", 1834 | ] 1835 | 1836 | [[package]] 1837 | name = "icu_normalizer" 1838 | version = "2.0.0" 1839 | source = "registry+https://github.com/rust-lang/crates.io-index" 1840 | checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" 1841 | dependencies = [ 1842 | "displaydoc", 1843 | "icu_collections", 1844 | "icu_normalizer_data", 1845 | "icu_properties", 1846 | "icu_provider", 1847 | "smallvec", 1848 | "zerovec", 1849 | ] 1850 | 1851 | [[package]] 1852 | name = "icu_normalizer_data" 1853 | version = "2.0.0" 1854 | source = "registry+https://github.com/rust-lang/crates.io-index" 1855 | checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" 1856 | 1857 | [[package]] 1858 | name = "icu_properties" 1859 | version = "2.0.1" 1860 | source = "registry+https://github.com/rust-lang/crates.io-index" 1861 | checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" 1862 | dependencies = [ 1863 | "displaydoc", 1864 | "icu_collections", 1865 | "icu_locale_core", 1866 | "icu_properties_data", 1867 | "icu_provider", 1868 | "potential_utf", 1869 | "zerotrie", 1870 | "zerovec", 1871 | ] 1872 | 1873 | [[package]] 1874 | name = "icu_properties_data" 1875 | version = "2.0.1" 1876 | source = "registry+https://github.com/rust-lang/crates.io-index" 1877 | checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" 1878 | 1879 | [[package]] 1880 | name = "icu_provider" 1881 | version = "2.0.0" 1882 | source = "registry+https://github.com/rust-lang/crates.io-index" 1883 | checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" 1884 | dependencies = [ 1885 | "displaydoc", 1886 | "icu_locale_core", 1887 | "stable_deref_trait", 1888 | "tinystr", 1889 | "writeable", 1890 | "yoke", 1891 | "zerofrom", 1892 | "zerotrie", 1893 | "zerovec", 1894 | ] 1895 | 1896 | [[package]] 1897 | name = "idna" 1898 | version = "1.1.0" 1899 | source = "registry+https://github.com/rust-lang/crates.io-index" 1900 | checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" 1901 | dependencies = [ 1902 | "idna_adapter", 1903 | "smallvec", 1904 | "utf8_iter", 1905 | ] 1906 | 1907 | [[package]] 1908 | name = "idna_adapter" 1909 | version = "1.2.1" 1910 | source = "registry+https://github.com/rust-lang/crates.io-index" 1911 | checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" 1912 | dependencies = [ 1913 | "icu_normalizer", 1914 | "icu_properties", 1915 | ] 1916 | 1917 | [[package]] 1918 | name = "ignore" 1919 | version = "0.4.23" 1920 | source = "registry+https://github.com/rust-lang/crates.io-index" 1921 | checksum = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b" 1922 | dependencies = [ 1923 | "crossbeam-deque", 1924 | "globset", 1925 | "log", 1926 | "memchr", 1927 | "regex-automata", 1928 | "same-file", 1929 | "walkdir", 1930 | "winapi-util", 1931 | ] 1932 | 1933 | [[package]] 1934 | name = "imara-diff" 1935 | version = "0.1.8" 1936 | source = "registry+https://github.com/rust-lang/crates.io-index" 1937 | checksum = "17d34b7d42178945f775e84bc4c36dde7c1c6cdfea656d3354d009056f2bb3d2" 1938 | dependencies = [ 1939 | "hashbrown 0.15.5", 1940 | ] 1941 | 1942 | [[package]] 1943 | name = "imara-diff" 1944 | version = "0.2.0" 1945 | source = "registry+https://github.com/rust-lang/crates.io-index" 1946 | checksum = "2f01d462f766df78ab820dd06f5eb700233c51f0f4c2e846520eaf4ba6aa5c5c" 1947 | dependencies = [ 1948 | "hashbrown 0.15.5", 1949 | "memchr", 1950 | ] 1951 | 1952 | [[package]] 1953 | name = "indexmap" 1954 | version = "2.12.0" 1955 | source = "registry+https://github.com/rust-lang/crates.io-index" 1956 | checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" 1957 | dependencies = [ 1958 | "equivalent", 1959 | "hashbrown 0.16.0", 1960 | ] 1961 | 1962 | [[package]] 1963 | name = "is-docker" 1964 | version = "0.2.0" 1965 | source = "registry+https://github.com/rust-lang/crates.io-index" 1966 | checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" 1967 | dependencies = [ 1968 | "once_cell", 1969 | ] 1970 | 1971 | [[package]] 1972 | name = "is-wsl" 1973 | version = "0.4.0" 1974 | source = "registry+https://github.com/rust-lang/crates.io-index" 1975 | checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" 1976 | dependencies = [ 1977 | "is-docker", 1978 | "once_cell", 1979 | ] 1980 | 1981 | [[package]] 1982 | name = "is_terminal_polyfill" 1983 | version = "1.70.2" 1984 | source = "registry+https://github.com/rust-lang/crates.io-index" 1985 | checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" 1986 | 1987 | [[package]] 1988 | name = "itoa" 1989 | version = "1.0.15" 1990 | source = "registry+https://github.com/rust-lang/crates.io-index" 1991 | checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 1992 | 1993 | [[package]] 1994 | name = "jiff" 1995 | version = "0.2.15" 1996 | source = "registry+https://github.com/rust-lang/crates.io-index" 1997 | checksum = "be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49" 1998 | dependencies = [ 1999 | "jiff-static", 2000 | "jiff-tzdb-platform", 2001 | "log", 2002 | "portable-atomic", 2003 | "portable-atomic-util", 2004 | "serde", 2005 | "windows-sys 0.59.0", 2006 | ] 2007 | 2008 | [[package]] 2009 | name = "jiff-static" 2010 | version = "0.2.15" 2011 | source = "registry+https://github.com/rust-lang/crates.io-index" 2012 | checksum = "03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4" 2013 | dependencies = [ 2014 | "proc-macro2", 2015 | "quote", 2016 | "syn", 2017 | ] 2018 | 2019 | [[package]] 2020 | name = "jiff-tzdb" 2021 | version = "0.1.4" 2022 | source = "registry+https://github.com/rust-lang/crates.io-index" 2023 | checksum = "c1283705eb0a21404d2bfd6eef2a7593d240bc42a0bdb39db0ad6fa2ec026524" 2024 | 2025 | [[package]] 2026 | name = "jiff-tzdb-platform" 2027 | version = "0.1.3" 2028 | source = "registry+https://github.com/rust-lang/crates.io-index" 2029 | checksum = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8" 2030 | dependencies = [ 2031 | "jiff-tzdb", 2032 | ] 2033 | 2034 | [[package]] 2035 | name = "js-sys" 2036 | version = "0.3.81" 2037 | source = "registry+https://github.com/rust-lang/crates.io-index" 2038 | checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" 2039 | dependencies = [ 2040 | "once_cell", 2041 | "wasm-bindgen", 2042 | ] 2043 | 2044 | [[package]] 2045 | name = "kstring" 2046 | version = "2.0.2" 2047 | source = "registry+https://github.com/rust-lang/crates.io-index" 2048 | checksum = "558bf9508a558512042d3095138b1f7b8fe90c5467d94f9f1da28b3731c5dbd1" 2049 | dependencies = [ 2050 | "static_assertions", 2051 | ] 2052 | 2053 | [[package]] 2054 | name = "libc" 2055 | version = "0.2.177" 2056 | source = "registry+https://github.com/rust-lang/crates.io-index" 2057 | checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" 2058 | 2059 | [[package]] 2060 | name = "libloading" 2061 | version = "0.8.9" 2062 | source = "registry+https://github.com/rust-lang/crates.io-index" 2063 | checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" 2064 | dependencies = [ 2065 | "cfg-if", 2066 | "windows-link", 2067 | ] 2068 | 2069 | [[package]] 2070 | name = "libredox" 2071 | version = "0.1.10" 2072 | source = "registry+https://github.com/rust-lang/crates.io-index" 2073 | checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" 2074 | dependencies = [ 2075 | "bitflags", 2076 | "libc", 2077 | "redox_syscall", 2078 | ] 2079 | 2080 | [[package]] 2081 | name = "libz-rs-sys" 2082 | version = "0.5.2" 2083 | source = "registry+https://github.com/rust-lang/crates.io-index" 2084 | checksum = "840db8cf39d9ec4dd794376f38acc40d0fc65eec2a8f484f7fd375b84602becd" 2085 | dependencies = [ 2086 | "zlib-rs", 2087 | ] 2088 | 2089 | [[package]] 2090 | name = "linux-raw-sys" 2091 | version = "0.4.15" 2092 | source = "registry+https://github.com/rust-lang/crates.io-index" 2093 | checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" 2094 | 2095 | [[package]] 2096 | name = "linux-raw-sys" 2097 | version = "0.11.0" 2098 | source = "registry+https://github.com/rust-lang/crates.io-index" 2099 | checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" 2100 | 2101 | [[package]] 2102 | name = "litemap" 2103 | version = "0.8.0" 2104 | source = "registry+https://github.com/rust-lang/crates.io-index" 2105 | checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" 2106 | 2107 | [[package]] 2108 | name = "lock_api" 2109 | version = "0.4.14" 2110 | source = "registry+https://github.com/rust-lang/crates.io-index" 2111 | checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" 2112 | dependencies = [ 2113 | "scopeguard", 2114 | ] 2115 | 2116 | [[package]] 2117 | name = "log" 2118 | version = "0.4.28" 2119 | source = "registry+https://github.com/rust-lang/crates.io-index" 2120 | checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" 2121 | 2122 | [[package]] 2123 | name = "maybe-async" 2124 | version = "0.2.10" 2125 | source = "registry+https://github.com/rust-lang/crates.io-index" 2126 | checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" 2127 | dependencies = [ 2128 | "proc-macro2", 2129 | "quote", 2130 | "syn", 2131 | ] 2132 | 2133 | [[package]] 2134 | name = "memchr" 2135 | version = "2.7.6" 2136 | source = "registry+https://github.com/rust-lang/crates.io-index" 2137 | checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" 2138 | 2139 | [[package]] 2140 | name = "memmap2" 2141 | version = "0.9.9" 2142 | source = "registry+https://github.com/rust-lang/crates.io-index" 2143 | checksum = "744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490" 2144 | dependencies = [ 2145 | "libc", 2146 | ] 2147 | 2148 | [[package]] 2149 | name = "miniz_oxide" 2150 | version = "0.8.9" 2151 | source = "registry+https://github.com/rust-lang/crates.io-index" 2152 | checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" 2153 | dependencies = [ 2154 | "adler2", 2155 | "simd-adler32", 2156 | ] 2157 | 2158 | [[package]] 2159 | name = "mio" 2160 | version = "1.0.4" 2161 | source = "registry+https://github.com/rust-lang/crates.io-index" 2162 | checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" 2163 | dependencies = [ 2164 | "libc", 2165 | "log", 2166 | "wasi", 2167 | "windows-sys 0.59.0", 2168 | ] 2169 | 2170 | [[package]] 2171 | name = "munge" 2172 | version = "0.4.7" 2173 | source = "registry+https://github.com/rust-lang/crates.io-index" 2174 | checksum = "5e17401f259eba956ca16491461b6e8f72913a0a114e39736ce404410f915a0c" 2175 | dependencies = [ 2176 | "munge_macro", 2177 | ] 2178 | 2179 | [[package]] 2180 | name = "munge_macro" 2181 | version = "0.4.7" 2182 | source = "registry+https://github.com/rust-lang/crates.io-index" 2183 | checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" 2184 | dependencies = [ 2185 | "proc-macro2", 2186 | "quote", 2187 | "syn", 2188 | ] 2189 | 2190 | [[package]] 2191 | name = "nucleo" 2192 | version = "0.5.0" 2193 | source = "registry+https://github.com/rust-lang/crates.io-index" 2194 | checksum = "5262af4c94921c2646c5ac6ff7900c2af9cbb08dc26a797e18130a7019c039d4" 2195 | dependencies = [ 2196 | "nucleo-matcher", 2197 | "parking_lot", 2198 | "rayon", 2199 | ] 2200 | 2201 | [[package]] 2202 | name = "nucleo-matcher" 2203 | version = "0.3.1" 2204 | source = "registry+https://github.com/rust-lang/crates.io-index" 2205 | checksum = "bf33f538733d1a5a3494b836ba913207f14d9d4a1d3cd67030c5061bdd2cac85" 2206 | dependencies = [ 2207 | "memchr", 2208 | "unicode-segmentation", 2209 | ] 2210 | 2211 | [[package]] 2212 | name = "num-traits" 2213 | version = "0.2.19" 2214 | source = "registry+https://github.com/rust-lang/crates.io-index" 2215 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 2216 | dependencies = [ 2217 | "autocfg", 2218 | ] 2219 | 2220 | [[package]] 2221 | name = "num_cpus" 2222 | version = "1.17.0" 2223 | source = "registry+https://github.com/rust-lang/crates.io-index" 2224 | checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" 2225 | dependencies = [ 2226 | "hermit-abi", 2227 | "libc", 2228 | ] 2229 | 2230 | [[package]] 2231 | name = "once_cell" 2232 | version = "1.21.3" 2233 | source = "registry+https://github.com/rust-lang/crates.io-index" 2234 | checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 2235 | 2236 | [[package]] 2237 | name = "once_cell_polyfill" 2238 | version = "1.70.2" 2239 | source = "registry+https://github.com/rust-lang/crates.io-index" 2240 | checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" 2241 | 2242 | [[package]] 2243 | name = "open" 2244 | version = "5.3.2" 2245 | source = "registry+https://github.com/rust-lang/crates.io-index" 2246 | checksum = "e2483562e62ea94312f3576a7aca397306df7990b8d89033e18766744377ef95" 2247 | dependencies = [ 2248 | "is-wsl", 2249 | "libc", 2250 | "pathdiff", 2251 | ] 2252 | 2253 | [[package]] 2254 | name = "parking_lot" 2255 | version = "0.12.5" 2256 | source = "registry+https://github.com/rust-lang/crates.io-index" 2257 | checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" 2258 | dependencies = [ 2259 | "lock_api", 2260 | "parking_lot_core", 2261 | ] 2262 | 2263 | [[package]] 2264 | name = "parking_lot_core" 2265 | version = "0.9.12" 2266 | source = "registry+https://github.com/rust-lang/crates.io-index" 2267 | checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" 2268 | dependencies = [ 2269 | "cfg-if", 2270 | "libc", 2271 | "redox_syscall", 2272 | "smallvec", 2273 | "windows-link", 2274 | ] 2275 | 2276 | [[package]] 2277 | name = "pathdiff" 2278 | version = "0.2.3" 2279 | source = "registry+https://github.com/rust-lang/crates.io-index" 2280 | checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" 2281 | 2282 | [[package]] 2283 | name = "percent-encoding" 2284 | version = "2.3.2" 2285 | source = "registry+https://github.com/rust-lang/crates.io-index" 2286 | checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" 2287 | 2288 | [[package]] 2289 | name = "pin-project-lite" 2290 | version = "0.2.16" 2291 | source = "registry+https://github.com/rust-lang/crates.io-index" 2292 | checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" 2293 | 2294 | [[package]] 2295 | name = "pin-utils" 2296 | version = "0.1.0" 2297 | source = "registry+https://github.com/rust-lang/crates.io-index" 2298 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 2299 | 2300 | [[package]] 2301 | name = "portable-atomic" 2302 | version = "1.11.1" 2303 | source = "registry+https://github.com/rust-lang/crates.io-index" 2304 | checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" 2305 | 2306 | [[package]] 2307 | name = "portable-atomic-util" 2308 | version = "0.2.4" 2309 | source = "registry+https://github.com/rust-lang/crates.io-index" 2310 | checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" 2311 | dependencies = [ 2312 | "portable-atomic", 2313 | ] 2314 | 2315 | [[package]] 2316 | name = "potential_utf" 2317 | version = "0.1.3" 2318 | source = "registry+https://github.com/rust-lang/crates.io-index" 2319 | checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" 2320 | dependencies = [ 2321 | "zerovec", 2322 | ] 2323 | 2324 | [[package]] 2325 | name = "proc-macro2" 2326 | version = "1.0.101" 2327 | source = "registry+https://github.com/rust-lang/crates.io-index" 2328 | checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" 2329 | dependencies = [ 2330 | "unicode-ident", 2331 | ] 2332 | 2333 | [[package]] 2334 | name = "prodash" 2335 | version = "30.0.1" 2336 | source = "registry+https://github.com/rust-lang/crates.io-index" 2337 | checksum = "5a6efc566849d3d9d737c5cb06cc50e48950ebe3d3f9d70631490fff3a07b139" 2338 | dependencies = [ 2339 | "parking_lot", 2340 | ] 2341 | 2342 | [[package]] 2343 | name = "ptr_meta" 2344 | version = "0.3.1" 2345 | source = "registry+https://github.com/rust-lang/crates.io-index" 2346 | checksum = "0b9a0cf95a1196af61d4f1cbdab967179516d9a4a4312af1f31948f8f6224a79" 2347 | dependencies = [ 2348 | "ptr_meta_derive", 2349 | ] 2350 | 2351 | [[package]] 2352 | name = "ptr_meta_derive" 2353 | version = "0.3.1" 2354 | source = "registry+https://github.com/rust-lang/crates.io-index" 2355 | checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" 2356 | dependencies = [ 2357 | "proc-macro2", 2358 | "quote", 2359 | "syn", 2360 | ] 2361 | 2362 | [[package]] 2363 | name = "pulldown-cmark" 2364 | version = "0.13.0" 2365 | source = "registry+https://github.com/rust-lang/crates.io-index" 2366 | checksum = "1e8bbe1a966bd2f362681a44f6edce3c2310ac21e4d5067a6e7ec396297a6ea0" 2367 | dependencies = [ 2368 | "bitflags", 2369 | "memchr", 2370 | "unicase", 2371 | ] 2372 | 2373 | [[package]] 2374 | name = "quote" 2375 | version = "1.0.41" 2376 | source = "registry+https://github.com/rust-lang/crates.io-index" 2377 | checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" 2378 | dependencies = [ 2379 | "proc-macro2", 2380 | ] 2381 | 2382 | [[package]] 2383 | name = "r-efi" 2384 | version = "5.3.0" 2385 | source = "registry+https://github.com/rust-lang/crates.io-index" 2386 | checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 2387 | 2388 | [[package]] 2389 | name = "rancor" 2390 | version = "0.1.1" 2391 | source = "registry+https://github.com/rust-lang/crates.io-index" 2392 | checksum = "a063ea72381527c2a0561da9c80000ef822bdd7c3241b1cc1b12100e3df081ee" 2393 | dependencies = [ 2394 | "ptr_meta", 2395 | ] 2396 | 2397 | [[package]] 2398 | name = "rayon" 2399 | version = "1.11.0" 2400 | source = "registry+https://github.com/rust-lang/crates.io-index" 2401 | checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" 2402 | dependencies = [ 2403 | "either", 2404 | "rayon-core", 2405 | ] 2406 | 2407 | [[package]] 2408 | name = "rayon-core" 2409 | version = "1.13.0" 2410 | source = "registry+https://github.com/rust-lang/crates.io-index" 2411 | checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" 2412 | dependencies = [ 2413 | "crossbeam-deque", 2414 | "crossbeam-utils", 2415 | ] 2416 | 2417 | [[package]] 2418 | name = "redox_syscall" 2419 | version = "0.5.18" 2420 | source = "registry+https://github.com/rust-lang/crates.io-index" 2421 | checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" 2422 | dependencies = [ 2423 | "bitflags", 2424 | ] 2425 | 2426 | [[package]] 2427 | name = "ref-cast" 2428 | version = "1.0.25" 2429 | source = "registry+https://github.com/rust-lang/crates.io-index" 2430 | checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" 2431 | dependencies = [ 2432 | "ref-cast-impl", 2433 | ] 2434 | 2435 | [[package]] 2436 | name = "ref-cast-impl" 2437 | version = "1.0.25" 2438 | source = "registry+https://github.com/rust-lang/crates.io-index" 2439 | checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" 2440 | dependencies = [ 2441 | "proc-macro2", 2442 | "quote", 2443 | "syn", 2444 | ] 2445 | 2446 | [[package]] 2447 | name = "regex" 2448 | version = "1.12.2" 2449 | source = "registry+https://github.com/rust-lang/crates.io-index" 2450 | checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" 2451 | dependencies = [ 2452 | "aho-corasick", 2453 | "memchr", 2454 | "regex-automata", 2455 | "regex-syntax", 2456 | ] 2457 | 2458 | [[package]] 2459 | name = "regex-automata" 2460 | version = "0.4.13" 2461 | source = "registry+https://github.com/rust-lang/crates.io-index" 2462 | checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" 2463 | dependencies = [ 2464 | "aho-corasick", 2465 | "memchr", 2466 | "regex-syntax", 2467 | ] 2468 | 2469 | [[package]] 2470 | name = "regex-cursor" 2471 | version = "0.1.5" 2472 | source = "registry+https://github.com/rust-lang/crates.io-index" 2473 | checksum = "0497c781d2f982ae8284d2932aee6a877e58a4541daa5e8fadc18cc75c23a61d" 2474 | dependencies = [ 2475 | "log", 2476 | "memchr", 2477 | "regex-automata", 2478 | "regex-syntax", 2479 | "ropey", 2480 | ] 2481 | 2482 | [[package]] 2483 | name = "regex-syntax" 2484 | version = "0.8.8" 2485 | source = "registry+https://github.com/rust-lang/crates.io-index" 2486 | checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" 2487 | 2488 | [[package]] 2489 | name = "rend" 2490 | version = "0.5.3" 2491 | source = "registry+https://github.com/rust-lang/crates.io-index" 2492 | checksum = "cadadef317c2f20755a64d7fdc48f9e7178ee6b0e1f7fce33fa60f1d68a276e6" 2493 | 2494 | [[package]] 2495 | name = "rkyv" 2496 | version = "0.8.12" 2497 | source = "registry+https://github.com/rust-lang/crates.io-index" 2498 | checksum = "35a640b26f007713818e9a9b65d34da1cf58538207b052916a83d80e43f3ffa4" 2499 | dependencies = [ 2500 | "bytes", 2501 | "hashbrown 0.15.5", 2502 | "indexmap", 2503 | "munge", 2504 | "ptr_meta", 2505 | "rancor", 2506 | "rend", 2507 | "rkyv_derive", 2508 | "tinyvec", 2509 | "uuid", 2510 | ] 2511 | 2512 | [[package]] 2513 | name = "rkyv_derive" 2514 | version = "0.8.12" 2515 | source = "registry+https://github.com/rust-lang/crates.io-index" 2516 | checksum = "bd83f5f173ff41e00337d97f6572e416d022ef8a19f371817259ae960324c482" 2517 | dependencies = [ 2518 | "proc-macro2", 2519 | "quote", 2520 | "syn", 2521 | ] 2522 | 2523 | [[package]] 2524 | name = "ropey" 2525 | version = "1.6.1" 2526 | source = "registry+https://github.com/rust-lang/crates.io-index" 2527 | checksum = "93411e420bcd1a75ddd1dc3caf18c23155eda2c090631a85af21ba19e97093b5" 2528 | dependencies = [ 2529 | "smallvec", 2530 | "str_indices", 2531 | ] 2532 | 2533 | [[package]] 2534 | name = "rustix" 2535 | version = "0.38.44" 2536 | source = "registry+https://github.com/rust-lang/crates.io-index" 2537 | checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" 2538 | dependencies = [ 2539 | "bitflags", 2540 | "errno", 2541 | "libc", 2542 | "linux-raw-sys 0.4.15", 2543 | "windows-sys 0.59.0", 2544 | ] 2545 | 2546 | [[package]] 2547 | name = "rustix" 2548 | version = "1.1.2" 2549 | source = "registry+https://github.com/rust-lang/crates.io-index" 2550 | checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" 2551 | dependencies = [ 2552 | "bitflags", 2553 | "errno", 2554 | "libc", 2555 | "linux-raw-sys 0.11.0", 2556 | "windows-sys 0.61.2", 2557 | ] 2558 | 2559 | [[package]] 2560 | name = "rustversion" 2561 | version = "1.0.22" 2562 | source = "registry+https://github.com/rust-lang/crates.io-index" 2563 | checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 2564 | 2565 | [[package]] 2566 | name = "ryu" 2567 | version = "1.0.20" 2568 | source = "registry+https://github.com/rust-lang/crates.io-index" 2569 | checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 2570 | 2571 | [[package]] 2572 | name = "same-file" 2573 | version = "1.0.6" 2574 | source = "registry+https://github.com/rust-lang/crates.io-index" 2575 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 2576 | dependencies = [ 2577 | "winapi-util", 2578 | ] 2579 | 2580 | [[package]] 2581 | name = "scopeguard" 2582 | version = "1.2.0" 2583 | source = "registry+https://github.com/rust-lang/crates.io-index" 2584 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 2585 | 2586 | [[package]] 2587 | name = "serde" 2588 | version = "1.0.228" 2589 | source = "registry+https://github.com/rust-lang/crates.io-index" 2590 | checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" 2591 | dependencies = [ 2592 | "serde_core", 2593 | "serde_derive", 2594 | ] 2595 | 2596 | [[package]] 2597 | name = "serde_core" 2598 | version = "1.0.228" 2599 | source = "registry+https://github.com/rust-lang/crates.io-index" 2600 | checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" 2601 | dependencies = [ 2602 | "serde_derive", 2603 | ] 2604 | 2605 | [[package]] 2606 | name = "serde_derive" 2607 | version = "1.0.228" 2608 | source = "registry+https://github.com/rust-lang/crates.io-index" 2609 | checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" 2610 | dependencies = [ 2611 | "proc-macro2", 2612 | "quote", 2613 | "syn", 2614 | ] 2615 | 2616 | [[package]] 2617 | name = "serde_json" 2618 | version = "1.0.145" 2619 | source = "registry+https://github.com/rust-lang/crates.io-index" 2620 | checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" 2621 | dependencies = [ 2622 | "itoa", 2623 | "memchr", 2624 | "ryu", 2625 | "serde", 2626 | "serde_core", 2627 | ] 2628 | 2629 | [[package]] 2630 | name = "serde_spanned" 2631 | version = "0.6.9" 2632 | source = "registry+https://github.com/rust-lang/crates.io-index" 2633 | checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" 2634 | dependencies = [ 2635 | "serde", 2636 | ] 2637 | 2638 | [[package]] 2639 | name = "serde_spanned" 2640 | version = "1.0.3" 2641 | source = "registry+https://github.com/rust-lang/crates.io-index" 2642 | checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392" 2643 | dependencies = [ 2644 | "serde_core", 2645 | ] 2646 | 2647 | [[package]] 2648 | name = "sha1" 2649 | version = "0.10.6" 2650 | source = "registry+https://github.com/rust-lang/crates.io-index" 2651 | checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 2652 | dependencies = [ 2653 | "cfg-if", 2654 | "cpufeatures", 2655 | "digest", 2656 | ] 2657 | 2658 | [[package]] 2659 | name = "sha1-checked" 2660 | version = "0.10.0" 2661 | source = "registry+https://github.com/rust-lang/crates.io-index" 2662 | checksum = "89f599ac0c323ebb1c6082821a54962b839832b03984598375bff3975b804423" 2663 | dependencies = [ 2664 | "digest", 2665 | "sha1", 2666 | ] 2667 | 2668 | [[package]] 2669 | name = "shell-words" 2670 | version = "1.1.0" 2671 | source = "registry+https://github.com/rust-lang/crates.io-index" 2672 | checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" 2673 | 2674 | [[package]] 2675 | name = "shlex" 2676 | version = "1.3.0" 2677 | source = "registry+https://github.com/rust-lang/crates.io-index" 2678 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 2679 | 2680 | [[package]] 2681 | name = "signal-hook" 2682 | version = "0.3.18" 2683 | source = "registry+https://github.com/rust-lang/crates.io-index" 2684 | checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" 2685 | dependencies = [ 2686 | "libc", 2687 | "signal-hook-registry", 2688 | ] 2689 | 2690 | [[package]] 2691 | name = "signal-hook-mio" 2692 | version = "0.2.4" 2693 | source = "registry+https://github.com/rust-lang/crates.io-index" 2694 | checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd" 2695 | dependencies = [ 2696 | "libc", 2697 | "mio", 2698 | "signal-hook", 2699 | ] 2700 | 2701 | [[package]] 2702 | name = "signal-hook-registry" 2703 | version = "1.4.6" 2704 | source = "registry+https://github.com/rust-lang/crates.io-index" 2705 | checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" 2706 | dependencies = [ 2707 | "libc", 2708 | ] 2709 | 2710 | [[package]] 2711 | name = "signal-hook-tokio" 2712 | version = "0.3.1" 2713 | source = "registry+https://github.com/rust-lang/crates.io-index" 2714 | checksum = "213241f76fb1e37e27de3b6aa1b068a2c333233b59cca6634f634b80a27ecf1e" 2715 | dependencies = [ 2716 | "futures-core", 2717 | "libc", 2718 | "signal-hook", 2719 | "tokio", 2720 | ] 2721 | 2722 | [[package]] 2723 | name = "simd-adler32" 2724 | version = "0.3.7" 2725 | source = "registry+https://github.com/rust-lang/crates.io-index" 2726 | checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" 2727 | 2728 | [[package]] 2729 | name = "simdutf8" 2730 | version = "0.1.5" 2731 | source = "registry+https://github.com/rust-lang/crates.io-index" 2732 | checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" 2733 | 2734 | [[package]] 2735 | name = "slab" 2736 | version = "0.4.11" 2737 | source = "registry+https://github.com/rust-lang/crates.io-index" 2738 | checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" 2739 | 2740 | [[package]] 2741 | name = "slotmap" 2742 | version = "1.0.7" 2743 | source = "registry+https://github.com/rust-lang/crates.io-index" 2744 | checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" 2745 | dependencies = [ 2746 | "version_check", 2747 | ] 2748 | 2749 | [[package]] 2750 | name = "smallvec" 2751 | version = "1.15.1" 2752 | source = "registry+https://github.com/rust-lang/crates.io-index" 2753 | checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 2754 | 2755 | [[package]] 2756 | name = "smartstring" 2757 | version = "1.0.1" 2758 | source = "registry+https://github.com/rust-lang/crates.io-index" 2759 | checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29" 2760 | dependencies = [ 2761 | "autocfg", 2762 | "static_assertions", 2763 | "version_check", 2764 | ] 2765 | 2766 | [[package]] 2767 | name = "smawk" 2768 | version = "0.3.2" 2769 | source = "registry+https://github.com/rust-lang/crates.io-index" 2770 | checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" 2771 | 2772 | [[package]] 2773 | name = "socket2" 2774 | version = "0.6.1" 2775 | source = "registry+https://github.com/rust-lang/crates.io-index" 2776 | checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" 2777 | dependencies = [ 2778 | "libc", 2779 | "windows-sys 0.60.2", 2780 | ] 2781 | 2782 | [[package]] 2783 | name = "sonic-number" 2784 | version = "0.1.0" 2785 | source = "registry+https://github.com/rust-lang/crates.io-index" 2786 | checksum = "a8a74044c092f4f43ca7a6cfd62854cf9fb5ac8502b131347c990bf22bef1dfe" 2787 | dependencies = [ 2788 | "cfg-if", 2789 | ] 2790 | 2791 | [[package]] 2792 | name = "sonic-rs" 2793 | version = "0.5.5" 2794 | source = "registry+https://github.com/rust-lang/crates.io-index" 2795 | checksum = "22540d56ba14521e4878ad436d498518c59698c39a89d5905c694932f0bf7134" 2796 | dependencies = [ 2797 | "ahash", 2798 | "bumpalo", 2799 | "bytes", 2800 | "cfg-if", 2801 | "faststr", 2802 | "itoa", 2803 | "ref-cast", 2804 | "ryu", 2805 | "serde", 2806 | "simdutf8", 2807 | "sonic-number", 2808 | "sonic-simd", 2809 | "thiserror", 2810 | ] 2811 | 2812 | [[package]] 2813 | name = "sonic-simd" 2814 | version = "0.1.1" 2815 | source = "registry+https://github.com/rust-lang/crates.io-index" 2816 | checksum = "b421f7b6aa4a5de8f685aaf398dfaa828346ee639d2b1c1061ab43d40baa6223" 2817 | dependencies = [ 2818 | "cfg-if", 2819 | ] 2820 | 2821 | [[package]] 2822 | name = "stable_deref_trait" 2823 | version = "1.2.1" 2824 | source = "registry+https://github.com/rust-lang/crates.io-index" 2825 | checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" 2826 | 2827 | [[package]] 2828 | name = "static_assertions" 2829 | version = "1.1.0" 2830 | source = "registry+https://github.com/rust-lang/crates.io-index" 2831 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 2832 | 2833 | [[package]] 2834 | name = "str_indices" 2835 | version = "0.4.4" 2836 | source = "registry+https://github.com/rust-lang/crates.io-index" 2837 | checksum = "d08889ec5408683408db66ad89e0e1f93dff55c73a4ccc71c427d5b277ee47e6" 2838 | 2839 | [[package]] 2840 | name = "strsim" 2841 | version = "0.11.1" 2842 | source = "registry+https://github.com/rust-lang/crates.io-index" 2843 | checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 2844 | 2845 | [[package]] 2846 | name = "syn" 2847 | version = "2.0.107" 2848 | source = "registry+https://github.com/rust-lang/crates.io-index" 2849 | checksum = "2a26dbd934e5451d21ef060c018dae56fc073894c5a7896f882928a76e6d081b" 2850 | dependencies = [ 2851 | "proc-macro2", 2852 | "quote", 2853 | "unicode-ident", 2854 | ] 2855 | 2856 | [[package]] 2857 | name = "synstructure" 2858 | version = "0.13.2" 2859 | source = "registry+https://github.com/rust-lang/crates.io-index" 2860 | checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" 2861 | dependencies = [ 2862 | "proc-macro2", 2863 | "quote", 2864 | "syn", 2865 | ] 2866 | 2867 | [[package]] 2868 | name = "tempfile" 2869 | version = "3.23.0" 2870 | source = "registry+https://github.com/rust-lang/crates.io-index" 2871 | checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" 2872 | dependencies = [ 2873 | "fastrand", 2874 | "getrandom", 2875 | "once_cell", 2876 | "rustix 1.1.2", 2877 | "windows-sys 0.61.2", 2878 | ] 2879 | 2880 | [[package]] 2881 | name = "termina" 2882 | version = "0.1.1" 2883 | source = "registry+https://github.com/rust-lang/crates.io-index" 2884 | checksum = "6b9a48a479fe84f486d932a2e0c549b4d48ed3d57a20f18a3e61199c75a05ecf" 2885 | dependencies = [ 2886 | "bitflags", 2887 | "futures-core", 2888 | "parking_lot", 2889 | "rustix 1.1.2", 2890 | "signal-hook", 2891 | "windows-sys 0.61.2", 2892 | ] 2893 | 2894 | [[package]] 2895 | name = "termini" 2896 | version = "1.0.0" 2897 | source = "registry+https://github.com/rust-lang/crates.io-index" 2898 | checksum = "2ad441d87dd98bc5eeb31cf2fb7e4839968763006b478efb38668a3bf9da0d59" 2899 | dependencies = [ 2900 | "home", 2901 | ] 2902 | 2903 | [[package]] 2904 | name = "textwrap" 2905 | version = "0.16.2" 2906 | source = "registry+https://github.com/rust-lang/crates.io-index" 2907 | checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" 2908 | dependencies = [ 2909 | "smawk", 2910 | "unicode-linebreak", 2911 | "unicode-width 0.2.2", 2912 | ] 2913 | 2914 | [[package]] 2915 | name = "thiserror" 2916 | version = "2.0.17" 2917 | source = "registry+https://github.com/rust-lang/crates.io-index" 2918 | checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" 2919 | dependencies = [ 2920 | "thiserror-impl", 2921 | ] 2922 | 2923 | [[package]] 2924 | name = "thiserror-impl" 2925 | version = "2.0.17" 2926 | source = "registry+https://github.com/rust-lang/crates.io-index" 2927 | checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" 2928 | dependencies = [ 2929 | "proc-macro2", 2930 | "quote", 2931 | "syn", 2932 | ] 2933 | 2934 | [[package]] 2935 | name = "threadpool" 2936 | version = "1.8.1" 2937 | source = "registry+https://github.com/rust-lang/crates.io-index" 2938 | checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" 2939 | dependencies = [ 2940 | "num_cpus", 2941 | ] 2942 | 2943 | [[package]] 2944 | name = "tinystr" 2945 | version = "0.8.1" 2946 | source = "registry+https://github.com/rust-lang/crates.io-index" 2947 | checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" 2948 | dependencies = [ 2949 | "displaydoc", 2950 | "zerovec", 2951 | ] 2952 | 2953 | [[package]] 2954 | name = "tinyvec" 2955 | version = "1.10.0" 2956 | source = "registry+https://github.com/rust-lang/crates.io-index" 2957 | checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" 2958 | dependencies = [ 2959 | "tinyvec_macros", 2960 | ] 2961 | 2962 | [[package]] 2963 | name = "tinyvec_macros" 2964 | version = "0.1.1" 2965 | source = "registry+https://github.com/rust-lang/crates.io-index" 2966 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 2967 | 2968 | [[package]] 2969 | name = "tokio" 2970 | version = "1.48.0" 2971 | source = "registry+https://github.com/rust-lang/crates.io-index" 2972 | checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" 2973 | dependencies = [ 2974 | "bytes", 2975 | "libc", 2976 | "mio", 2977 | "parking_lot", 2978 | "pin-project-lite", 2979 | "signal-hook-registry", 2980 | "socket2", 2981 | "tokio-macros", 2982 | "windows-sys 0.61.2", 2983 | ] 2984 | 2985 | [[package]] 2986 | name = "tokio-macros" 2987 | version = "2.6.0" 2988 | source = "registry+https://github.com/rust-lang/crates.io-index" 2989 | checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" 2990 | dependencies = [ 2991 | "proc-macro2", 2992 | "quote", 2993 | "syn", 2994 | ] 2995 | 2996 | [[package]] 2997 | name = "tokio-stream" 2998 | version = "0.1.17" 2999 | source = "registry+https://github.com/rust-lang/crates.io-index" 3000 | checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" 3001 | dependencies = [ 3002 | "futures-core", 3003 | "pin-project-lite", 3004 | "tokio", 3005 | ] 3006 | 3007 | [[package]] 3008 | name = "toml" 3009 | version = "0.8.23" 3010 | source = "registry+https://github.com/rust-lang/crates.io-index" 3011 | checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" 3012 | dependencies = [ 3013 | "serde", 3014 | "serde_spanned 0.6.9", 3015 | "toml_datetime 0.6.11", 3016 | "toml_edit", 3017 | ] 3018 | 3019 | [[package]] 3020 | name = "toml" 3021 | version = "0.9.8" 3022 | source = "registry+https://github.com/rust-lang/crates.io-index" 3023 | checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" 3024 | dependencies = [ 3025 | "indexmap", 3026 | "serde_core", 3027 | "serde_spanned 1.0.3", 3028 | "toml_datetime 0.7.3", 3029 | "toml_parser", 3030 | "toml_writer", 3031 | "winnow", 3032 | ] 3033 | 3034 | [[package]] 3035 | name = "toml_datetime" 3036 | version = "0.6.11" 3037 | source = "registry+https://github.com/rust-lang/crates.io-index" 3038 | checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" 3039 | dependencies = [ 3040 | "serde", 3041 | ] 3042 | 3043 | [[package]] 3044 | name = "toml_datetime" 3045 | version = "0.7.3" 3046 | source = "registry+https://github.com/rust-lang/crates.io-index" 3047 | checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" 3048 | dependencies = [ 3049 | "serde_core", 3050 | ] 3051 | 3052 | [[package]] 3053 | name = "toml_edit" 3054 | version = "0.22.27" 3055 | source = "registry+https://github.com/rust-lang/crates.io-index" 3056 | checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" 3057 | dependencies = [ 3058 | "indexmap", 3059 | "serde", 3060 | "serde_spanned 0.6.9", 3061 | "toml_datetime 0.6.11", 3062 | "toml_write", 3063 | "winnow", 3064 | ] 3065 | 3066 | [[package]] 3067 | name = "toml_parser" 3068 | version = "1.0.4" 3069 | source = "registry+https://github.com/rust-lang/crates.io-index" 3070 | checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" 3071 | dependencies = [ 3072 | "winnow", 3073 | ] 3074 | 3075 | [[package]] 3076 | name = "toml_write" 3077 | version = "0.1.2" 3078 | source = "registry+https://github.com/rust-lang/crates.io-index" 3079 | checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" 3080 | 3081 | [[package]] 3082 | name = "toml_writer" 3083 | version = "1.0.4" 3084 | source = "registry+https://github.com/rust-lang/crates.io-index" 3085 | checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" 3086 | 3087 | [[package]] 3088 | name = "tree-house" 3089 | version = "0.3.0" 3090 | source = "registry+https://github.com/rust-lang/crates.io-index" 3091 | checksum = "d00ea55222392f171ae004dd13b62edd09d995633abf0c13406a8df3547fb999" 3092 | dependencies = [ 3093 | "arc-swap", 3094 | "hashbrown 0.15.5", 3095 | "kstring", 3096 | "once_cell", 3097 | "regex", 3098 | "regex-cursor", 3099 | "ropey", 3100 | "slab", 3101 | "tree-house-bindings", 3102 | ] 3103 | 3104 | [[package]] 3105 | name = "tree-house-bindings" 3106 | version = "0.2.2" 3107 | source = "registry+https://github.com/rust-lang/crates.io-index" 3108 | checksum = "f24f037be888a6ea5521046288c126aa700ade79e9fe7c74cdef79207281c20b" 3109 | dependencies = [ 3110 | "cc", 3111 | "libloading", 3112 | "regex-cursor", 3113 | "ropey", 3114 | "thiserror", 3115 | ] 3116 | 3117 | [[package]] 3118 | name = "typenum" 3119 | version = "1.19.0" 3120 | source = "registry+https://github.com/rust-lang/crates.io-index" 3121 | checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" 3122 | 3123 | [[package]] 3124 | name = "unicase" 3125 | version = "2.8.1" 3126 | source = "registry+https://github.com/rust-lang/crates.io-index" 3127 | checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" 3128 | 3129 | [[package]] 3130 | name = "unicode-bom" 3131 | version = "2.0.3" 3132 | source = "registry+https://github.com/rust-lang/crates.io-index" 3133 | checksum = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217" 3134 | 3135 | [[package]] 3136 | name = "unicode-general-category" 3137 | version = "1.1.0" 3138 | source = "registry+https://github.com/rust-lang/crates.io-index" 3139 | checksum = "0b993bddc193ae5bd0d623b49ec06ac3e9312875fdae725a975c51db1cc1677f" 3140 | 3141 | [[package]] 3142 | name = "unicode-ident" 3143 | version = "1.0.20" 3144 | source = "registry+https://github.com/rust-lang/crates.io-index" 3145 | checksum = "462eeb75aeb73aea900253ce739c8e18a67423fadf006037cd3ff27e82748a06" 3146 | 3147 | [[package]] 3148 | name = "unicode-linebreak" 3149 | version = "0.1.5" 3150 | source = "registry+https://github.com/rust-lang/crates.io-index" 3151 | checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" 3152 | 3153 | [[package]] 3154 | name = "unicode-normalization" 3155 | version = "0.1.24" 3156 | source = "registry+https://github.com/rust-lang/crates.io-index" 3157 | checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" 3158 | dependencies = [ 3159 | "tinyvec", 3160 | ] 3161 | 3162 | [[package]] 3163 | name = "unicode-segmentation" 3164 | version = "1.12.0" 3165 | source = "registry+https://github.com/rust-lang/crates.io-index" 3166 | checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 3167 | 3168 | [[package]] 3169 | name = "unicode-width" 3170 | version = "0.1.12" 3171 | source = "registry+https://github.com/rust-lang/crates.io-index" 3172 | checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" 3173 | 3174 | [[package]] 3175 | name = "unicode-width" 3176 | version = "0.2.2" 3177 | source = "registry+https://github.com/rust-lang/crates.io-index" 3178 | checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" 3179 | 3180 | [[package]] 3181 | name = "url" 3182 | version = "2.5.7" 3183 | source = "registry+https://github.com/rust-lang/crates.io-index" 3184 | checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" 3185 | dependencies = [ 3186 | "form_urlencoded", 3187 | "idna", 3188 | "percent-encoding", 3189 | "serde", 3190 | ] 3191 | 3192 | [[package]] 3193 | name = "utf8_iter" 3194 | version = "1.0.4" 3195 | source = "registry+https://github.com/rust-lang/crates.io-index" 3196 | checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 3197 | 3198 | [[package]] 3199 | name = "utf8parse" 3200 | version = "0.2.2" 3201 | source = "registry+https://github.com/rust-lang/crates.io-index" 3202 | checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" 3203 | 3204 | [[package]] 3205 | name = "uuid" 3206 | version = "1.18.1" 3207 | source = "registry+https://github.com/rust-lang/crates.io-index" 3208 | checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" 3209 | dependencies = [ 3210 | "js-sys", 3211 | "wasm-bindgen", 3212 | ] 3213 | 3214 | [[package]] 3215 | name = "version_check" 3216 | version = "0.9.5" 3217 | source = "registry+https://github.com/rust-lang/crates.io-index" 3218 | checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 3219 | 3220 | [[package]] 3221 | name = "walkdir" 3222 | version = "2.5.0" 3223 | source = "registry+https://github.com/rust-lang/crates.io-index" 3224 | checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 3225 | dependencies = [ 3226 | "same-file", 3227 | "winapi-util", 3228 | ] 3229 | 3230 | [[package]] 3231 | name = "wasi" 3232 | version = "0.11.1+wasi-snapshot-preview1" 3233 | source = "registry+https://github.com/rust-lang/crates.io-index" 3234 | checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 3235 | 3236 | [[package]] 3237 | name = "wasip2" 3238 | version = "1.0.1+wasi-0.2.4" 3239 | source = "registry+https://github.com/rust-lang/crates.io-index" 3240 | checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" 3241 | dependencies = [ 3242 | "wit-bindgen", 3243 | ] 3244 | 3245 | [[package]] 3246 | name = "wasm-bindgen" 3247 | version = "0.2.104" 3248 | source = "registry+https://github.com/rust-lang/crates.io-index" 3249 | checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" 3250 | dependencies = [ 3251 | "cfg-if", 3252 | "once_cell", 3253 | "rustversion", 3254 | "wasm-bindgen-macro", 3255 | "wasm-bindgen-shared", 3256 | ] 3257 | 3258 | [[package]] 3259 | name = "wasm-bindgen-backend" 3260 | version = "0.2.104" 3261 | source = "registry+https://github.com/rust-lang/crates.io-index" 3262 | checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" 3263 | dependencies = [ 3264 | "bumpalo", 3265 | "log", 3266 | "proc-macro2", 3267 | "quote", 3268 | "syn", 3269 | "wasm-bindgen-shared", 3270 | ] 3271 | 3272 | [[package]] 3273 | name = "wasm-bindgen-macro" 3274 | version = "0.2.104" 3275 | source = "registry+https://github.com/rust-lang/crates.io-index" 3276 | checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" 3277 | dependencies = [ 3278 | "quote", 3279 | "wasm-bindgen-macro-support", 3280 | ] 3281 | 3282 | [[package]] 3283 | name = "wasm-bindgen-macro-support" 3284 | version = "0.2.104" 3285 | source = "registry+https://github.com/rust-lang/crates.io-index" 3286 | checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" 3287 | dependencies = [ 3288 | "proc-macro2", 3289 | "quote", 3290 | "syn", 3291 | "wasm-bindgen-backend", 3292 | "wasm-bindgen-shared", 3293 | ] 3294 | 3295 | [[package]] 3296 | name = "wasm-bindgen-shared" 3297 | version = "0.2.104" 3298 | source = "registry+https://github.com/rust-lang/crates.io-index" 3299 | checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" 3300 | dependencies = [ 3301 | "unicode-ident", 3302 | ] 3303 | 3304 | [[package]] 3305 | name = "which" 3306 | version = "8.0.0" 3307 | source = "registry+https://github.com/rust-lang/crates.io-index" 3308 | checksum = "d3fabb953106c3c8eea8306e4393700d7657561cb43122571b172bbfb7c7ba1d" 3309 | dependencies = [ 3310 | "env_home", 3311 | "rustix 1.1.2", 3312 | "winsafe", 3313 | ] 3314 | 3315 | [[package]] 3316 | name = "winapi" 3317 | version = "0.3.9" 3318 | source = "registry+https://github.com/rust-lang/crates.io-index" 3319 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 3320 | dependencies = [ 3321 | "winapi-i686-pc-windows-gnu", 3322 | "winapi-x86_64-pc-windows-gnu", 3323 | ] 3324 | 3325 | [[package]] 3326 | name = "winapi-i686-pc-windows-gnu" 3327 | version = "0.4.0" 3328 | source = "registry+https://github.com/rust-lang/crates.io-index" 3329 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 3330 | 3331 | [[package]] 3332 | name = "winapi-util" 3333 | version = "0.1.11" 3334 | source = "registry+https://github.com/rust-lang/crates.io-index" 3335 | checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" 3336 | dependencies = [ 3337 | "windows-sys 0.61.2", 3338 | ] 3339 | 3340 | [[package]] 3341 | name = "winapi-x86_64-pc-windows-gnu" 3342 | version = "0.4.0" 3343 | source = "registry+https://github.com/rust-lang/crates.io-index" 3344 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 3345 | 3346 | [[package]] 3347 | name = "windows-core" 3348 | version = "0.62.2" 3349 | source = "registry+https://github.com/rust-lang/crates.io-index" 3350 | checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" 3351 | dependencies = [ 3352 | "windows-implement", 3353 | "windows-interface", 3354 | "windows-link", 3355 | "windows-result", 3356 | "windows-strings", 3357 | ] 3358 | 3359 | [[package]] 3360 | name = "windows-implement" 3361 | version = "0.60.2" 3362 | source = "registry+https://github.com/rust-lang/crates.io-index" 3363 | checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" 3364 | dependencies = [ 3365 | "proc-macro2", 3366 | "quote", 3367 | "syn", 3368 | ] 3369 | 3370 | [[package]] 3371 | name = "windows-interface" 3372 | version = "0.59.3" 3373 | source = "registry+https://github.com/rust-lang/crates.io-index" 3374 | checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" 3375 | dependencies = [ 3376 | "proc-macro2", 3377 | "quote", 3378 | "syn", 3379 | ] 3380 | 3381 | [[package]] 3382 | name = "windows-link" 3383 | version = "0.2.1" 3384 | source = "registry+https://github.com/rust-lang/crates.io-index" 3385 | checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" 3386 | 3387 | [[package]] 3388 | name = "windows-result" 3389 | version = "0.4.1" 3390 | source = "registry+https://github.com/rust-lang/crates.io-index" 3391 | checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" 3392 | dependencies = [ 3393 | "windows-link", 3394 | ] 3395 | 3396 | [[package]] 3397 | name = "windows-strings" 3398 | version = "0.5.1" 3399 | source = "registry+https://github.com/rust-lang/crates.io-index" 3400 | checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" 3401 | dependencies = [ 3402 | "windows-link", 3403 | ] 3404 | 3405 | [[package]] 3406 | name = "windows-sys" 3407 | version = "0.59.0" 3408 | source = "registry+https://github.com/rust-lang/crates.io-index" 3409 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 3410 | dependencies = [ 3411 | "windows-targets 0.52.6", 3412 | ] 3413 | 3414 | [[package]] 3415 | name = "windows-sys" 3416 | version = "0.60.2" 3417 | source = "registry+https://github.com/rust-lang/crates.io-index" 3418 | checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" 3419 | dependencies = [ 3420 | "windows-targets 0.53.5", 3421 | ] 3422 | 3423 | [[package]] 3424 | name = "windows-sys" 3425 | version = "0.61.2" 3426 | source = "registry+https://github.com/rust-lang/crates.io-index" 3427 | checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" 3428 | dependencies = [ 3429 | "windows-link", 3430 | ] 3431 | 3432 | [[package]] 3433 | name = "windows-targets" 3434 | version = "0.52.6" 3435 | source = "registry+https://github.com/rust-lang/crates.io-index" 3436 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 3437 | dependencies = [ 3438 | "windows_aarch64_gnullvm 0.52.6", 3439 | "windows_aarch64_msvc 0.52.6", 3440 | "windows_i686_gnu 0.52.6", 3441 | "windows_i686_gnullvm 0.52.6", 3442 | "windows_i686_msvc 0.52.6", 3443 | "windows_x86_64_gnu 0.52.6", 3444 | "windows_x86_64_gnullvm 0.52.6", 3445 | "windows_x86_64_msvc 0.52.6", 3446 | ] 3447 | 3448 | [[package]] 3449 | name = "windows-targets" 3450 | version = "0.53.5" 3451 | source = "registry+https://github.com/rust-lang/crates.io-index" 3452 | checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" 3453 | dependencies = [ 3454 | "windows-link", 3455 | "windows_aarch64_gnullvm 0.53.1", 3456 | "windows_aarch64_msvc 0.53.1", 3457 | "windows_i686_gnu 0.53.1", 3458 | "windows_i686_gnullvm 0.53.1", 3459 | "windows_i686_msvc 0.53.1", 3460 | "windows_x86_64_gnu 0.53.1", 3461 | "windows_x86_64_gnullvm 0.53.1", 3462 | "windows_x86_64_msvc 0.53.1", 3463 | ] 3464 | 3465 | [[package]] 3466 | name = "windows_aarch64_gnullvm" 3467 | version = "0.52.6" 3468 | source = "registry+https://github.com/rust-lang/crates.io-index" 3469 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 3470 | 3471 | [[package]] 3472 | name = "windows_aarch64_gnullvm" 3473 | version = "0.53.1" 3474 | source = "registry+https://github.com/rust-lang/crates.io-index" 3475 | checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" 3476 | 3477 | [[package]] 3478 | name = "windows_aarch64_msvc" 3479 | version = "0.52.6" 3480 | source = "registry+https://github.com/rust-lang/crates.io-index" 3481 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 3482 | 3483 | [[package]] 3484 | name = "windows_aarch64_msvc" 3485 | version = "0.53.1" 3486 | source = "registry+https://github.com/rust-lang/crates.io-index" 3487 | checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" 3488 | 3489 | [[package]] 3490 | name = "windows_i686_gnu" 3491 | version = "0.52.6" 3492 | source = "registry+https://github.com/rust-lang/crates.io-index" 3493 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 3494 | 3495 | [[package]] 3496 | name = "windows_i686_gnu" 3497 | version = "0.53.1" 3498 | source = "registry+https://github.com/rust-lang/crates.io-index" 3499 | checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" 3500 | 3501 | [[package]] 3502 | name = "windows_i686_gnullvm" 3503 | version = "0.52.6" 3504 | source = "registry+https://github.com/rust-lang/crates.io-index" 3505 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 3506 | 3507 | [[package]] 3508 | name = "windows_i686_gnullvm" 3509 | version = "0.53.1" 3510 | source = "registry+https://github.com/rust-lang/crates.io-index" 3511 | checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" 3512 | 3513 | [[package]] 3514 | name = "windows_i686_msvc" 3515 | version = "0.52.6" 3516 | source = "registry+https://github.com/rust-lang/crates.io-index" 3517 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 3518 | 3519 | [[package]] 3520 | name = "windows_i686_msvc" 3521 | version = "0.53.1" 3522 | source = "registry+https://github.com/rust-lang/crates.io-index" 3523 | checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" 3524 | 3525 | [[package]] 3526 | name = "windows_x86_64_gnu" 3527 | version = "0.52.6" 3528 | source = "registry+https://github.com/rust-lang/crates.io-index" 3529 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 3530 | 3531 | [[package]] 3532 | name = "windows_x86_64_gnu" 3533 | version = "0.53.1" 3534 | source = "registry+https://github.com/rust-lang/crates.io-index" 3535 | checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" 3536 | 3537 | [[package]] 3538 | name = "windows_x86_64_gnullvm" 3539 | version = "0.52.6" 3540 | source = "registry+https://github.com/rust-lang/crates.io-index" 3541 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 3542 | 3543 | [[package]] 3544 | name = "windows_x86_64_gnullvm" 3545 | version = "0.53.1" 3546 | source = "registry+https://github.com/rust-lang/crates.io-index" 3547 | checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" 3548 | 3549 | [[package]] 3550 | name = "windows_x86_64_msvc" 3551 | version = "0.52.6" 3552 | source = "registry+https://github.com/rust-lang/crates.io-index" 3553 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 3554 | 3555 | [[package]] 3556 | name = "windows_x86_64_msvc" 3557 | version = "0.53.1" 3558 | source = "registry+https://github.com/rust-lang/crates.io-index" 3559 | checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" 3560 | 3561 | [[package]] 3562 | name = "winnow" 3563 | version = "0.7.13" 3564 | source = "registry+https://github.com/rust-lang/crates.io-index" 3565 | checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" 3566 | dependencies = [ 3567 | "memchr", 3568 | ] 3569 | 3570 | [[package]] 3571 | name = "winsafe" 3572 | version = "0.0.19" 3573 | source = "registry+https://github.com/rust-lang/crates.io-index" 3574 | checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" 3575 | 3576 | [[package]] 3577 | name = "wit-bindgen" 3578 | version = "0.46.0" 3579 | source = "registry+https://github.com/rust-lang/crates.io-index" 3580 | checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" 3581 | 3582 | [[package]] 3583 | name = "writeable" 3584 | version = "0.6.1" 3585 | source = "registry+https://github.com/rust-lang/crates.io-index" 3586 | checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" 3587 | 3588 | [[package]] 3589 | name = "yoke" 3590 | version = "0.8.0" 3591 | source = "registry+https://github.com/rust-lang/crates.io-index" 3592 | checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" 3593 | dependencies = [ 3594 | "serde", 3595 | "stable_deref_trait", 3596 | "yoke-derive", 3597 | "zerofrom", 3598 | ] 3599 | 3600 | [[package]] 3601 | name = "yoke-derive" 3602 | version = "0.8.0" 3603 | source = "registry+https://github.com/rust-lang/crates.io-index" 3604 | checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" 3605 | dependencies = [ 3606 | "proc-macro2", 3607 | "quote", 3608 | "syn", 3609 | "synstructure", 3610 | ] 3611 | 3612 | [[package]] 3613 | name = "zerocopy" 3614 | version = "0.8.27" 3615 | source = "registry+https://github.com/rust-lang/crates.io-index" 3616 | checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" 3617 | dependencies = [ 3618 | "zerocopy-derive", 3619 | ] 3620 | 3621 | [[package]] 3622 | name = "zerocopy-derive" 3623 | version = "0.8.27" 3624 | source = "registry+https://github.com/rust-lang/crates.io-index" 3625 | checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" 3626 | dependencies = [ 3627 | "proc-macro2", 3628 | "quote", 3629 | "syn", 3630 | ] 3631 | 3632 | [[package]] 3633 | name = "zerofrom" 3634 | version = "0.1.6" 3635 | source = "registry+https://github.com/rust-lang/crates.io-index" 3636 | checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" 3637 | dependencies = [ 3638 | "zerofrom-derive", 3639 | ] 3640 | 3641 | [[package]] 3642 | name = "zerofrom-derive" 3643 | version = "0.1.6" 3644 | source = "registry+https://github.com/rust-lang/crates.io-index" 3645 | checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" 3646 | dependencies = [ 3647 | "proc-macro2", 3648 | "quote", 3649 | "syn", 3650 | "synstructure", 3651 | ] 3652 | 3653 | [[package]] 3654 | name = "zerotrie" 3655 | version = "0.2.2" 3656 | source = "registry+https://github.com/rust-lang/crates.io-index" 3657 | checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" 3658 | dependencies = [ 3659 | "displaydoc", 3660 | "yoke", 3661 | "zerofrom", 3662 | ] 3663 | 3664 | [[package]] 3665 | name = "zerovec" 3666 | version = "0.11.4" 3667 | source = "registry+https://github.com/rust-lang/crates.io-index" 3668 | checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" 3669 | dependencies = [ 3670 | "yoke", 3671 | "zerofrom", 3672 | "zerovec-derive", 3673 | ] 3674 | 3675 | [[package]] 3676 | name = "zerovec-derive" 3677 | version = "0.11.1" 3678 | source = "registry+https://github.com/rust-lang/crates.io-index" 3679 | checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" 3680 | dependencies = [ 3681 | "proc-macro2", 3682 | "quote", 3683 | "syn", 3684 | ] 3685 | 3686 | [[package]] 3687 | name = "zlib-rs" 3688 | version = "0.5.2" 3689 | source = "registry+https://github.com/rust-lang/crates.io-index" 3690 | checksum = "2f06ae92f42f5e5c42443fd094f245eb656abf56dd7cce9b8b263236565e00f2" 3691 | --------------------------------------------------------------------------------