├── .gitignore ├── quilt.png ├── Readme.md ├── src ├── main.rs ├── cli.rs ├── installer.rs └── gui.rs ├── Cargo.toml ├── .github └── workflows │ └── release.yml ├── LICENSE └── Cargo.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /quilt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QuiltMC/quilt-native-installer/HEAD/quilt.png -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | > :warning: NOTE: This project is still in its early development. There's guaranteed bugs and missing functionality. 2 | 3 | # Quilt Installer 4 | This is a native installer for [quilt-loader](https://github.com/QuiltMC/quilt-loader). 5 | 6 | ## Note: Building linux executables 7 | Because of the horrors that is glibc, I recommend building with musl instead. 8 | The easiest way to achieve this is by building inside an alpine docker container: 9 | ``` 10 | docker run --rm -v "$PWD":/usr/src -w /usr/src rust:1.60-alpine sh -c "apk add --update --no-cache musl-dev openssl-dev && cargo build --release" 11 | ``` 12 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | #![windows_subsystem = "windows"] 2 | 3 | use anyhow::Context; 4 | use clap::Parser; 5 | 6 | mod cli; 7 | mod gui; 8 | mod installer; 9 | 10 | const ICON: &[u8] = include_bytes!("../quilt.png"); 11 | 12 | fn main() -> anyhow::Result<()> { 13 | let args = cli::Args::parse(); 14 | let client = reqwest::Client::builder() 15 | .user_agent(concat!( 16 | env!("CARGO_PKG_NAME"), 17 | '/', 18 | env!("CARGO_PKG_VERSION"), 19 | )) 20 | .build() 21 | .unwrap(); 22 | 23 | if args.subcommand.is_some() { 24 | tokio::runtime::Runtime::new() 25 | .unwrap() 26 | .block_on(cli::cli(client, args)) 27 | .context("Installation failed!") 28 | } else { 29 | println!("quilt-installer can also be used as a CLI! Run with --help for more information"); 30 | gui::run(client) 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "quilt-installer" 3 | description = "The installer for quilt-loader" 4 | version = "0.1.1" 5 | license = "Apache-2.0" 6 | edition = "2021" 7 | 8 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 9 | 10 | [dependencies] 11 | anyhow = "1.0" 12 | base64 = "0.21" 13 | chrono = { version = "0.4", features = ["serde"] } 14 | clap = { version = "4.4", features = ["derive"] } 15 | dark-light = "1.0" 16 | derive_more = "0.99" 17 | iced = { version = "0.10", default-features = false, features = ["tokio"] } 18 | # TODO: if we keep using this lib into the future, maybe we just fork it as Quilt? 19 | native-dialog = { git = "https://github.com/TheGlitch76/native-dialog-rs", features = [ 20 | "windows_dpi_awareness", 21 | "windows_visual_styles", 22 | ] } 23 | png = "0.17" 24 | reqwest = { version = "0.11", features = ["blocking", "json"] } 25 | semver = { version = "1.0", features = ["serde"] } 26 | serde = { version = "1.0", features = ["derive"] } 27 | serde_json = "1.0" 28 | tokio = "1.35" 29 | 30 | [profile.release] 31 | codegen-units = 1 32 | opt-level = "z" 33 | strip = true 34 | lto = true 35 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | release: 5 | types: [published] 6 | 7 | env: 8 | CARGO_TERM_COLOR: always 9 | 10 | jobs: 11 | release-linux: 12 | runs-on: ubuntu-18.04 13 | steps: 14 | - name: Checkout 15 | uses: actions/checkout@v3 16 | - name: Build 17 | run: cargo build -r 18 | - name: Upload 19 | uses: actions/upload-release-asset@v1 20 | env: 21 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 22 | with: 23 | upload_url: ${{ github.event.release.upload_url }} 24 | asset_path: ./target/release/quilt-installer 25 | asset_name: quilt-installer-linux 26 | asset_content_type: application/octet-stream 27 | release-windows: 28 | runs-on: windows-2019 29 | steps: 30 | - name: Checkout 31 | uses: actions/checkout@v3 32 | - name: Build 33 | run: cargo build -r 34 | - name: Upload 35 | uses: actions/upload-release-asset@v1 36 | env: 37 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 38 | with: 39 | upload_url: ${{ github.event.release.upload_url }} 40 | asset_path: ./target/release/quilt-installer.exe 41 | asset_name: quilt-installer-windows.exe 42 | asset_content_type: application/octet-stream 43 | release-mac: 44 | runs-on: macos-11 45 | steps: 46 | - name: Checkout 47 | uses: actions/checkout@v3 48 | - name: Build 49 | run: cargo build -r 50 | - name: Upload 51 | uses: actions/upload-release-asset@v1 52 | env: 53 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 54 | with: 55 | upload_url: ${{ github.event.release.upload_url }} 56 | asset_path: ./target/release/quilt-installer 57 | asset_name: quilt-installer-macos 58 | asset_content_type: application/octet-stream 59 | -------------------------------------------------------------------------------- /src/cli.rs: -------------------------------------------------------------------------------- 1 | use crate::installer::{ 2 | self, ClientInstallation, LoaderVersion, MinecraftVersion, ServerInstallation, 3 | }; 4 | use anyhow::Context; 5 | use anyhow::Result; 6 | use clap::{Parser, Subcommand}; 7 | use derive_more::Display; 8 | use reqwest::Client; 9 | use std::path::PathBuf; 10 | 11 | #[derive(Parser)] 12 | #[command(about, version, propagate_version = true)] 13 | pub struct Args { 14 | #[clap(subcommand)] 15 | pub subcommand: Option, 16 | /// The Minecraft version to install 17 | /// 18 | /// Pick between the 19 | /// latest `stable` version, 20 | /// latest `snapshot`, 21 | /// or a specific version number. 22 | #[arg(short = 'm', long, default_value_t)] 23 | minecraft_version: MCVersionCLI, 24 | /// The Quilt loader version to install 25 | /// 26 | /// Pick between the 27 | /// latest `stable` version, 28 | /// latest `beta`, 29 | /// or a specific version number. 30 | #[arg(short = 'l', long, default_value_t)] 31 | loader_version: LoaderVersionCLI, 32 | } 33 | 34 | #[derive(Subcommand)] 35 | pub enum Subcommands { 36 | /// Install the Quilt Loader client 37 | Client { 38 | /// Don't create a profile 39 | #[arg(short = 'P', long)] 40 | no_profile: bool, 41 | /// The directory to install to 42 | #[arg( 43 | short = 'o', 44 | long, 45 | default_value_os_t = installer::get_default_client_directory() 46 | )] 47 | install_dir: PathBuf, 48 | }, 49 | /// Install the Quilt standalone server 50 | Server { 51 | /// Do not generate a launch script 52 | #[arg(short = 'S', long)] 53 | no_launch_script: bool, 54 | /// Do not download the server jar 55 | #[arg(short = 'J', long)] 56 | no_jar: bool, 57 | /// The directory to install to 58 | #[arg(short = 'o', long)] 59 | install_dir: PathBuf, 60 | }, 61 | } 62 | #[derive(Clone, PartialEq, Eq, Default, Display)] 63 | pub enum MCVersionCLI { 64 | #[default] 65 | Stable, 66 | Snapshot, 67 | Custom(String), 68 | } 69 | 70 | #[derive(Clone, PartialEq, Eq, Default, Display)] 71 | pub enum LoaderVersionCLI { 72 | #[default] 73 | Stable, 74 | Beta, 75 | Custom(String), 76 | } 77 | 78 | impl From for MCVersionCLI { 79 | fn from(s: String) -> Self { 80 | match s.to_lowercase().as_ref() { 81 | "stable" => Self::Stable, 82 | "snapshot" => Self::Snapshot, 83 | _ => Self::Custom(s), 84 | } 85 | } 86 | } 87 | 88 | impl From for LoaderVersionCLI { 89 | fn from(s: String) -> Self { 90 | match s.to_lowercase().as_ref() { 91 | "stable" => Self::Stable, 92 | "beta" => Self::Beta, 93 | _ => Self::Custom(s), 94 | } 95 | } 96 | } 97 | 98 | pub async fn cli(client: Client, args: Args) -> Result<()> { 99 | let (minecraft_version, loader_version) = 100 | get_versions(client.clone(), args.minecraft_version, args.loader_version).await?; 101 | 102 | match args.subcommand.unwrap() { 103 | Subcommands::Client { 104 | no_profile, 105 | install_dir, 106 | } => { 107 | installer::install_client( 108 | client, 109 | ClientInstallation { 110 | minecraft_version, 111 | loader_version, 112 | install_dir, 113 | generate_profile: !no_profile, 114 | }, 115 | ) 116 | .await 117 | } 118 | Subcommands::Server { 119 | no_launch_script, 120 | no_jar, 121 | install_dir, 122 | } => { 123 | installer::install_server( 124 | client, 125 | ServerInstallation { 126 | minecraft_version, 127 | loader_version, 128 | install_dir, 129 | download_jar: !no_jar, 130 | generate_script: !no_launch_script, 131 | }, 132 | ) 133 | .await 134 | } 135 | } 136 | } 137 | 138 | async fn get_versions( 139 | client: Client, 140 | minecraft_version: MCVersionCLI, 141 | loader_version: LoaderVersionCLI, 142 | ) -> Result<(MinecraftVersion, LoaderVersion)> { 143 | let minecraft_versions = installer::fetch_minecraft_versions(client.clone()).await?; 144 | let loader_versions = installer::fetch_loader_versions(client).await?; 145 | 146 | Ok(( 147 | match minecraft_version { 148 | MCVersionCLI::Stable => minecraft_versions.into_iter().find(|v| v.stable).unwrap(), 149 | MCVersionCLI::Snapshot => minecraft_versions.into_iter().find(|v| !v.stable).unwrap(), 150 | MCVersionCLI::Custom(input) => minecraft_versions 151 | .into_iter() 152 | .find(|v| v.version == input) 153 | .with_context(|| format!("Could not find Minecraft version {}", input))?, 154 | }, 155 | match loader_version { 156 | LoaderVersionCLI::Stable => loader_versions 157 | .into_iter() 158 | .find(|v| v.version.pre.is_empty()) 159 | .context("Could not find a stable Quilt Loader version")?, 160 | LoaderVersionCLI::Beta => loader_versions 161 | .into_iter() 162 | .find(|v| !v.version.pre.is_empty()) 163 | .context("Could not find a beta Quilt Loader version")?, 164 | LoaderVersionCLI::Custom(input) => loader_versions 165 | .into_iter() 166 | .find(|v| v.to_string() == input) 167 | .with_context(|| format!("Could not find Quilt Loader version {}", input))?, 168 | }, 169 | )) 170 | } 171 | -------------------------------------------------------------------------------- /src/installer.rs: -------------------------------------------------------------------------------- 1 | use std::{ 2 | collections::HashMap, 3 | fs::{self, File}, 4 | io::{Seek, Write}, 5 | path::PathBuf, 6 | }; 7 | 8 | use anyhow::{anyhow, bail, Result}; 9 | use base64::{engine::general_purpose::STANDARD as BASE64, Engine}; 10 | use chrono::{DateTime, Utc}; 11 | use reqwest::Client; 12 | use semver::Version; 13 | use serde::{Deserialize, Serialize}; 14 | use serde_json::{Map, Value}; 15 | 16 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Default)] 17 | pub enum Installation { 18 | #[default] 19 | Client, 20 | Server, 21 | } 22 | 23 | #[derive(Debug, Clone)] 24 | pub struct ClientInstallation { 25 | pub minecraft_version: MinecraftVersion, 26 | pub loader_version: LoaderVersion, 27 | pub install_dir: PathBuf, 28 | pub generate_profile: bool, 29 | } 30 | 31 | impl std::fmt::Display for ClientInstallation { 32 | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 33 | write!( 34 | f, 35 | "Quilt Loader {} for Minecraft {} to {}{}", 36 | self.loader_version, 37 | self.minecraft_version, 38 | self.install_dir.display(), 39 | if self.generate_profile { 40 | " and generating profile" 41 | } else { 42 | "" 43 | } 44 | ) 45 | } 46 | } 47 | 48 | #[derive(Debug, Clone)] 49 | pub struct ServerInstallation { 50 | pub minecraft_version: MinecraftVersion, 51 | pub loader_version: LoaderVersion, 52 | pub install_dir: PathBuf, 53 | pub download_jar: bool, 54 | pub generate_script: bool, 55 | } 56 | 57 | #[derive(Debug, Clone, PartialEq, Eq, Deserialize, derive_more::Display)] 58 | #[display(fmt = "{}", version)] 59 | pub struct MinecraftVersion { 60 | pub version: String, 61 | pub stable: bool, 62 | } 63 | 64 | #[derive(Debug, Clone, PartialEq, Eq, Deserialize, derive_more::Display)] 65 | #[display(fmt = "{}", version)] 66 | pub struct LoaderVersion { 67 | pub separator: char, 68 | pub build: u32, 69 | pub maven: String, 70 | pub version: Version, 71 | } 72 | 73 | pub async fn fetch_minecraft_versions(client: Client) -> Result> { 74 | Ok(client 75 | .get("https://meta.quiltmc.org/v3/versions/game") 76 | .send() 77 | .await? 78 | .json() 79 | .await?) 80 | } 81 | 82 | pub async fn fetch_loader_versions(client: Client) -> Result> { 83 | Ok(client 84 | .get("https://meta.quiltmc.org/v3/versions/loader") 85 | .send() 86 | .await? 87 | .json() 88 | .await?) 89 | } 90 | 91 | #[derive(Debug, Clone, Deserialize, Serialize)] 92 | #[serde(rename_all = "camelCase")] 93 | pub struct LauncherProfiles { 94 | profiles: HashMap, 95 | #[serde(flatten)] 96 | other: Map, 97 | } 98 | 99 | #[derive(Debug, Clone, Deserialize, Serialize)] 100 | #[serde(rename_all = "camelCase")] 101 | struct Profile { 102 | name: String, 103 | #[serde(rename = "type")] 104 | profile_type: String, 105 | created: DateTime, 106 | last_version_id: String, 107 | icon: String, 108 | #[serde(flatten)] 109 | other: Map, 110 | } 111 | 112 | #[cfg(target_os = "windows")] 113 | pub fn get_default_client_directory() -> PathBuf { 114 | PathBuf::from(std::env::var("APPDATA").unwrap()).join(".minecraft") 115 | } 116 | 117 | #[cfg(target_os = "macos")] 118 | pub fn get_default_client_directory() -> PathBuf { 119 | PathBuf::from(std::env::var("HOME").unwrap()) 120 | .join("Library") 121 | .join("Application Support") 122 | .join("minecraft") 123 | } 124 | 125 | #[cfg(target_os = "linux")] 126 | pub fn get_default_client_directory() -> PathBuf { 127 | PathBuf::from(std::env::var("HOME").unwrap()).join(".minecraft") 128 | } 129 | 130 | pub async fn install_client(client: Client, args: ClientInstallation) -> Result<()> { 131 | println!("Installing client {args}"); 132 | 133 | // Verify install location 134 | if !args.install_dir.join("launcher_profiles.json").exists() { 135 | bail!( 136 | "{} is not a valid installation directory", 137 | args.install_dir.display(), 138 | ); 139 | } 140 | 141 | // Resolve profile directory 142 | let profile_name = format!( 143 | "quilt-loader-{}-{}", 144 | args.loader_version, args.minecraft_version 145 | ); 146 | let profile_dir = args.install_dir.join("versions").join(&profile_name); 147 | 148 | // Delete existing profile 149 | if profile_dir.exists() { 150 | fs::remove_dir_all(&profile_dir)?; 151 | } 152 | 153 | // Create profile directory 154 | fs::create_dir_all(&profile_dir)?; 155 | 156 | // Create launch json 157 | let mut file = File::create(profile_dir.join(profile_name.clone() + ".json"))?; 158 | 159 | // Download launch json 160 | let mut response = client 161 | .get(format!( 162 | "https://meta.quiltmc.org/v3/versions/loader/{}/{}/profile/json", 163 | &args.minecraft_version.version, &args.loader_version.version 164 | )) 165 | .send() 166 | .await? 167 | .text() 168 | .await?; 169 | 170 | // Hack-Fix: 171 | // Was fixed in versions above 0.17.7 172 | if args.loader_version.version < Version::new(0, 17, 7) { 173 | // Quilt-meta specifies both hashed and intermediary, 174 | // but providing both to quilt-loader causes it to silently fail remapping. 175 | let mut json: Value = serde_json::from_str(&response)?; 176 | let libs = json 177 | .as_object_mut() 178 | .unwrap() 179 | .get_mut("libraries") 180 | .unwrap() 181 | .as_array_mut() 182 | .unwrap(); 183 | libs.retain(|lib| { 184 | !lib.as_object() 185 | .unwrap() 186 | .get("name") 187 | .unwrap() 188 | .as_str() 189 | .unwrap() 190 | .starts_with("org.quiltmc:hashed") 191 | }); 192 | response = serde_json::to_string(&json)?; 193 | } 194 | // End of hack-fix 195 | 196 | file.write_all(response.as_bytes())?; 197 | 198 | // Generate profile 199 | if args.generate_profile { 200 | let mut file = fs::OpenOptions::new().read(true).write(true).open( 201 | args.install_dir 202 | .join("launcher_profiles") 203 | .with_extension("json"), 204 | )?; 205 | 206 | let mut launcher_profiles: LauncherProfiles = serde_json::from_reader(&file)?; 207 | launcher_profiles.profiles.insert( 208 | profile_name.clone(), 209 | Profile { 210 | name: format!("Quilt Loader {}", &args.minecraft_version.version), 211 | profile_type: "custom".into(), 212 | created: Utc::now(), 213 | last_version_id: profile_name, 214 | icon: format!("data:image/png;base64,{}", BASE64.encode(crate::ICON)), 215 | other: Map::new(), 216 | }, 217 | ); 218 | 219 | file.set_len(0)?; 220 | file.rewind()?; 221 | serde_json::to_writer_pretty(file, &launcher_profiles)?; 222 | } 223 | 224 | println!("Client installed successfully."); 225 | Ok(()) 226 | } 227 | 228 | pub async fn install_server(_client: Client, args: ServerInstallation) -> Result<()> { 229 | println!("Installing server\n{args:#?}"); 230 | Err(anyhow!("Server installation hasn't been implemented!")) 231 | } 232 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | -------------------------------------------------------------------------------- /src/gui.rs: -------------------------------------------------------------------------------- 1 | use std::borrow::Cow; 2 | use std::fmt::Debug; 3 | use std::path::PathBuf; 4 | 5 | use anyhow::{anyhow, Error, Result}; 6 | use iced::widget::{ 7 | Button, Checkbox, Column, PickList, ProgressBar, Radio, Row, Rule, Space, Text, TextInput, 8 | }; 9 | use iced::{ 10 | alignment::Horizontal, executor, window, Application, Command, Element, Length, Settings, Theme, 11 | }; 12 | use native_dialog::{FileDialog, MessageDialog, MessageType}; 13 | use png::Transformations; 14 | use reqwest::Client; 15 | 16 | use crate::installer::{ 17 | fetch_loader_versions, fetch_minecraft_versions, get_default_client_directory, install_client, 18 | install_server, ClientInstallation, Installation, LoaderVersion, MinecraftVersion, 19 | ServerInstallation, 20 | }; 21 | 22 | pub fn run(client: Client) -> Result<()> { 23 | State::run(Settings { 24 | window: window::Settings { 25 | size: (600, 300), 26 | resizable: false, 27 | icon: Some(create_icon()?), 28 | ..Default::default() 29 | }, 30 | flags: client, 31 | ..Default::default() 32 | })?; 33 | 34 | Ok(()) 35 | } 36 | 37 | fn create_icon() -> Result { 38 | let mut decoder = png::Decoder::new(crate::ICON); 39 | decoder.set_transformations(Transformations::EXPAND); 40 | let mut reader = decoder.read_info()?; 41 | let mut buffer = vec![0; reader.output_buffer_size()]; 42 | let info = reader.next_frame(&mut buffer)?; 43 | let bytes = &buffer[..info.buffer_size()]; 44 | Ok(window::icon::from_rgba( 45 | bytes.to_vec(), 46 | info.width, 47 | info.height, 48 | )?) 49 | } 50 | 51 | #[derive(Debug, Default)] 52 | struct State { 53 | // Minecraft version picker 54 | minecraft_versions: Vec, 55 | selected_minecraft_version: Option, 56 | show_snapshots: bool, 57 | 58 | // Quilt Loader version picker 59 | loader_versions: Vec, 60 | selected_loader_version: Option, 61 | show_betas: bool, 62 | 63 | installation_type: Installation, 64 | 65 | // Client settings 66 | client_location: PathBuf, 67 | generate_profile: bool, 68 | 69 | // Server settings 70 | server_location: PathBuf, 71 | download_server_jar: bool, 72 | generate_launch_script: bool, 73 | 74 | // Progress information 75 | is_installing: bool, 76 | progress: f32, 77 | 78 | // HTTP reqwest client 79 | client: Client, 80 | } 81 | 82 | #[derive(Debug)] 83 | enum Message { 84 | Interaction(Interaction), 85 | Install, 86 | BrowseClientLocation, 87 | BrowseServerLocation, 88 | SetMcVersions(Result>), 89 | SetLoaderVersions(Result>), 90 | DoneInstalling(Result<()>), 91 | Error(Error), 92 | } 93 | 94 | #[derive(Debug, Clone)] 95 | enum Interaction { 96 | ChangeClientLocation(String), 97 | BrowseClientLocation, 98 | Install, 99 | SelectInstallation(Installation), 100 | SelectLoaderVersion(LoaderVersion), 101 | SelectMcVersion(MinecraftVersion), 102 | SetShowSnapshots(bool), 103 | SetShowBetas(bool), 104 | GenerateLaunchScript(bool), 105 | GenerateProfile(bool), 106 | ChangeServerLocation(String), 107 | BrowseServerLocation, 108 | DownloadServerJar(bool), 109 | } 110 | 111 | impl From for Command { 112 | fn from(m: Message) -> Self { 113 | Self::perform(async { m }, |t| t) 114 | } 115 | } 116 | 117 | impl Application for State { 118 | type Message = Message; 119 | type Executor = executor::Default; 120 | type Flags = Client; 121 | type Theme = Theme; 122 | 123 | fn theme(&self) -> Self::Theme { 124 | use dark_light::Mode; 125 | match dark_light::detect() { 126 | Mode::Light => Theme::Light, 127 | Mode::Dark | Mode::Default => Theme::Dark, 128 | } 129 | } 130 | 131 | fn new(client: Client) -> (Self, Command) { 132 | ( 133 | State { 134 | client_location: get_default_client_directory(), 135 | generate_profile: true, 136 | server_location: std::env::current_dir().unwrap_or_default(), 137 | download_server_jar: true, 138 | generate_launch_script: true, 139 | client: client.clone(), 140 | ..Default::default() 141 | }, 142 | Command::batch([ 143 | Command::perform( 144 | fetch_minecraft_versions(client.clone()), 145 | Message::SetMcVersions, 146 | ), 147 | Command::perform(fetch_loader_versions(client), Message::SetLoaderVersions), 148 | ]), 149 | ) 150 | } 151 | 152 | fn title(&self) -> String { 153 | "Quilt Installer".into() 154 | } 155 | 156 | fn update(&mut self, message: Self::Message) -> Command { 157 | match message { 158 | Message::Interaction(interaction) => match interaction { 159 | Interaction::ChangeClientLocation(location) => { 160 | self.client_location = location.into(); 161 | } 162 | Interaction::BrowseClientLocation => return Message::BrowseClientLocation.into(), 163 | Interaction::Install => return Message::Install.into(), 164 | Interaction::SelectInstallation(i) => self.installation_type = i, 165 | Interaction::SelectLoaderVersion(v) => self.selected_loader_version = Some(v), 166 | Interaction::SelectMcVersion(v) => self.selected_minecraft_version = Some(v), 167 | Interaction::SetShowSnapshots(enable) => { 168 | self.show_snapshots = enable; 169 | self.selected_minecraft_version = self 170 | .minecraft_versions 171 | .iter() 172 | .find(|v| enable || v.stable) 173 | .cloned(); 174 | } 175 | Interaction::SetShowBetas(enable) => { 176 | self.show_betas = enable; 177 | self.selected_loader_version = self 178 | .loader_versions 179 | .iter() 180 | .find(|v| enable || v.version.pre.is_empty()) 181 | .cloned(); 182 | } 183 | Interaction::GenerateLaunchScript(value) => self.generate_launch_script = value, 184 | Interaction::GenerateProfile(value) => self.generate_profile = value, 185 | Interaction::ChangeServerLocation(location) => { 186 | self.server_location = location.into(); 187 | } 188 | Interaction::BrowseServerLocation => return Message::BrowseServerLocation.into(), 189 | Interaction::DownloadServerJar(value) => self.download_server_jar = value, 190 | }, 191 | Message::SetMcVersions(result) => { 192 | match result { 193 | Ok(versions) => self.minecraft_versions = versions, 194 | Err(error) => return Message::Error(error).into(), 195 | } 196 | if self.selected_minecraft_version.is_none() { 197 | self.selected_minecraft_version = self 198 | .minecraft_versions 199 | .iter() 200 | .find(|v| self.show_snapshots || v.stable) 201 | .cloned(); 202 | } 203 | } 204 | Message::SetLoaderVersions(result) => { 205 | match result { 206 | Ok(versions) => self.loader_versions = versions, 207 | Err(error) => return Message::Error(error).into(), 208 | } 209 | if self.selected_loader_version.is_none() { 210 | self.selected_loader_version = self 211 | .loader_versions 212 | .iter() 213 | .find(|v| self.show_betas || v.version.pre.is_empty()) 214 | .cloned(); 215 | } 216 | } 217 | Message::BrowseClientLocation => { 218 | let mut dialog = FileDialog::new(); 219 | let working_dir = std::env::current_dir(); 220 | if self.client_location.is_dir() { 221 | dialog = dialog.set_location(&self.client_location); 222 | } else if let Ok(working_dir) = &working_dir { 223 | dialog = dialog.set_location(working_dir) 224 | } 225 | match dialog.show_open_single_dir() { 226 | Ok(Some(path)) => self.client_location = path, 227 | Ok(None) => (), 228 | Err(error) => return Message::Error(error.into()).into(), 229 | } 230 | } 231 | Message::BrowseServerLocation => { 232 | let mut dialog = FileDialog::new(); 233 | let working_dir = std::env::current_dir(); 234 | if self.client_location.is_dir() { 235 | dialog = dialog.set_location(&self.server_location); 236 | } else if let Ok(working_dir) = &working_dir { 237 | dialog = dialog.set_location(working_dir) 238 | } 239 | match dialog.show_open_single_dir() { 240 | Ok(Some(path)) => self.server_location = path, 241 | Ok(None) => (), 242 | Err(error) => return Message::Error(error.into()).into(), 243 | } 244 | } 245 | Message::Install => { 246 | self.is_installing = true; 247 | self.progress = 0.0; 248 | 249 | return match self.installation_type { 250 | Installation::Client => Command::perform( 251 | install_client( 252 | self.client.clone(), 253 | ClientInstallation { 254 | minecraft_version: match &self.selected_minecraft_version { 255 | Some(s) => s.clone(), 256 | None => { 257 | return Message::Error(anyhow!( 258 | "Minecraft version not selected!" 259 | )) 260 | .into() 261 | } 262 | }, 263 | loader_version: match &self.selected_loader_version { 264 | Some(s) => s.clone(), 265 | None => { 266 | return Message::Error(anyhow!( 267 | "Loader version not selected!" 268 | )) 269 | .into() 270 | } 271 | }, 272 | install_dir: self.client_location.clone(), 273 | generate_profile: self.generate_profile, 274 | }, 275 | ), 276 | Message::DoneInstalling, 277 | ), 278 | Installation::Server => Command::perform( 279 | install_server( 280 | self.client.clone(), 281 | ServerInstallation { 282 | minecraft_version: match &self.selected_minecraft_version { 283 | Some(s) => s.clone(), 284 | None => { 285 | return Message::Error(anyhow!( 286 | "Minecraft version not selected!" 287 | )) 288 | .into() 289 | } 290 | }, 291 | loader_version: match &self.selected_loader_version { 292 | Some(s) => s.clone(), 293 | None => { 294 | return Message::Error(anyhow!( 295 | "Loader version not selected!" 296 | )) 297 | .into() 298 | } 299 | }, 300 | install_dir: self.server_location.clone(), 301 | download_jar: self.download_server_jar, 302 | generate_script: self.generate_launch_script, 303 | }, 304 | ), 305 | Message::DoneInstalling, 306 | ), 307 | }; 308 | } 309 | Message::DoneInstalling(res) => { 310 | self.is_installing = false; 311 | self.progress = 1.0; 312 | 313 | if let Err(e) = res { 314 | return Message::Error(e).into(); 315 | } 316 | } 317 | Message::Error(error) => { 318 | eprintln!("{error:?}"); 319 | MessageDialog::new() 320 | .set_title("Quilt Installer Error") 321 | .set_text(&error.to_string()) 322 | .set_type(MessageType::Error) 323 | .show_alert() 324 | .unwrap(); 325 | } 326 | } 327 | 328 | Command::none() 329 | } 330 | 331 | fn view(&self) -> Element<'_, Self::Message> { 332 | let installation_label = Text::new("Installation:").width(140); 333 | let installation_client = Radio::new( 334 | "Client", 335 | Installation::Client, 336 | Some(self.installation_type), 337 | Interaction::SelectInstallation, 338 | ); 339 | let installation_server = Radio::new( 340 | "Server", 341 | Installation::Server, 342 | Some(self.installation_type), 343 | Interaction::SelectInstallation, 344 | ); 345 | let installation_row = Row::new() 346 | .push(installation_label) 347 | .push(installation_client) 348 | .push(installation_server) 349 | .width(Length::Fill) 350 | .spacing(50) 351 | .padding(5); 352 | 353 | let minecraft_version_label = Text::new("Minecraft version:").width(140); 354 | let minecraft_version_list = PickList::new( 355 | Cow::from_iter( 356 | self.minecraft_versions 357 | .iter() 358 | .filter(|v| self.show_snapshots || v.stable) 359 | .cloned(), 360 | ), 361 | self.selected_minecraft_version.clone(), 362 | Interaction::SelectMcVersion, 363 | ) 364 | .width(200); 365 | let enable_snapshots = Checkbox::new( 366 | "Show snapshots", 367 | self.show_snapshots, 368 | Interaction::SetShowSnapshots, 369 | ); 370 | let mc_row = Row::new() 371 | .push(minecraft_version_label) 372 | .push(minecraft_version_list) 373 | .push(Space::new(20, 0)) 374 | .push(enable_snapshots) 375 | .width(Length::Fill) 376 | .spacing(5) 377 | .padding(5); 378 | 379 | let loader_version_label = Text::new("Loader version:").width(140); 380 | let loader_version_list = PickList::new( 381 | Cow::from_iter( 382 | self.loader_versions 383 | .iter() 384 | .filter(|v| self.show_betas || v.version.pre.is_empty()) 385 | .cloned(), 386 | ), 387 | self.selected_loader_version.clone(), 388 | Interaction::SelectLoaderVersion, 389 | ) 390 | .width(200); 391 | let enable_betas = Checkbox::new("Show betas", self.show_betas, Interaction::SetShowBetas); 392 | let loader_row = Row::new() 393 | .push(loader_version_label) 394 | .push(loader_version_list) 395 | .push(Space::new(20, 0)) 396 | .push(enable_betas) 397 | .width(Length::Fill) 398 | .spacing(5) 399 | .padding(5); 400 | 401 | let client_location_label = Text::new("Directory:").width(140); 402 | let mut client_location_input = TextInput::new( 403 | "Install location", 404 | &self.client_location.display().to_string(), 405 | ) 406 | .padding(5); 407 | if !self.is_installing { 408 | client_location_input = 409 | client_location_input.on_input(Interaction::ChangeClientLocation); 410 | } 411 | let client_loction_browse = 412 | Button::new(Text::new("Browse...")).on_press(Interaction::BrowseClientLocation); 413 | let client_location_row = Row::new() 414 | .push(client_location_label) 415 | .push(client_location_input) 416 | .push(client_loction_browse) 417 | .width(Length::Fill) 418 | .spacing(5) 419 | .padding(5); 420 | 421 | let client_options_label = Text::new("Options:").width(140); 422 | let create_profile = Checkbox::new( 423 | "Generate profile", 424 | self.generate_profile, 425 | Interaction::GenerateProfile, 426 | ); 427 | let client_options_row = Row::new() 428 | .push(client_options_label) 429 | .push(create_profile) 430 | .spacing(5) 431 | .padding(5); 432 | 433 | let server_location_label = Text::new("Directory:").width(140); 434 | let mut server_location_input = TextInput::new( 435 | "Install location", 436 | &self.server_location.display().to_string(), 437 | ) 438 | .padding(5); 439 | if !self.is_installing { 440 | server_location_input = 441 | server_location_input.on_input(Interaction::ChangeServerLocation); 442 | } 443 | let server_loction_browse = 444 | Button::new(Text::new("Browse...")).on_press(Interaction::BrowseServerLocation); 445 | let server_location_row = Row::new() 446 | .push(server_location_label) 447 | .push(server_location_input) 448 | .push(server_loction_browse) 449 | .width(Length::Fill) 450 | .spacing(5) 451 | .padding(5); 452 | 453 | let server_options_label = Text::new("Options:").width(140); 454 | let download_server_jar = Checkbox::new( 455 | "Download server jar", 456 | self.download_server_jar, 457 | Interaction::DownloadServerJar, 458 | ); 459 | let generate_launch_script = Checkbox::new( 460 | "Generate launch script", 461 | self.generate_launch_script, 462 | Interaction::GenerateLaunchScript, 463 | ); 464 | let server_options_row = Row::new() 465 | .push(server_options_label) 466 | .push(download_server_jar) 467 | .push(Space::new(35, 0)) 468 | .push(generate_launch_script) 469 | .spacing(5) 470 | .padding(5); 471 | 472 | let mut column = Column::new() 473 | .padding(5) 474 | .spacing(5) 475 | .push(installation_row) 476 | .push(mc_row) 477 | .push(loader_row) 478 | .push(Rule::horizontal(5)); 479 | 480 | column = match self.installation_type { 481 | Installation::Client => column.push(client_location_row).push(client_options_row), 482 | Installation::Server => column.push(server_location_row).push(server_options_row), 483 | }; 484 | 485 | let button_label = Text::new("Install") 486 | .horizontal_alignment(Horizontal::Center) 487 | .width(Length::Fill); 488 | let mut button = Button::new(button_label).width(Length::Fill); 489 | if !self.is_installing { 490 | button = button.on_press(Interaction::Install); 491 | } 492 | let progress = ProgressBar::new(0.0..=1.0, self.progress); 493 | column = column.push(button).push(progress); 494 | 495 | Element::from(column).map(Message::Interaction) 496 | } 497 | } 498 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "ab_glyph" 7 | version = "0.2.23" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "80179d7dd5d7e8c285d67c4a1e652972a92de7475beddfb92028c76463b13225" 10 | dependencies = [ 11 | "ab_glyph_rasterizer", 12 | "owned_ttf_parser", 13 | ] 14 | 15 | [[package]] 16 | name = "ab_glyph_rasterizer" 17 | version = "0.1.8" 18 | source = "registry+https://github.com/rust-lang/crates.io-index" 19 | checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" 20 | 21 | [[package]] 22 | name = "addr2line" 23 | version = "0.21.0" 24 | source = "registry+https://github.com/rust-lang/crates.io-index" 25 | checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" 26 | dependencies = [ 27 | "gimli", 28 | ] 29 | 30 | [[package]] 31 | name = "adler" 32 | version = "1.0.2" 33 | source = "registry+https://github.com/rust-lang/crates.io-index" 34 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 35 | 36 | [[package]] 37 | name = "ahash" 38 | version = "0.7.7" 39 | source = "registry+https://github.com/rust-lang/crates.io-index" 40 | checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" 41 | dependencies = [ 42 | "getrandom", 43 | "once_cell", 44 | "version_check", 45 | ] 46 | 47 | [[package]] 48 | name = "aho-corasick" 49 | version = "1.1.2" 50 | source = "registry+https://github.com/rust-lang/crates.io-index" 51 | checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" 52 | dependencies = [ 53 | "memchr", 54 | ] 55 | 56 | [[package]] 57 | name = "aliasable" 58 | version = "0.1.3" 59 | source = "registry+https://github.com/rust-lang/crates.io-index" 60 | checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" 61 | 62 | [[package]] 63 | name = "android-activity" 64 | version = "0.4.3" 65 | source = "registry+https://github.com/rust-lang/crates.io-index" 66 | checksum = "64529721f27c2314ced0890ce45e469574a73e5e6fdd6e9da1860eb29285f5e0" 67 | dependencies = [ 68 | "android-properties", 69 | "bitflags 1.3.2", 70 | "cc", 71 | "jni-sys", 72 | "libc", 73 | "log", 74 | "ndk", 75 | "ndk-context", 76 | "ndk-sys", 77 | "num_enum 0.6.1", 78 | ] 79 | 80 | [[package]] 81 | name = "android-properties" 82 | version = "0.2.2" 83 | source = "registry+https://github.com/rust-lang/crates.io-index" 84 | checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" 85 | 86 | [[package]] 87 | name = "android-tzdata" 88 | version = "0.1.1" 89 | source = "registry+https://github.com/rust-lang/crates.io-index" 90 | checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" 91 | 92 | [[package]] 93 | name = "android_system_properties" 94 | version = "0.1.5" 95 | source = "registry+https://github.com/rust-lang/crates.io-index" 96 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 97 | dependencies = [ 98 | "libc", 99 | ] 100 | 101 | [[package]] 102 | name = "anstream" 103 | version = "0.6.5" 104 | source = "registry+https://github.com/rust-lang/crates.io-index" 105 | checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6" 106 | dependencies = [ 107 | "anstyle", 108 | "anstyle-parse", 109 | "anstyle-query", 110 | "anstyle-wincon", 111 | "colorchoice", 112 | "utf8parse", 113 | ] 114 | 115 | [[package]] 116 | name = "anstyle" 117 | version = "1.0.4" 118 | source = "registry+https://github.com/rust-lang/crates.io-index" 119 | checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" 120 | 121 | [[package]] 122 | name = "anstyle-parse" 123 | version = "0.2.3" 124 | source = "registry+https://github.com/rust-lang/crates.io-index" 125 | checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" 126 | dependencies = [ 127 | "utf8parse", 128 | ] 129 | 130 | [[package]] 131 | name = "anstyle-query" 132 | version = "1.0.2" 133 | source = "registry+https://github.com/rust-lang/crates.io-index" 134 | checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" 135 | dependencies = [ 136 | "windows-sys 0.52.0", 137 | ] 138 | 139 | [[package]] 140 | name = "anstyle-wincon" 141 | version = "3.0.2" 142 | source = "registry+https://github.com/rust-lang/crates.io-index" 143 | checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" 144 | dependencies = [ 145 | "anstyle", 146 | "windows-sys 0.52.0", 147 | ] 148 | 149 | [[package]] 150 | name = "anyhow" 151 | version = "1.0.79" 152 | source = "registry+https://github.com/rust-lang/crates.io-index" 153 | checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" 154 | 155 | [[package]] 156 | name = "approx" 157 | version = "0.5.1" 158 | source = "registry+https://github.com/rust-lang/crates.io-index" 159 | checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" 160 | dependencies = [ 161 | "num-traits", 162 | ] 163 | 164 | [[package]] 165 | name = "arrayref" 166 | version = "0.3.7" 167 | source = "registry+https://github.com/rust-lang/crates.io-index" 168 | checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" 169 | 170 | [[package]] 171 | name = "arrayvec" 172 | version = "0.7.4" 173 | source = "registry+https://github.com/rust-lang/crates.io-index" 174 | checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" 175 | 176 | [[package]] 177 | name = "async-broadcast" 178 | version = "0.5.1" 179 | source = "registry+https://github.com/rust-lang/crates.io-index" 180 | checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" 181 | dependencies = [ 182 | "event-listener 2.5.3", 183 | "futures-core", 184 | ] 185 | 186 | [[package]] 187 | name = "async-channel" 188 | version = "2.1.1" 189 | source = "registry+https://github.com/rust-lang/crates.io-index" 190 | checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" 191 | dependencies = [ 192 | "concurrent-queue", 193 | "event-listener 4.0.2", 194 | "event-listener-strategy", 195 | "futures-core", 196 | "pin-project-lite", 197 | ] 198 | 199 | [[package]] 200 | name = "async-executor" 201 | version = "1.8.0" 202 | source = "registry+https://github.com/rust-lang/crates.io-index" 203 | checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" 204 | dependencies = [ 205 | "async-lock 3.2.0", 206 | "async-task", 207 | "concurrent-queue", 208 | "fastrand 2.0.1", 209 | "futures-lite 2.1.0", 210 | "slab", 211 | ] 212 | 213 | [[package]] 214 | name = "async-fs" 215 | version = "1.6.0" 216 | source = "registry+https://github.com/rust-lang/crates.io-index" 217 | checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" 218 | dependencies = [ 219 | "async-lock 2.8.0", 220 | "autocfg", 221 | "blocking", 222 | "futures-lite 1.13.0", 223 | ] 224 | 225 | [[package]] 226 | name = "async-io" 227 | version = "1.13.0" 228 | source = "registry+https://github.com/rust-lang/crates.io-index" 229 | checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" 230 | dependencies = [ 231 | "async-lock 2.8.0", 232 | "autocfg", 233 | "cfg-if", 234 | "concurrent-queue", 235 | "futures-lite 1.13.0", 236 | "log", 237 | "parking", 238 | "polling 2.8.0", 239 | "rustix 0.37.27", 240 | "slab", 241 | "socket2 0.4.10", 242 | "waker-fn", 243 | ] 244 | 245 | [[package]] 246 | name = "async-io" 247 | version = "2.2.2" 248 | source = "registry+https://github.com/rust-lang/crates.io-index" 249 | checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7" 250 | dependencies = [ 251 | "async-lock 3.2.0", 252 | "cfg-if", 253 | "concurrent-queue", 254 | "futures-io", 255 | "futures-lite 2.1.0", 256 | "parking", 257 | "polling 3.3.1", 258 | "rustix 0.38.28", 259 | "slab", 260 | "tracing", 261 | "windows-sys 0.52.0", 262 | ] 263 | 264 | [[package]] 265 | name = "async-lock" 266 | version = "2.8.0" 267 | source = "registry+https://github.com/rust-lang/crates.io-index" 268 | checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" 269 | dependencies = [ 270 | "event-listener 2.5.3", 271 | ] 272 | 273 | [[package]] 274 | name = "async-lock" 275 | version = "3.2.0" 276 | source = "registry+https://github.com/rust-lang/crates.io-index" 277 | checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" 278 | dependencies = [ 279 | "event-listener 4.0.2", 280 | "event-listener-strategy", 281 | "pin-project-lite", 282 | ] 283 | 284 | [[package]] 285 | name = "async-process" 286 | version = "1.8.1" 287 | source = "registry+https://github.com/rust-lang/crates.io-index" 288 | checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" 289 | dependencies = [ 290 | "async-io 1.13.0", 291 | "async-lock 2.8.0", 292 | "async-signal", 293 | "blocking", 294 | "cfg-if", 295 | "event-listener 3.1.0", 296 | "futures-lite 1.13.0", 297 | "rustix 0.38.28", 298 | "windows-sys 0.48.0", 299 | ] 300 | 301 | [[package]] 302 | name = "async-recursion" 303 | version = "1.0.5" 304 | source = "registry+https://github.com/rust-lang/crates.io-index" 305 | checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" 306 | dependencies = [ 307 | "proc-macro2", 308 | "quote", 309 | "syn 2.0.47", 310 | ] 311 | 312 | [[package]] 313 | name = "async-signal" 314 | version = "0.2.5" 315 | source = "registry+https://github.com/rust-lang/crates.io-index" 316 | checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" 317 | dependencies = [ 318 | "async-io 2.2.2", 319 | "async-lock 2.8.0", 320 | "atomic-waker", 321 | "cfg-if", 322 | "futures-core", 323 | "futures-io", 324 | "rustix 0.38.28", 325 | "signal-hook-registry", 326 | "slab", 327 | "windows-sys 0.48.0", 328 | ] 329 | 330 | [[package]] 331 | name = "async-task" 332 | version = "4.7.0" 333 | source = "registry+https://github.com/rust-lang/crates.io-index" 334 | checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799" 335 | 336 | [[package]] 337 | name = "async-trait" 338 | version = "0.1.77" 339 | source = "registry+https://github.com/rust-lang/crates.io-index" 340 | checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" 341 | dependencies = [ 342 | "proc-macro2", 343 | "quote", 344 | "syn 2.0.47", 345 | ] 346 | 347 | [[package]] 348 | name = "atomic-waker" 349 | version = "1.1.2" 350 | source = "registry+https://github.com/rust-lang/crates.io-index" 351 | checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 352 | 353 | [[package]] 354 | name = "autocfg" 355 | version = "1.1.0" 356 | source = "registry+https://github.com/rust-lang/crates.io-index" 357 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 358 | 359 | [[package]] 360 | name = "backtrace" 361 | version = "0.3.69" 362 | source = "registry+https://github.com/rust-lang/crates.io-index" 363 | checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" 364 | dependencies = [ 365 | "addr2line", 366 | "cc", 367 | "cfg-if", 368 | "libc", 369 | "miniz_oxide", 370 | "object", 371 | "rustc-demangle", 372 | ] 373 | 374 | [[package]] 375 | name = "base64" 376 | version = "0.21.5" 377 | source = "registry+https://github.com/rust-lang/crates.io-index" 378 | checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" 379 | 380 | [[package]] 381 | name = "bitflags" 382 | version = "1.3.2" 383 | source = "registry+https://github.com/rust-lang/crates.io-index" 384 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 385 | 386 | [[package]] 387 | name = "bitflags" 388 | version = "2.4.1" 389 | source = "registry+https://github.com/rust-lang/crates.io-index" 390 | checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" 391 | 392 | [[package]] 393 | name = "block" 394 | version = "0.1.6" 395 | source = "registry+https://github.com/rust-lang/crates.io-index" 396 | checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" 397 | 398 | [[package]] 399 | name = "block-buffer" 400 | version = "0.10.4" 401 | source = "registry+https://github.com/rust-lang/crates.io-index" 402 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 403 | dependencies = [ 404 | "generic-array", 405 | ] 406 | 407 | [[package]] 408 | name = "block-sys" 409 | version = "0.1.0-beta.1" 410 | source = "registry+https://github.com/rust-lang/crates.io-index" 411 | checksum = "0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146" 412 | dependencies = [ 413 | "objc-sys", 414 | ] 415 | 416 | [[package]] 417 | name = "block2" 418 | version = "0.2.0-alpha.6" 419 | source = "registry+https://github.com/rust-lang/crates.io-index" 420 | checksum = "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42" 421 | dependencies = [ 422 | "block-sys", 423 | "objc2-encode", 424 | ] 425 | 426 | [[package]] 427 | name = "blocking" 428 | version = "1.5.1" 429 | source = "registry+https://github.com/rust-lang/crates.io-index" 430 | checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" 431 | dependencies = [ 432 | "async-channel", 433 | "async-lock 3.2.0", 434 | "async-task", 435 | "fastrand 2.0.1", 436 | "futures-io", 437 | "futures-lite 2.1.0", 438 | "piper", 439 | "tracing", 440 | ] 441 | 442 | [[package]] 443 | name = "bumpalo" 444 | version = "3.14.0" 445 | source = "registry+https://github.com/rust-lang/crates.io-index" 446 | checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" 447 | 448 | [[package]] 449 | name = "bytemuck" 450 | version = "1.14.0" 451 | source = "registry+https://github.com/rust-lang/crates.io-index" 452 | checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" 453 | dependencies = [ 454 | "bytemuck_derive", 455 | ] 456 | 457 | [[package]] 458 | name = "bytemuck_derive" 459 | version = "1.5.0" 460 | source = "registry+https://github.com/rust-lang/crates.io-index" 461 | checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1" 462 | dependencies = [ 463 | "proc-macro2", 464 | "quote", 465 | "syn 2.0.47", 466 | ] 467 | 468 | [[package]] 469 | name = "byteorder" 470 | version = "1.5.0" 471 | source = "registry+https://github.com/rust-lang/crates.io-index" 472 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 473 | 474 | [[package]] 475 | name = "bytes" 476 | version = "1.5.0" 477 | source = "registry+https://github.com/rust-lang/crates.io-index" 478 | checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" 479 | 480 | [[package]] 481 | name = "calloop" 482 | version = "0.10.6" 483 | source = "registry+https://github.com/rust-lang/crates.io-index" 484 | checksum = "52e0d00eb1ea24371a97d2da6201c6747a633dc6dc1988ef503403b4c59504a8" 485 | dependencies = [ 486 | "bitflags 1.3.2", 487 | "log", 488 | "nix 0.25.1", 489 | "slotmap", 490 | "thiserror", 491 | "vec_map", 492 | ] 493 | 494 | [[package]] 495 | name = "cc" 496 | version = "1.0.83" 497 | source = "registry+https://github.com/rust-lang/crates.io-index" 498 | checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" 499 | dependencies = [ 500 | "jobserver", 501 | "libc", 502 | ] 503 | 504 | [[package]] 505 | name = "cfg-if" 506 | version = "1.0.0" 507 | source = "registry+https://github.com/rust-lang/crates.io-index" 508 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 509 | 510 | [[package]] 511 | name = "cfg_aliases" 512 | version = "0.1.1" 513 | source = "registry+https://github.com/rust-lang/crates.io-index" 514 | checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" 515 | 516 | [[package]] 517 | name = "chrono" 518 | version = "0.4.31" 519 | source = "registry+https://github.com/rust-lang/crates.io-index" 520 | checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" 521 | dependencies = [ 522 | "android-tzdata", 523 | "iana-time-zone", 524 | "js-sys", 525 | "num-traits", 526 | "serde", 527 | "wasm-bindgen", 528 | "windows-targets 0.48.5", 529 | ] 530 | 531 | [[package]] 532 | name = "clap" 533 | version = "4.4.12" 534 | source = "registry+https://github.com/rust-lang/crates.io-index" 535 | checksum = "dcfab8ba68f3668e89f6ff60f5b205cea56aa7b769451a59f34b8682f51c056d" 536 | dependencies = [ 537 | "clap_builder", 538 | "clap_derive", 539 | ] 540 | 541 | [[package]] 542 | name = "clap_builder" 543 | version = "4.4.12" 544 | source = "registry+https://github.com/rust-lang/crates.io-index" 545 | checksum = "fb7fb5e4e979aec3be7791562fcba452f94ad85e954da024396433e0e25a79e9" 546 | dependencies = [ 547 | "anstream", 548 | "anstyle", 549 | "clap_lex", 550 | "strsim", 551 | ] 552 | 553 | [[package]] 554 | name = "clap_derive" 555 | version = "4.4.7" 556 | source = "registry+https://github.com/rust-lang/crates.io-index" 557 | checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" 558 | dependencies = [ 559 | "heck", 560 | "proc-macro2", 561 | "quote", 562 | "syn 2.0.47", 563 | ] 564 | 565 | [[package]] 566 | name = "clap_lex" 567 | version = "0.6.0" 568 | source = "registry+https://github.com/rust-lang/crates.io-index" 569 | checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" 570 | 571 | [[package]] 572 | name = "clipboard-win" 573 | version = "4.5.0" 574 | source = "registry+https://github.com/rust-lang/crates.io-index" 575 | checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" 576 | dependencies = [ 577 | "error-code", 578 | "str-buf", 579 | "winapi", 580 | ] 581 | 582 | [[package]] 583 | name = "clipboard_macos" 584 | version = "0.1.0" 585 | source = "registry+https://github.com/rust-lang/crates.io-index" 586 | checksum = "145a7f9e9b89453bc0a5e32d166456405d389cea5b578f57f1274b1397588a95" 587 | dependencies = [ 588 | "objc", 589 | "objc-foundation", 590 | "objc_id", 591 | ] 592 | 593 | [[package]] 594 | name = "clipboard_wayland" 595 | version = "0.2.0" 596 | source = "registry+https://github.com/rust-lang/crates.io-index" 597 | checksum = "6f6364a9f7a66f2ac1a1a098aa1c7f6b686f2496c6ac5e5c0d773445df912747" 598 | dependencies = [ 599 | "smithay-clipboard", 600 | ] 601 | 602 | [[package]] 603 | name = "clipboard_x11" 604 | version = "0.4.0" 605 | source = "registry+https://github.com/rust-lang/crates.io-index" 606 | checksum = "983a7010836ecd04dde2c6d27a0cb56ec5d21572177e782bdcb24a600124e921" 607 | dependencies = [ 608 | "thiserror", 609 | "x11rb 0.9.0", 610 | ] 611 | 612 | [[package]] 613 | name = "cocoa" 614 | version = "0.24.1" 615 | source = "registry+https://github.com/rust-lang/crates.io-index" 616 | checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" 617 | dependencies = [ 618 | "bitflags 1.3.2", 619 | "block", 620 | "cocoa-foundation", 621 | "core-foundation", 622 | "core-graphics", 623 | "foreign-types", 624 | "libc", 625 | "objc", 626 | ] 627 | 628 | [[package]] 629 | name = "cocoa-foundation" 630 | version = "0.1.2" 631 | source = "registry+https://github.com/rust-lang/crates.io-index" 632 | checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" 633 | dependencies = [ 634 | "bitflags 1.3.2", 635 | "block", 636 | "core-foundation", 637 | "core-graphics-types", 638 | "libc", 639 | "objc", 640 | ] 641 | 642 | [[package]] 643 | name = "colorchoice" 644 | version = "1.0.0" 645 | source = "registry+https://github.com/rust-lang/crates.io-index" 646 | checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" 647 | 648 | [[package]] 649 | name = "concurrent-queue" 650 | version = "2.4.0" 651 | source = "registry+https://github.com/rust-lang/crates.io-index" 652 | checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" 653 | dependencies = [ 654 | "crossbeam-utils", 655 | ] 656 | 657 | [[package]] 658 | name = "convert_case" 659 | version = "0.4.0" 660 | source = "registry+https://github.com/rust-lang/crates.io-index" 661 | checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" 662 | 663 | [[package]] 664 | name = "core-foundation" 665 | version = "0.9.4" 666 | source = "registry+https://github.com/rust-lang/crates.io-index" 667 | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 668 | dependencies = [ 669 | "core-foundation-sys", 670 | "libc", 671 | ] 672 | 673 | [[package]] 674 | name = "core-foundation-sys" 675 | version = "0.8.6" 676 | source = "registry+https://github.com/rust-lang/crates.io-index" 677 | checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" 678 | 679 | [[package]] 680 | name = "core-graphics" 681 | version = "0.22.3" 682 | source = "registry+https://github.com/rust-lang/crates.io-index" 683 | checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" 684 | dependencies = [ 685 | "bitflags 1.3.2", 686 | "core-foundation", 687 | "core-graphics-types", 688 | "foreign-types", 689 | "libc", 690 | ] 691 | 692 | [[package]] 693 | name = "core-graphics-types" 694 | version = "0.1.3" 695 | source = "registry+https://github.com/rust-lang/crates.io-index" 696 | checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" 697 | dependencies = [ 698 | "bitflags 1.3.2", 699 | "core-foundation", 700 | "libc", 701 | ] 702 | 703 | [[package]] 704 | name = "cosmic-text" 705 | version = "0.9.0" 706 | source = "registry+https://github.com/rust-lang/crates.io-index" 707 | checksum = "b0b68966c2543609f8d92f9d33ac3b719b2a67529b0c6c0b3e025637b477eef9" 708 | dependencies = [ 709 | "aliasable", 710 | "fontdb", 711 | "libm", 712 | "log", 713 | "rangemap", 714 | "rustybuzz", 715 | "swash", 716 | "sys-locale", 717 | "unicode-bidi", 718 | "unicode-linebreak", 719 | "unicode-script", 720 | "unicode-segmentation", 721 | ] 722 | 723 | [[package]] 724 | name = "cpufeatures" 725 | version = "0.2.11" 726 | source = "registry+https://github.com/rust-lang/crates.io-index" 727 | checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" 728 | dependencies = [ 729 | "libc", 730 | ] 731 | 732 | [[package]] 733 | name = "crc32fast" 734 | version = "1.3.2" 735 | source = "registry+https://github.com/rust-lang/crates.io-index" 736 | checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" 737 | dependencies = [ 738 | "cfg-if", 739 | ] 740 | 741 | [[package]] 742 | name = "crossbeam-utils" 743 | version = "0.8.18" 744 | source = "registry+https://github.com/rust-lang/crates.io-index" 745 | checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c" 746 | dependencies = [ 747 | "cfg-if", 748 | ] 749 | 750 | [[package]] 751 | name = "crunchy" 752 | version = "0.2.2" 753 | source = "registry+https://github.com/rust-lang/crates.io-index" 754 | checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" 755 | 756 | [[package]] 757 | name = "crypto-common" 758 | version = "0.1.6" 759 | source = "registry+https://github.com/rust-lang/crates.io-index" 760 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 761 | dependencies = [ 762 | "generic-array", 763 | "typenum", 764 | ] 765 | 766 | [[package]] 767 | name = "cty" 768 | version = "0.2.2" 769 | source = "registry+https://github.com/rust-lang/crates.io-index" 770 | checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" 771 | 772 | [[package]] 773 | name = "dark-light" 774 | version = "1.0.0" 775 | source = "registry+https://github.com/rust-lang/crates.io-index" 776 | checksum = "a62007a65515b3cd88c733dd3464431f05d2ad066999a824259d8edc3cf6f645" 777 | dependencies = [ 778 | "dconf_rs", 779 | "detect-desktop-environment", 780 | "dirs", 781 | "objc", 782 | "rust-ini", 783 | "web-sys", 784 | "winreg 0.10.1", 785 | "zbus", 786 | "zvariant", 787 | ] 788 | 789 | [[package]] 790 | name = "dconf_rs" 791 | version = "0.3.0" 792 | source = "registry+https://github.com/rust-lang/crates.io-index" 793 | checksum = "7046468a81e6a002061c01e6a7c83139daf91b11c30e66795b13217c2d885c8b" 794 | 795 | [[package]] 796 | name = "derivative" 797 | version = "2.2.0" 798 | source = "registry+https://github.com/rust-lang/crates.io-index" 799 | checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" 800 | dependencies = [ 801 | "proc-macro2", 802 | "quote", 803 | "syn 1.0.109", 804 | ] 805 | 806 | [[package]] 807 | name = "derive_more" 808 | version = "0.99.17" 809 | source = "registry+https://github.com/rust-lang/crates.io-index" 810 | checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" 811 | dependencies = [ 812 | "convert_case", 813 | "proc-macro2", 814 | "quote", 815 | "rustc_version", 816 | "syn 1.0.109", 817 | ] 818 | 819 | [[package]] 820 | name = "detect-desktop-environment" 821 | version = "0.2.0" 822 | source = "registry+https://github.com/rust-lang/crates.io-index" 823 | checksum = "21d8ad60dd5b13a4ee6bd8fa2d5d88965c597c67bce32b5fc49c94f55cb50810" 824 | 825 | [[package]] 826 | name = "digest" 827 | version = "0.10.7" 828 | source = "registry+https://github.com/rust-lang/crates.io-index" 829 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 830 | dependencies = [ 831 | "block-buffer", 832 | "crypto-common", 833 | ] 834 | 835 | [[package]] 836 | name = "dirs" 837 | version = "4.0.0" 838 | source = "registry+https://github.com/rust-lang/crates.io-index" 839 | checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" 840 | dependencies = [ 841 | "dirs-sys", 842 | ] 843 | 844 | [[package]] 845 | name = "dirs-next" 846 | version = "2.0.0" 847 | source = "registry+https://github.com/rust-lang/crates.io-index" 848 | checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" 849 | dependencies = [ 850 | "cfg-if", 851 | "dirs-sys-next", 852 | ] 853 | 854 | [[package]] 855 | name = "dirs-sys" 856 | version = "0.3.7" 857 | source = "registry+https://github.com/rust-lang/crates.io-index" 858 | checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" 859 | dependencies = [ 860 | "libc", 861 | "redox_users", 862 | "winapi", 863 | ] 864 | 865 | [[package]] 866 | name = "dirs-sys-next" 867 | version = "0.1.2" 868 | source = "registry+https://github.com/rust-lang/crates.io-index" 869 | checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" 870 | dependencies = [ 871 | "libc", 872 | "redox_users", 873 | "winapi", 874 | ] 875 | 876 | [[package]] 877 | name = "dispatch" 878 | version = "0.2.0" 879 | source = "registry+https://github.com/rust-lang/crates.io-index" 880 | checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" 881 | 882 | [[package]] 883 | name = "dlib" 884 | version = "0.5.2" 885 | source = "registry+https://github.com/rust-lang/crates.io-index" 886 | checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" 887 | dependencies = [ 888 | "libloading 0.8.1", 889 | ] 890 | 891 | [[package]] 892 | name = "dlv-list" 893 | version = "0.3.0" 894 | source = "registry+https://github.com/rust-lang/crates.io-index" 895 | checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257" 896 | 897 | [[package]] 898 | name = "downcast-rs" 899 | version = "1.2.0" 900 | source = "registry+https://github.com/rust-lang/crates.io-index" 901 | checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" 902 | 903 | [[package]] 904 | name = "either" 905 | version = "1.9.0" 906 | source = "registry+https://github.com/rust-lang/crates.io-index" 907 | checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" 908 | 909 | [[package]] 910 | name = "encoding_rs" 911 | version = "0.8.33" 912 | source = "registry+https://github.com/rust-lang/crates.io-index" 913 | checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" 914 | dependencies = [ 915 | "cfg-if", 916 | ] 917 | 918 | [[package]] 919 | name = "enumflags2" 920 | version = "0.7.8" 921 | source = "registry+https://github.com/rust-lang/crates.io-index" 922 | checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939" 923 | dependencies = [ 924 | "enumflags2_derive", 925 | "serde", 926 | ] 927 | 928 | [[package]] 929 | name = "enumflags2_derive" 930 | version = "0.7.8" 931 | source = "registry+https://github.com/rust-lang/crates.io-index" 932 | checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" 933 | dependencies = [ 934 | "proc-macro2", 935 | "quote", 936 | "syn 2.0.47", 937 | ] 938 | 939 | [[package]] 940 | name = "equivalent" 941 | version = "1.0.1" 942 | source = "registry+https://github.com/rust-lang/crates.io-index" 943 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 944 | 945 | [[package]] 946 | name = "errno" 947 | version = "0.3.8" 948 | source = "registry+https://github.com/rust-lang/crates.io-index" 949 | checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" 950 | dependencies = [ 951 | "libc", 952 | "windows-sys 0.52.0", 953 | ] 954 | 955 | [[package]] 956 | name = "error-code" 957 | version = "2.3.1" 958 | source = "registry+https://github.com/rust-lang/crates.io-index" 959 | checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21" 960 | dependencies = [ 961 | "libc", 962 | "str-buf", 963 | ] 964 | 965 | [[package]] 966 | name = "event-listener" 967 | version = "2.5.3" 968 | source = "registry+https://github.com/rust-lang/crates.io-index" 969 | checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" 970 | 971 | [[package]] 972 | name = "event-listener" 973 | version = "3.1.0" 974 | source = "registry+https://github.com/rust-lang/crates.io-index" 975 | checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" 976 | dependencies = [ 977 | "concurrent-queue", 978 | "parking", 979 | "pin-project-lite", 980 | ] 981 | 982 | [[package]] 983 | name = "event-listener" 984 | version = "4.0.2" 985 | source = "registry+https://github.com/rust-lang/crates.io-index" 986 | checksum = "218a870470cce1469024e9fb66b901aa983929d81304a1cdb299f28118e550d5" 987 | dependencies = [ 988 | "concurrent-queue", 989 | "parking", 990 | "pin-project-lite", 991 | ] 992 | 993 | [[package]] 994 | name = "event-listener-strategy" 995 | version = "0.4.0" 996 | source = "registry+https://github.com/rust-lang/crates.io-index" 997 | checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" 998 | dependencies = [ 999 | "event-listener 4.0.2", 1000 | "pin-project-lite", 1001 | ] 1002 | 1003 | [[package]] 1004 | name = "fast-srgb8" 1005 | version = "1.0.0" 1006 | source = "registry+https://github.com/rust-lang/crates.io-index" 1007 | checksum = "dd2e7510819d6fbf51a5545c8f922716ecfb14df168a3242f7d33e0239efe6a1" 1008 | 1009 | [[package]] 1010 | name = "fastrand" 1011 | version = "1.9.0" 1012 | source = "registry+https://github.com/rust-lang/crates.io-index" 1013 | checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" 1014 | dependencies = [ 1015 | "instant", 1016 | ] 1017 | 1018 | [[package]] 1019 | name = "fastrand" 1020 | version = "2.0.1" 1021 | source = "registry+https://github.com/rust-lang/crates.io-index" 1022 | checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" 1023 | 1024 | [[package]] 1025 | name = "fdeflate" 1026 | version = "0.3.3" 1027 | source = "registry+https://github.com/rust-lang/crates.io-index" 1028 | checksum = "209098dd6dfc4445aa6111f0e98653ac323eaa4dfd212c9ca3931bf9955c31bd" 1029 | dependencies = [ 1030 | "simd-adler32", 1031 | ] 1032 | 1033 | [[package]] 1034 | name = "flate2" 1035 | version = "1.0.28" 1036 | source = "registry+https://github.com/rust-lang/crates.io-index" 1037 | checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" 1038 | dependencies = [ 1039 | "crc32fast", 1040 | "miniz_oxide", 1041 | ] 1042 | 1043 | [[package]] 1044 | name = "fnv" 1045 | version = "1.0.7" 1046 | source = "registry+https://github.com/rust-lang/crates.io-index" 1047 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 1048 | 1049 | [[package]] 1050 | name = "fontdb" 1051 | version = "0.14.1" 1052 | source = "registry+https://github.com/rust-lang/crates.io-index" 1053 | checksum = "af8d8cbea8f21307d7e84bca254772981296f058a1d36b461bf4d83a7499fc9e" 1054 | dependencies = [ 1055 | "log", 1056 | "memmap2 0.6.2", 1057 | "slotmap", 1058 | "tinyvec", 1059 | "ttf-parser 0.19.2", 1060 | ] 1061 | 1062 | [[package]] 1063 | name = "foreign-types" 1064 | version = "0.3.2" 1065 | source = "registry+https://github.com/rust-lang/crates.io-index" 1066 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 1067 | dependencies = [ 1068 | "foreign-types-shared", 1069 | ] 1070 | 1071 | [[package]] 1072 | name = "foreign-types-shared" 1073 | version = "0.1.1" 1074 | source = "registry+https://github.com/rust-lang/crates.io-index" 1075 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 1076 | 1077 | [[package]] 1078 | name = "form_urlencoded" 1079 | version = "1.2.1" 1080 | source = "registry+https://github.com/rust-lang/crates.io-index" 1081 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 1082 | dependencies = [ 1083 | "percent-encoding", 1084 | ] 1085 | 1086 | [[package]] 1087 | name = "futures" 1088 | version = "0.3.30" 1089 | source = "registry+https://github.com/rust-lang/crates.io-index" 1090 | checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" 1091 | dependencies = [ 1092 | "futures-channel", 1093 | "futures-core", 1094 | "futures-executor", 1095 | "futures-io", 1096 | "futures-sink", 1097 | "futures-task", 1098 | "futures-util", 1099 | ] 1100 | 1101 | [[package]] 1102 | name = "futures-channel" 1103 | version = "0.3.30" 1104 | source = "registry+https://github.com/rust-lang/crates.io-index" 1105 | checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" 1106 | dependencies = [ 1107 | "futures-core", 1108 | "futures-sink", 1109 | ] 1110 | 1111 | [[package]] 1112 | name = "futures-core" 1113 | version = "0.3.30" 1114 | source = "registry+https://github.com/rust-lang/crates.io-index" 1115 | checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" 1116 | 1117 | [[package]] 1118 | name = "futures-executor" 1119 | version = "0.3.30" 1120 | source = "registry+https://github.com/rust-lang/crates.io-index" 1121 | checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" 1122 | dependencies = [ 1123 | "futures-core", 1124 | "futures-task", 1125 | "futures-util", 1126 | "num_cpus", 1127 | ] 1128 | 1129 | [[package]] 1130 | name = "futures-io" 1131 | version = "0.3.30" 1132 | source = "registry+https://github.com/rust-lang/crates.io-index" 1133 | checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" 1134 | 1135 | [[package]] 1136 | name = "futures-lite" 1137 | version = "1.13.0" 1138 | source = "registry+https://github.com/rust-lang/crates.io-index" 1139 | checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" 1140 | dependencies = [ 1141 | "fastrand 1.9.0", 1142 | "futures-core", 1143 | "futures-io", 1144 | "memchr", 1145 | "parking", 1146 | "pin-project-lite", 1147 | "waker-fn", 1148 | ] 1149 | 1150 | [[package]] 1151 | name = "futures-lite" 1152 | version = "2.1.0" 1153 | source = "registry+https://github.com/rust-lang/crates.io-index" 1154 | checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143" 1155 | dependencies = [ 1156 | "fastrand 2.0.1", 1157 | "futures-core", 1158 | "futures-io", 1159 | "parking", 1160 | "pin-project-lite", 1161 | ] 1162 | 1163 | [[package]] 1164 | name = "futures-macro" 1165 | version = "0.3.30" 1166 | source = "registry+https://github.com/rust-lang/crates.io-index" 1167 | checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" 1168 | dependencies = [ 1169 | "proc-macro2", 1170 | "quote", 1171 | "syn 2.0.47", 1172 | ] 1173 | 1174 | [[package]] 1175 | name = "futures-sink" 1176 | version = "0.3.30" 1177 | source = "registry+https://github.com/rust-lang/crates.io-index" 1178 | checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" 1179 | 1180 | [[package]] 1181 | name = "futures-task" 1182 | version = "0.3.30" 1183 | source = "registry+https://github.com/rust-lang/crates.io-index" 1184 | checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" 1185 | 1186 | [[package]] 1187 | name = "futures-util" 1188 | version = "0.3.30" 1189 | source = "registry+https://github.com/rust-lang/crates.io-index" 1190 | checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" 1191 | dependencies = [ 1192 | "futures-channel", 1193 | "futures-core", 1194 | "futures-io", 1195 | "futures-macro", 1196 | "futures-sink", 1197 | "futures-task", 1198 | "memchr", 1199 | "pin-project-lite", 1200 | "pin-utils", 1201 | "slab", 1202 | ] 1203 | 1204 | [[package]] 1205 | name = "generic-array" 1206 | version = "0.14.7" 1207 | source = "registry+https://github.com/rust-lang/crates.io-index" 1208 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 1209 | dependencies = [ 1210 | "typenum", 1211 | "version_check", 1212 | ] 1213 | 1214 | [[package]] 1215 | name = "gethostname" 1216 | version = "0.2.3" 1217 | source = "registry+https://github.com/rust-lang/crates.io-index" 1218 | checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" 1219 | dependencies = [ 1220 | "libc", 1221 | "winapi", 1222 | ] 1223 | 1224 | [[package]] 1225 | name = "getrandom" 1226 | version = "0.2.11" 1227 | source = "registry+https://github.com/rust-lang/crates.io-index" 1228 | checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" 1229 | dependencies = [ 1230 | "cfg-if", 1231 | "libc", 1232 | "wasi", 1233 | ] 1234 | 1235 | [[package]] 1236 | name = "gimli" 1237 | version = "0.28.1" 1238 | source = "registry+https://github.com/rust-lang/crates.io-index" 1239 | checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" 1240 | 1241 | [[package]] 1242 | name = "glam" 1243 | version = "0.24.2" 1244 | source = "registry+https://github.com/rust-lang/crates.io-index" 1245 | checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945" 1246 | 1247 | [[package]] 1248 | name = "h2" 1249 | version = "0.3.22" 1250 | source = "registry+https://github.com/rust-lang/crates.io-index" 1251 | checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" 1252 | dependencies = [ 1253 | "bytes", 1254 | "fnv", 1255 | "futures-core", 1256 | "futures-sink", 1257 | "futures-util", 1258 | "http", 1259 | "indexmap", 1260 | "slab", 1261 | "tokio", 1262 | "tokio-util", 1263 | "tracing", 1264 | ] 1265 | 1266 | [[package]] 1267 | name = "half" 1268 | version = "2.3.1" 1269 | source = "registry+https://github.com/rust-lang/crates.io-index" 1270 | checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872" 1271 | dependencies = [ 1272 | "cfg-if", 1273 | "crunchy", 1274 | ] 1275 | 1276 | [[package]] 1277 | name = "hashbrown" 1278 | version = "0.12.3" 1279 | source = "registry+https://github.com/rust-lang/crates.io-index" 1280 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 1281 | dependencies = [ 1282 | "ahash", 1283 | ] 1284 | 1285 | [[package]] 1286 | name = "hashbrown" 1287 | version = "0.14.3" 1288 | source = "registry+https://github.com/rust-lang/crates.io-index" 1289 | checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" 1290 | 1291 | [[package]] 1292 | name = "heck" 1293 | version = "0.4.1" 1294 | source = "registry+https://github.com/rust-lang/crates.io-index" 1295 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 1296 | 1297 | [[package]] 1298 | name = "hermit-abi" 1299 | version = "0.3.3" 1300 | source = "registry+https://github.com/rust-lang/crates.io-index" 1301 | checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" 1302 | 1303 | [[package]] 1304 | name = "hex" 1305 | version = "0.4.3" 1306 | source = "registry+https://github.com/rust-lang/crates.io-index" 1307 | checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 1308 | 1309 | [[package]] 1310 | name = "home" 1311 | version = "0.5.9" 1312 | source = "registry+https://github.com/rust-lang/crates.io-index" 1313 | checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" 1314 | dependencies = [ 1315 | "windows-sys 0.52.0", 1316 | ] 1317 | 1318 | [[package]] 1319 | name = "http" 1320 | version = "0.2.11" 1321 | source = "registry+https://github.com/rust-lang/crates.io-index" 1322 | checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" 1323 | dependencies = [ 1324 | "bytes", 1325 | "fnv", 1326 | "itoa", 1327 | ] 1328 | 1329 | [[package]] 1330 | name = "http-body" 1331 | version = "0.4.6" 1332 | source = "registry+https://github.com/rust-lang/crates.io-index" 1333 | checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" 1334 | dependencies = [ 1335 | "bytes", 1336 | "http", 1337 | "pin-project-lite", 1338 | ] 1339 | 1340 | [[package]] 1341 | name = "httparse" 1342 | version = "1.8.0" 1343 | source = "registry+https://github.com/rust-lang/crates.io-index" 1344 | checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" 1345 | 1346 | [[package]] 1347 | name = "httpdate" 1348 | version = "1.0.3" 1349 | source = "registry+https://github.com/rust-lang/crates.io-index" 1350 | checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 1351 | 1352 | [[package]] 1353 | name = "hyper" 1354 | version = "0.14.28" 1355 | source = "registry+https://github.com/rust-lang/crates.io-index" 1356 | checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" 1357 | dependencies = [ 1358 | "bytes", 1359 | "futures-channel", 1360 | "futures-core", 1361 | "futures-util", 1362 | "h2", 1363 | "http", 1364 | "http-body", 1365 | "httparse", 1366 | "httpdate", 1367 | "itoa", 1368 | "pin-project-lite", 1369 | "socket2 0.5.5", 1370 | "tokio", 1371 | "tower-service", 1372 | "tracing", 1373 | "want", 1374 | ] 1375 | 1376 | [[package]] 1377 | name = "hyper-tls" 1378 | version = "0.5.0" 1379 | source = "registry+https://github.com/rust-lang/crates.io-index" 1380 | checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" 1381 | dependencies = [ 1382 | "bytes", 1383 | "hyper", 1384 | "native-tls", 1385 | "tokio", 1386 | "tokio-native-tls", 1387 | ] 1388 | 1389 | [[package]] 1390 | name = "iana-time-zone" 1391 | version = "0.1.59" 1392 | source = "registry+https://github.com/rust-lang/crates.io-index" 1393 | checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539" 1394 | dependencies = [ 1395 | "android_system_properties", 1396 | "core-foundation-sys", 1397 | "iana-time-zone-haiku", 1398 | "js-sys", 1399 | "wasm-bindgen", 1400 | "windows-core", 1401 | ] 1402 | 1403 | [[package]] 1404 | name = "iana-time-zone-haiku" 1405 | version = "0.1.2" 1406 | source = "registry+https://github.com/rust-lang/crates.io-index" 1407 | checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 1408 | dependencies = [ 1409 | "cc", 1410 | ] 1411 | 1412 | [[package]] 1413 | name = "iced" 1414 | version = "0.10.0" 1415 | source = "registry+https://github.com/rust-lang/crates.io-index" 1416 | checksum = "c708807ec86f99dd729dc4d42db5239acf118cec14d3c5f57679dcfdbbc472b1" 1417 | dependencies = [ 1418 | "iced_core", 1419 | "iced_futures", 1420 | "iced_renderer", 1421 | "iced_widget", 1422 | "iced_winit", 1423 | "thiserror", 1424 | ] 1425 | 1426 | [[package]] 1427 | name = "iced_core" 1428 | version = "0.10.0" 1429 | source = "registry+https://github.com/rust-lang/crates.io-index" 1430 | checksum = "64d0bc4fbf018576d08d93f838e6058cc6f10bbc05e04ae249a2a44dffb4ebc8" 1431 | dependencies = [ 1432 | "bitflags 1.3.2", 1433 | "instant", 1434 | "log", 1435 | "palette", 1436 | "thiserror", 1437 | "twox-hash", 1438 | ] 1439 | 1440 | [[package]] 1441 | name = "iced_futures" 1442 | version = "0.7.0" 1443 | source = "registry+https://github.com/rust-lang/crates.io-index" 1444 | checksum = "14dab0054a9c7a1cbce227a8cd9ee4a094497b3d06094551ac6c1488d563802e" 1445 | dependencies = [ 1446 | "futures", 1447 | "iced_core", 1448 | "log", 1449 | "tokio", 1450 | "wasm-bindgen-futures", 1451 | "wasm-timer", 1452 | ] 1453 | 1454 | [[package]] 1455 | name = "iced_graphics" 1456 | version = "0.9.0" 1457 | source = "registry+https://github.com/rust-lang/crates.io-index" 1458 | checksum = "67ff14447a221e9e9205a13d84d7bbdf0636a3b1daa02cfca690ed09689c4d2b" 1459 | dependencies = [ 1460 | "bitflags 1.3.2", 1461 | "bytemuck", 1462 | "glam", 1463 | "half", 1464 | "iced_core", 1465 | "log", 1466 | "raw-window-handle 0.5.2", 1467 | "thiserror", 1468 | ] 1469 | 1470 | [[package]] 1471 | name = "iced_renderer" 1472 | version = "0.1.0" 1473 | source = "registry+https://github.com/rust-lang/crates.io-index" 1474 | checksum = "1033385b0db0099a0d13178c9ff93c1ce11e7d0177522acf578bf79febdb2af8" 1475 | dependencies = [ 1476 | "iced_graphics", 1477 | "iced_tiny_skia", 1478 | "log", 1479 | "raw-window-handle 0.5.2", 1480 | "thiserror", 1481 | ] 1482 | 1483 | [[package]] 1484 | name = "iced_runtime" 1485 | version = "0.1.1" 1486 | source = "registry+https://github.com/rust-lang/crates.io-index" 1487 | checksum = "7c6c89853e1250c6fac82c5015fa2144517be9b33d4b8e456f10e198b23e28bd" 1488 | dependencies = [ 1489 | "iced_core", 1490 | "iced_futures", 1491 | "thiserror", 1492 | ] 1493 | 1494 | [[package]] 1495 | name = "iced_style" 1496 | version = "0.9.0" 1497 | source = "registry+https://github.com/rust-lang/crates.io-index" 1498 | checksum = "d85c47d9d13e2281f75ddf98c865daf2101632bd2b855c401dd0b1c8b81a31a0" 1499 | dependencies = [ 1500 | "iced_core", 1501 | "once_cell", 1502 | "palette", 1503 | ] 1504 | 1505 | [[package]] 1506 | name = "iced_tiny_skia" 1507 | version = "0.1.0" 1508 | source = "registry+https://github.com/rust-lang/crates.io-index" 1509 | checksum = "c7715f6222c9470bbbd75a39f70478fa0d1bdfb81a377a34fd1b090ffccc480b" 1510 | dependencies = [ 1511 | "bytemuck", 1512 | "cosmic-text", 1513 | "iced_graphics", 1514 | "kurbo", 1515 | "log", 1516 | "raw-window-handle 0.5.2", 1517 | "rustc-hash", 1518 | "softbuffer", 1519 | "tiny-skia 0.10.0", 1520 | "twox-hash", 1521 | ] 1522 | 1523 | [[package]] 1524 | name = "iced_widget" 1525 | version = "0.1.3" 1526 | source = "registry+https://github.com/rust-lang/crates.io-index" 1527 | checksum = "a177219ae51c3ba08f228ab932354b360cc669e94aec50c01e7c9b675f074c7c" 1528 | dependencies = [ 1529 | "iced_renderer", 1530 | "iced_runtime", 1531 | "iced_style", 1532 | "num-traits", 1533 | "thiserror", 1534 | "unicode-segmentation", 1535 | ] 1536 | 1537 | [[package]] 1538 | name = "iced_winit" 1539 | version = "0.10.1" 1540 | source = "registry+https://github.com/rust-lang/crates.io-index" 1541 | checksum = "ad0c884bcb14722a57192b40a5ef6b5e170fa2f01fe2ff28d6cdd9efe37acf70" 1542 | dependencies = [ 1543 | "iced_graphics", 1544 | "iced_runtime", 1545 | "iced_style", 1546 | "log", 1547 | "raw-window-handle 0.5.2", 1548 | "thiserror", 1549 | "web-sys", 1550 | "winapi", 1551 | "window_clipboard", 1552 | "winit", 1553 | ] 1554 | 1555 | [[package]] 1556 | name = "idna" 1557 | version = "0.5.0" 1558 | source = "registry+https://github.com/rust-lang/crates.io-index" 1559 | checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" 1560 | dependencies = [ 1561 | "unicode-bidi", 1562 | "unicode-normalization", 1563 | ] 1564 | 1565 | [[package]] 1566 | name = "indexmap" 1567 | version = "2.1.0" 1568 | source = "registry+https://github.com/rust-lang/crates.io-index" 1569 | checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" 1570 | dependencies = [ 1571 | "equivalent", 1572 | "hashbrown 0.14.3", 1573 | ] 1574 | 1575 | [[package]] 1576 | name = "instant" 1577 | version = "0.1.12" 1578 | source = "registry+https://github.com/rust-lang/crates.io-index" 1579 | checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" 1580 | dependencies = [ 1581 | "cfg-if", 1582 | "js-sys", 1583 | "wasm-bindgen", 1584 | "web-sys", 1585 | ] 1586 | 1587 | [[package]] 1588 | name = "io-lifetimes" 1589 | version = "1.0.11" 1590 | source = "registry+https://github.com/rust-lang/crates.io-index" 1591 | checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" 1592 | dependencies = [ 1593 | "hermit-abi", 1594 | "libc", 1595 | "windows-sys 0.48.0", 1596 | ] 1597 | 1598 | [[package]] 1599 | name = "ipnet" 1600 | version = "2.9.0" 1601 | source = "registry+https://github.com/rust-lang/crates.io-index" 1602 | checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" 1603 | 1604 | [[package]] 1605 | name = "itoa" 1606 | version = "1.0.10" 1607 | source = "registry+https://github.com/rust-lang/crates.io-index" 1608 | checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" 1609 | 1610 | [[package]] 1611 | name = "jni-sys" 1612 | version = "0.3.0" 1613 | source = "registry+https://github.com/rust-lang/crates.io-index" 1614 | checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" 1615 | 1616 | [[package]] 1617 | name = "jobserver" 1618 | version = "0.1.27" 1619 | source = "registry+https://github.com/rust-lang/crates.io-index" 1620 | checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" 1621 | dependencies = [ 1622 | "libc", 1623 | ] 1624 | 1625 | [[package]] 1626 | name = "js-sys" 1627 | version = "0.3.66" 1628 | source = "registry+https://github.com/rust-lang/crates.io-index" 1629 | checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" 1630 | dependencies = [ 1631 | "wasm-bindgen", 1632 | ] 1633 | 1634 | [[package]] 1635 | name = "kurbo" 1636 | version = "0.9.5" 1637 | source = "registry+https://github.com/rust-lang/crates.io-index" 1638 | checksum = "bd85a5776cd9500c2e2059c8c76c3b01528566b7fcbaf8098b55a33fc298849b" 1639 | dependencies = [ 1640 | "arrayvec", 1641 | ] 1642 | 1643 | [[package]] 1644 | name = "lazy_static" 1645 | version = "1.4.0" 1646 | source = "registry+https://github.com/rust-lang/crates.io-index" 1647 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 1648 | 1649 | [[package]] 1650 | name = "libc" 1651 | version = "0.2.151" 1652 | source = "registry+https://github.com/rust-lang/crates.io-index" 1653 | checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" 1654 | 1655 | [[package]] 1656 | name = "libloading" 1657 | version = "0.7.4" 1658 | source = "registry+https://github.com/rust-lang/crates.io-index" 1659 | checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" 1660 | dependencies = [ 1661 | "cfg-if", 1662 | "winapi", 1663 | ] 1664 | 1665 | [[package]] 1666 | name = "libloading" 1667 | version = "0.8.1" 1668 | source = "registry+https://github.com/rust-lang/crates.io-index" 1669 | checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" 1670 | dependencies = [ 1671 | "cfg-if", 1672 | "windows-sys 0.48.0", 1673 | ] 1674 | 1675 | [[package]] 1676 | name = "libm" 1677 | version = "0.2.8" 1678 | source = "registry+https://github.com/rust-lang/crates.io-index" 1679 | checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" 1680 | 1681 | [[package]] 1682 | name = "libredox" 1683 | version = "0.0.1" 1684 | source = "registry+https://github.com/rust-lang/crates.io-index" 1685 | checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" 1686 | dependencies = [ 1687 | "bitflags 2.4.1", 1688 | "libc", 1689 | "redox_syscall 0.4.1", 1690 | ] 1691 | 1692 | [[package]] 1693 | name = "libredox" 1694 | version = "0.0.2" 1695 | source = "registry+https://github.com/rust-lang/crates.io-index" 1696 | checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607" 1697 | dependencies = [ 1698 | "bitflags 2.4.1", 1699 | "libc", 1700 | "redox_syscall 0.4.1", 1701 | ] 1702 | 1703 | [[package]] 1704 | name = "linux-raw-sys" 1705 | version = "0.3.8" 1706 | source = "registry+https://github.com/rust-lang/crates.io-index" 1707 | checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" 1708 | 1709 | [[package]] 1710 | name = "linux-raw-sys" 1711 | version = "0.4.12" 1712 | source = "registry+https://github.com/rust-lang/crates.io-index" 1713 | checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" 1714 | 1715 | [[package]] 1716 | name = "lock_api" 1717 | version = "0.4.11" 1718 | source = "registry+https://github.com/rust-lang/crates.io-index" 1719 | checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" 1720 | dependencies = [ 1721 | "autocfg", 1722 | "scopeguard", 1723 | ] 1724 | 1725 | [[package]] 1726 | name = "log" 1727 | version = "0.4.20" 1728 | source = "registry+https://github.com/rust-lang/crates.io-index" 1729 | checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" 1730 | 1731 | [[package]] 1732 | name = "malloc_buf" 1733 | version = "0.0.6" 1734 | source = "registry+https://github.com/rust-lang/crates.io-index" 1735 | checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" 1736 | dependencies = [ 1737 | "libc", 1738 | ] 1739 | 1740 | [[package]] 1741 | name = "memchr" 1742 | version = "2.7.1" 1743 | source = "registry+https://github.com/rust-lang/crates.io-index" 1744 | checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" 1745 | 1746 | [[package]] 1747 | name = "memmap2" 1748 | version = "0.5.10" 1749 | source = "registry+https://github.com/rust-lang/crates.io-index" 1750 | checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" 1751 | dependencies = [ 1752 | "libc", 1753 | ] 1754 | 1755 | [[package]] 1756 | name = "memmap2" 1757 | version = "0.6.2" 1758 | source = "registry+https://github.com/rust-lang/crates.io-index" 1759 | checksum = "6d28bba84adfe6646737845bc5ebbfa2c08424eb1c37e94a1fd2a82adb56a872" 1760 | dependencies = [ 1761 | "libc", 1762 | ] 1763 | 1764 | [[package]] 1765 | name = "memoffset" 1766 | version = "0.6.5" 1767 | source = "registry+https://github.com/rust-lang/crates.io-index" 1768 | checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" 1769 | dependencies = [ 1770 | "autocfg", 1771 | ] 1772 | 1773 | [[package]] 1774 | name = "memoffset" 1775 | version = "0.7.1" 1776 | source = "registry+https://github.com/rust-lang/crates.io-index" 1777 | checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" 1778 | dependencies = [ 1779 | "autocfg", 1780 | ] 1781 | 1782 | [[package]] 1783 | name = "memoffset" 1784 | version = "0.9.0" 1785 | source = "registry+https://github.com/rust-lang/crates.io-index" 1786 | checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" 1787 | dependencies = [ 1788 | "autocfg", 1789 | ] 1790 | 1791 | [[package]] 1792 | name = "mime" 1793 | version = "0.3.17" 1794 | source = "registry+https://github.com/rust-lang/crates.io-index" 1795 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 1796 | 1797 | [[package]] 1798 | name = "miniz_oxide" 1799 | version = "0.7.1" 1800 | source = "registry+https://github.com/rust-lang/crates.io-index" 1801 | checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" 1802 | dependencies = [ 1803 | "adler", 1804 | "simd-adler32", 1805 | ] 1806 | 1807 | [[package]] 1808 | name = "mio" 1809 | version = "0.8.10" 1810 | source = "registry+https://github.com/rust-lang/crates.io-index" 1811 | checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" 1812 | dependencies = [ 1813 | "libc", 1814 | "log", 1815 | "wasi", 1816 | "windows-sys 0.48.0", 1817 | ] 1818 | 1819 | [[package]] 1820 | name = "native-dialog" 1821 | version = "0.6.3" 1822 | source = "git+https://github.com/TheGlitch76/native-dialog-rs#c05e941c7f9c705e075fbff4a5bc295a2ba9fc31" 1823 | dependencies = [ 1824 | "block", 1825 | "cocoa", 1826 | "core-foundation", 1827 | "dirs-next", 1828 | "objc", 1829 | "objc-foundation", 1830 | "objc_id", 1831 | "once_cell", 1832 | "raw-window-handle 0.4.3", 1833 | "thiserror", 1834 | "wfd", 1835 | "which", 1836 | "winapi", 1837 | ] 1838 | 1839 | [[package]] 1840 | name = "native-tls" 1841 | version = "0.2.11" 1842 | source = "registry+https://github.com/rust-lang/crates.io-index" 1843 | checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" 1844 | dependencies = [ 1845 | "lazy_static", 1846 | "libc", 1847 | "log", 1848 | "openssl", 1849 | "openssl-probe", 1850 | "openssl-sys", 1851 | "schannel", 1852 | "security-framework", 1853 | "security-framework-sys", 1854 | "tempfile", 1855 | ] 1856 | 1857 | [[package]] 1858 | name = "ndk" 1859 | version = "0.7.0" 1860 | source = "registry+https://github.com/rust-lang/crates.io-index" 1861 | checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" 1862 | dependencies = [ 1863 | "bitflags 1.3.2", 1864 | "jni-sys", 1865 | "ndk-sys", 1866 | "num_enum 0.5.11", 1867 | "raw-window-handle 0.5.2", 1868 | "thiserror", 1869 | ] 1870 | 1871 | [[package]] 1872 | name = "ndk-context" 1873 | version = "0.1.1" 1874 | source = "registry+https://github.com/rust-lang/crates.io-index" 1875 | checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" 1876 | 1877 | [[package]] 1878 | name = "ndk-sys" 1879 | version = "0.4.1+23.1.7779620" 1880 | source = "registry+https://github.com/rust-lang/crates.io-index" 1881 | checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3" 1882 | dependencies = [ 1883 | "jni-sys", 1884 | ] 1885 | 1886 | [[package]] 1887 | name = "nix" 1888 | version = "0.22.3" 1889 | source = "registry+https://github.com/rust-lang/crates.io-index" 1890 | checksum = "e4916f159ed8e5de0082076562152a76b7a1f64a01fd9d1e0fea002c37624faf" 1891 | dependencies = [ 1892 | "bitflags 1.3.2", 1893 | "cc", 1894 | "cfg-if", 1895 | "libc", 1896 | "memoffset 0.6.5", 1897 | ] 1898 | 1899 | [[package]] 1900 | name = "nix" 1901 | version = "0.24.3" 1902 | source = "registry+https://github.com/rust-lang/crates.io-index" 1903 | checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" 1904 | dependencies = [ 1905 | "bitflags 1.3.2", 1906 | "cfg-if", 1907 | "libc", 1908 | "memoffset 0.6.5", 1909 | ] 1910 | 1911 | [[package]] 1912 | name = "nix" 1913 | version = "0.25.1" 1914 | source = "registry+https://github.com/rust-lang/crates.io-index" 1915 | checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" 1916 | dependencies = [ 1917 | "autocfg", 1918 | "bitflags 1.3.2", 1919 | "cfg-if", 1920 | "libc", 1921 | "memoffset 0.6.5", 1922 | ] 1923 | 1924 | [[package]] 1925 | name = "nix" 1926 | version = "0.26.4" 1927 | source = "registry+https://github.com/rust-lang/crates.io-index" 1928 | checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" 1929 | dependencies = [ 1930 | "bitflags 1.3.2", 1931 | "cfg-if", 1932 | "libc", 1933 | "memoffset 0.7.1", 1934 | "pin-utils", 1935 | ] 1936 | 1937 | [[package]] 1938 | name = "num-traits" 1939 | version = "0.2.17" 1940 | source = "registry+https://github.com/rust-lang/crates.io-index" 1941 | checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" 1942 | dependencies = [ 1943 | "autocfg", 1944 | ] 1945 | 1946 | [[package]] 1947 | name = "num_cpus" 1948 | version = "1.16.0" 1949 | source = "registry+https://github.com/rust-lang/crates.io-index" 1950 | checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" 1951 | dependencies = [ 1952 | "hermit-abi", 1953 | "libc", 1954 | ] 1955 | 1956 | [[package]] 1957 | name = "num_enum" 1958 | version = "0.5.11" 1959 | source = "registry+https://github.com/rust-lang/crates.io-index" 1960 | checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" 1961 | dependencies = [ 1962 | "num_enum_derive 0.5.11", 1963 | ] 1964 | 1965 | [[package]] 1966 | name = "num_enum" 1967 | version = "0.6.1" 1968 | source = "registry+https://github.com/rust-lang/crates.io-index" 1969 | checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" 1970 | dependencies = [ 1971 | "num_enum_derive 0.6.1", 1972 | ] 1973 | 1974 | [[package]] 1975 | name = "num_enum_derive" 1976 | version = "0.5.11" 1977 | source = "registry+https://github.com/rust-lang/crates.io-index" 1978 | checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" 1979 | dependencies = [ 1980 | "proc-macro-crate", 1981 | "proc-macro2", 1982 | "quote", 1983 | "syn 1.0.109", 1984 | ] 1985 | 1986 | [[package]] 1987 | name = "num_enum_derive" 1988 | version = "0.6.1" 1989 | source = "registry+https://github.com/rust-lang/crates.io-index" 1990 | checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" 1991 | dependencies = [ 1992 | "proc-macro-crate", 1993 | "proc-macro2", 1994 | "quote", 1995 | "syn 2.0.47", 1996 | ] 1997 | 1998 | [[package]] 1999 | name = "objc" 2000 | version = "0.2.7" 2001 | source = "registry+https://github.com/rust-lang/crates.io-index" 2002 | checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" 2003 | dependencies = [ 2004 | "malloc_buf", 2005 | ] 2006 | 2007 | [[package]] 2008 | name = "objc-foundation" 2009 | version = "0.1.1" 2010 | source = "registry+https://github.com/rust-lang/crates.io-index" 2011 | checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" 2012 | dependencies = [ 2013 | "block", 2014 | "objc", 2015 | "objc_id", 2016 | ] 2017 | 2018 | [[package]] 2019 | name = "objc-sys" 2020 | version = "0.2.0-beta.2" 2021 | source = "registry+https://github.com/rust-lang/crates.io-index" 2022 | checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7" 2023 | 2024 | [[package]] 2025 | name = "objc2" 2026 | version = "0.3.0-beta.3.patch-leaks.3" 2027 | source = "registry+https://github.com/rust-lang/crates.io-index" 2028 | checksum = "7e01640f9f2cb1220bbe80325e179e532cb3379ebcd1bf2279d703c19fe3a468" 2029 | dependencies = [ 2030 | "block2", 2031 | "objc-sys", 2032 | "objc2-encode", 2033 | ] 2034 | 2035 | [[package]] 2036 | name = "objc2-encode" 2037 | version = "2.0.0-pre.2" 2038 | source = "registry+https://github.com/rust-lang/crates.io-index" 2039 | checksum = "abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512" 2040 | dependencies = [ 2041 | "objc-sys", 2042 | ] 2043 | 2044 | [[package]] 2045 | name = "objc_id" 2046 | version = "0.1.1" 2047 | source = "registry+https://github.com/rust-lang/crates.io-index" 2048 | checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" 2049 | dependencies = [ 2050 | "objc", 2051 | ] 2052 | 2053 | [[package]] 2054 | name = "object" 2055 | version = "0.32.2" 2056 | source = "registry+https://github.com/rust-lang/crates.io-index" 2057 | checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" 2058 | dependencies = [ 2059 | "memchr", 2060 | ] 2061 | 2062 | [[package]] 2063 | name = "once_cell" 2064 | version = "1.19.0" 2065 | source = "registry+https://github.com/rust-lang/crates.io-index" 2066 | checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" 2067 | 2068 | [[package]] 2069 | name = "openssl" 2070 | version = "0.10.62" 2071 | source = "registry+https://github.com/rust-lang/crates.io-index" 2072 | checksum = "8cde4d2d9200ad5909f8dac647e29482e07c3a35de8a13fce7c9c7747ad9f671" 2073 | dependencies = [ 2074 | "bitflags 2.4.1", 2075 | "cfg-if", 2076 | "foreign-types", 2077 | "libc", 2078 | "once_cell", 2079 | "openssl-macros", 2080 | "openssl-sys", 2081 | ] 2082 | 2083 | [[package]] 2084 | name = "openssl-macros" 2085 | version = "0.1.1" 2086 | source = "registry+https://github.com/rust-lang/crates.io-index" 2087 | checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" 2088 | dependencies = [ 2089 | "proc-macro2", 2090 | "quote", 2091 | "syn 2.0.47", 2092 | ] 2093 | 2094 | [[package]] 2095 | name = "openssl-probe" 2096 | version = "0.1.5" 2097 | source = "registry+https://github.com/rust-lang/crates.io-index" 2098 | checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 2099 | 2100 | [[package]] 2101 | name = "openssl-sys" 2102 | version = "0.9.98" 2103 | source = "registry+https://github.com/rust-lang/crates.io-index" 2104 | checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7" 2105 | dependencies = [ 2106 | "cc", 2107 | "libc", 2108 | "pkg-config", 2109 | "vcpkg", 2110 | ] 2111 | 2112 | [[package]] 2113 | name = "orbclient" 2114 | version = "0.3.47" 2115 | source = "registry+https://github.com/rust-lang/crates.io-index" 2116 | checksum = "52f0d54bde9774d3a51dcf281a5def240c71996bc6ca05d2c847ec8b2b216166" 2117 | dependencies = [ 2118 | "libredox 0.0.2", 2119 | ] 2120 | 2121 | [[package]] 2122 | name = "ordered-multimap" 2123 | version = "0.4.3" 2124 | source = "registry+https://github.com/rust-lang/crates.io-index" 2125 | checksum = "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a" 2126 | dependencies = [ 2127 | "dlv-list", 2128 | "hashbrown 0.12.3", 2129 | ] 2130 | 2131 | [[package]] 2132 | name = "ordered-stream" 2133 | version = "0.2.0" 2134 | source = "registry+https://github.com/rust-lang/crates.io-index" 2135 | checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50" 2136 | dependencies = [ 2137 | "futures-core", 2138 | "pin-project-lite", 2139 | ] 2140 | 2141 | [[package]] 2142 | name = "owned_ttf_parser" 2143 | version = "0.20.0" 2144 | source = "registry+https://github.com/rust-lang/crates.io-index" 2145 | checksum = "d4586edfe4c648c71797a74c84bacb32b52b212eff5dfe2bb9f2c599844023e7" 2146 | dependencies = [ 2147 | "ttf-parser 0.20.0", 2148 | ] 2149 | 2150 | [[package]] 2151 | name = "palette" 2152 | version = "0.7.3" 2153 | source = "registry+https://github.com/rust-lang/crates.io-index" 2154 | checksum = "b2e2f34147767aa758aa649415b50a69eeb46a67f9dc7db8011eeb3d84b351dc" 2155 | dependencies = [ 2156 | "approx", 2157 | "fast-srgb8", 2158 | "palette_derive", 2159 | "phf", 2160 | ] 2161 | 2162 | [[package]] 2163 | name = "palette_derive" 2164 | version = "0.7.3" 2165 | source = "registry+https://github.com/rust-lang/crates.io-index" 2166 | checksum = "b7db010ec5ff3d4385e4f133916faacd9dad0f6a09394c92d825b3aed310fa0a" 2167 | dependencies = [ 2168 | "proc-macro2", 2169 | "quote", 2170 | "syn 2.0.47", 2171 | ] 2172 | 2173 | [[package]] 2174 | name = "parking" 2175 | version = "2.2.0" 2176 | source = "registry+https://github.com/rust-lang/crates.io-index" 2177 | checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" 2178 | 2179 | [[package]] 2180 | name = "parking_lot" 2181 | version = "0.11.2" 2182 | source = "registry+https://github.com/rust-lang/crates.io-index" 2183 | checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" 2184 | dependencies = [ 2185 | "instant", 2186 | "lock_api", 2187 | "parking_lot_core", 2188 | ] 2189 | 2190 | [[package]] 2191 | name = "parking_lot_core" 2192 | version = "0.8.6" 2193 | source = "registry+https://github.com/rust-lang/crates.io-index" 2194 | checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" 2195 | dependencies = [ 2196 | "cfg-if", 2197 | "instant", 2198 | "libc", 2199 | "redox_syscall 0.2.16", 2200 | "smallvec", 2201 | "winapi", 2202 | ] 2203 | 2204 | [[package]] 2205 | name = "percent-encoding" 2206 | version = "2.3.1" 2207 | source = "registry+https://github.com/rust-lang/crates.io-index" 2208 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 2209 | 2210 | [[package]] 2211 | name = "phf" 2212 | version = "0.11.2" 2213 | source = "registry+https://github.com/rust-lang/crates.io-index" 2214 | checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" 2215 | dependencies = [ 2216 | "phf_macros", 2217 | "phf_shared", 2218 | ] 2219 | 2220 | [[package]] 2221 | name = "phf_generator" 2222 | version = "0.11.2" 2223 | source = "registry+https://github.com/rust-lang/crates.io-index" 2224 | checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" 2225 | dependencies = [ 2226 | "phf_shared", 2227 | "rand", 2228 | ] 2229 | 2230 | [[package]] 2231 | name = "phf_macros" 2232 | version = "0.11.2" 2233 | source = "registry+https://github.com/rust-lang/crates.io-index" 2234 | checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" 2235 | dependencies = [ 2236 | "phf_generator", 2237 | "phf_shared", 2238 | "proc-macro2", 2239 | "quote", 2240 | "syn 2.0.47", 2241 | ] 2242 | 2243 | [[package]] 2244 | name = "phf_shared" 2245 | version = "0.11.2" 2246 | source = "registry+https://github.com/rust-lang/crates.io-index" 2247 | checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" 2248 | dependencies = [ 2249 | "siphasher", 2250 | ] 2251 | 2252 | [[package]] 2253 | name = "pin-project-lite" 2254 | version = "0.2.13" 2255 | source = "registry+https://github.com/rust-lang/crates.io-index" 2256 | checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" 2257 | 2258 | [[package]] 2259 | name = "pin-utils" 2260 | version = "0.1.0" 2261 | source = "registry+https://github.com/rust-lang/crates.io-index" 2262 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 2263 | 2264 | [[package]] 2265 | name = "piper" 2266 | version = "0.2.1" 2267 | source = "registry+https://github.com/rust-lang/crates.io-index" 2268 | checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" 2269 | dependencies = [ 2270 | "atomic-waker", 2271 | "fastrand 2.0.1", 2272 | "futures-io", 2273 | ] 2274 | 2275 | [[package]] 2276 | name = "pkg-config" 2277 | version = "0.3.28" 2278 | source = "registry+https://github.com/rust-lang/crates.io-index" 2279 | checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" 2280 | 2281 | [[package]] 2282 | name = "png" 2283 | version = "0.17.10" 2284 | source = "registry+https://github.com/rust-lang/crates.io-index" 2285 | checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64" 2286 | dependencies = [ 2287 | "bitflags 1.3.2", 2288 | "crc32fast", 2289 | "fdeflate", 2290 | "flate2", 2291 | "miniz_oxide", 2292 | ] 2293 | 2294 | [[package]] 2295 | name = "polling" 2296 | version = "2.8.0" 2297 | source = "registry+https://github.com/rust-lang/crates.io-index" 2298 | checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" 2299 | dependencies = [ 2300 | "autocfg", 2301 | "bitflags 1.3.2", 2302 | "cfg-if", 2303 | "concurrent-queue", 2304 | "libc", 2305 | "log", 2306 | "pin-project-lite", 2307 | "windows-sys 0.48.0", 2308 | ] 2309 | 2310 | [[package]] 2311 | name = "polling" 2312 | version = "3.3.1" 2313 | source = "registry+https://github.com/rust-lang/crates.io-index" 2314 | checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e" 2315 | dependencies = [ 2316 | "cfg-if", 2317 | "concurrent-queue", 2318 | "pin-project-lite", 2319 | "rustix 0.38.28", 2320 | "tracing", 2321 | "windows-sys 0.52.0", 2322 | ] 2323 | 2324 | [[package]] 2325 | name = "ppv-lite86" 2326 | version = "0.2.17" 2327 | source = "registry+https://github.com/rust-lang/crates.io-index" 2328 | checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 2329 | 2330 | [[package]] 2331 | name = "proc-macro-crate" 2332 | version = "1.3.1" 2333 | source = "registry+https://github.com/rust-lang/crates.io-index" 2334 | checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" 2335 | dependencies = [ 2336 | "once_cell", 2337 | "toml_edit", 2338 | ] 2339 | 2340 | [[package]] 2341 | name = "proc-macro2" 2342 | version = "1.0.75" 2343 | source = "registry+https://github.com/rust-lang/crates.io-index" 2344 | checksum = "907a61bd0f64c2f29cd1cf1dc34d05176426a3f504a78010f08416ddb7b13708" 2345 | dependencies = [ 2346 | "unicode-ident", 2347 | ] 2348 | 2349 | [[package]] 2350 | name = "quick-xml" 2351 | version = "0.28.2" 2352 | source = "registry+https://github.com/rust-lang/crates.io-index" 2353 | checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1" 2354 | dependencies = [ 2355 | "memchr", 2356 | ] 2357 | 2358 | [[package]] 2359 | name = "quilt-installer" 2360 | version = "0.1.1" 2361 | dependencies = [ 2362 | "anyhow", 2363 | "base64", 2364 | "chrono", 2365 | "clap", 2366 | "dark-light", 2367 | "derive_more", 2368 | "iced", 2369 | "native-dialog", 2370 | "png", 2371 | "reqwest", 2372 | "semver", 2373 | "serde", 2374 | "serde_json", 2375 | "tokio", 2376 | ] 2377 | 2378 | [[package]] 2379 | name = "quote" 2380 | version = "1.0.35" 2381 | source = "registry+https://github.com/rust-lang/crates.io-index" 2382 | checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" 2383 | dependencies = [ 2384 | "proc-macro2", 2385 | ] 2386 | 2387 | [[package]] 2388 | name = "rand" 2389 | version = "0.8.5" 2390 | source = "registry+https://github.com/rust-lang/crates.io-index" 2391 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 2392 | dependencies = [ 2393 | "libc", 2394 | "rand_chacha", 2395 | "rand_core", 2396 | ] 2397 | 2398 | [[package]] 2399 | name = "rand_chacha" 2400 | version = "0.3.1" 2401 | source = "registry+https://github.com/rust-lang/crates.io-index" 2402 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 2403 | dependencies = [ 2404 | "ppv-lite86", 2405 | "rand_core", 2406 | ] 2407 | 2408 | [[package]] 2409 | name = "rand_core" 2410 | version = "0.6.4" 2411 | source = "registry+https://github.com/rust-lang/crates.io-index" 2412 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 2413 | dependencies = [ 2414 | "getrandom", 2415 | ] 2416 | 2417 | [[package]] 2418 | name = "rangemap" 2419 | version = "1.4.0" 2420 | source = "registry+https://github.com/rust-lang/crates.io-index" 2421 | checksum = "977b1e897f9d764566891689e642653e5ed90c6895106acd005eb4c1d0203991" 2422 | 2423 | [[package]] 2424 | name = "raw-window-handle" 2425 | version = "0.4.3" 2426 | source = "registry+https://github.com/rust-lang/crates.io-index" 2427 | checksum = "b800beb9b6e7d2df1fe337c9e3d04e3af22a124460fb4c30fcc22c9117cefb41" 2428 | dependencies = [ 2429 | "cty", 2430 | ] 2431 | 2432 | [[package]] 2433 | name = "raw-window-handle" 2434 | version = "0.5.2" 2435 | source = "registry+https://github.com/rust-lang/crates.io-index" 2436 | checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" 2437 | 2438 | [[package]] 2439 | name = "redox_syscall" 2440 | version = "0.2.16" 2441 | source = "registry+https://github.com/rust-lang/crates.io-index" 2442 | checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" 2443 | dependencies = [ 2444 | "bitflags 1.3.2", 2445 | ] 2446 | 2447 | [[package]] 2448 | name = "redox_syscall" 2449 | version = "0.3.5" 2450 | source = "registry+https://github.com/rust-lang/crates.io-index" 2451 | checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" 2452 | dependencies = [ 2453 | "bitflags 1.3.2", 2454 | ] 2455 | 2456 | [[package]] 2457 | name = "redox_syscall" 2458 | version = "0.4.1" 2459 | source = "registry+https://github.com/rust-lang/crates.io-index" 2460 | checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" 2461 | dependencies = [ 2462 | "bitflags 1.3.2", 2463 | ] 2464 | 2465 | [[package]] 2466 | name = "redox_users" 2467 | version = "0.4.4" 2468 | source = "registry+https://github.com/rust-lang/crates.io-index" 2469 | checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" 2470 | dependencies = [ 2471 | "getrandom", 2472 | "libredox 0.0.1", 2473 | "thiserror", 2474 | ] 2475 | 2476 | [[package]] 2477 | name = "regex" 2478 | version = "1.10.2" 2479 | source = "registry+https://github.com/rust-lang/crates.io-index" 2480 | checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" 2481 | dependencies = [ 2482 | "aho-corasick", 2483 | "memchr", 2484 | "regex-automata", 2485 | "regex-syntax", 2486 | ] 2487 | 2488 | [[package]] 2489 | name = "regex-automata" 2490 | version = "0.4.3" 2491 | source = "registry+https://github.com/rust-lang/crates.io-index" 2492 | checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" 2493 | dependencies = [ 2494 | "aho-corasick", 2495 | "memchr", 2496 | "regex-syntax", 2497 | ] 2498 | 2499 | [[package]] 2500 | name = "regex-syntax" 2501 | version = "0.8.2" 2502 | source = "registry+https://github.com/rust-lang/crates.io-index" 2503 | checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" 2504 | 2505 | [[package]] 2506 | name = "reqwest" 2507 | version = "0.11.23" 2508 | source = "registry+https://github.com/rust-lang/crates.io-index" 2509 | checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41" 2510 | dependencies = [ 2511 | "base64", 2512 | "bytes", 2513 | "encoding_rs", 2514 | "futures-core", 2515 | "futures-util", 2516 | "h2", 2517 | "http", 2518 | "http-body", 2519 | "hyper", 2520 | "hyper-tls", 2521 | "ipnet", 2522 | "js-sys", 2523 | "log", 2524 | "mime", 2525 | "native-tls", 2526 | "once_cell", 2527 | "percent-encoding", 2528 | "pin-project-lite", 2529 | "serde", 2530 | "serde_json", 2531 | "serde_urlencoded", 2532 | "system-configuration", 2533 | "tokio", 2534 | "tokio-native-tls", 2535 | "tower-service", 2536 | "url", 2537 | "wasm-bindgen", 2538 | "wasm-bindgen-futures", 2539 | "web-sys", 2540 | "winreg 0.50.0", 2541 | ] 2542 | 2543 | [[package]] 2544 | name = "rust-ini" 2545 | version = "0.18.0" 2546 | source = "registry+https://github.com/rust-lang/crates.io-index" 2547 | checksum = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df" 2548 | dependencies = [ 2549 | "cfg-if", 2550 | "ordered-multimap", 2551 | ] 2552 | 2553 | [[package]] 2554 | name = "rustc-demangle" 2555 | version = "0.1.23" 2556 | source = "registry+https://github.com/rust-lang/crates.io-index" 2557 | checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" 2558 | 2559 | [[package]] 2560 | name = "rustc-hash" 2561 | version = "1.1.0" 2562 | source = "registry+https://github.com/rust-lang/crates.io-index" 2563 | checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" 2564 | 2565 | [[package]] 2566 | name = "rustc_version" 2567 | version = "0.4.0" 2568 | source = "registry+https://github.com/rust-lang/crates.io-index" 2569 | checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" 2570 | dependencies = [ 2571 | "semver", 2572 | ] 2573 | 2574 | [[package]] 2575 | name = "rustix" 2576 | version = "0.37.27" 2577 | source = "registry+https://github.com/rust-lang/crates.io-index" 2578 | checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" 2579 | dependencies = [ 2580 | "bitflags 1.3.2", 2581 | "errno", 2582 | "io-lifetimes", 2583 | "libc", 2584 | "linux-raw-sys 0.3.8", 2585 | "windows-sys 0.48.0", 2586 | ] 2587 | 2588 | [[package]] 2589 | name = "rustix" 2590 | version = "0.38.28" 2591 | source = "registry+https://github.com/rust-lang/crates.io-index" 2592 | checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" 2593 | dependencies = [ 2594 | "bitflags 2.4.1", 2595 | "errno", 2596 | "libc", 2597 | "linux-raw-sys 0.4.12", 2598 | "windows-sys 0.52.0", 2599 | ] 2600 | 2601 | [[package]] 2602 | name = "rustybuzz" 2603 | version = "0.8.0" 2604 | source = "registry+https://github.com/rust-lang/crates.io-index" 2605 | checksum = "82eea22c8f56965eeaf3a209b3d24508256c7b920fb3b6211b8ba0f7c0583250" 2606 | dependencies = [ 2607 | "bitflags 1.3.2", 2608 | "bytemuck", 2609 | "libm", 2610 | "smallvec", 2611 | "ttf-parser 0.19.2", 2612 | "unicode-bidi-mirroring", 2613 | "unicode-ccc", 2614 | "unicode-general-category", 2615 | "unicode-script", 2616 | ] 2617 | 2618 | [[package]] 2619 | name = "ryu" 2620 | version = "1.0.16" 2621 | source = "registry+https://github.com/rust-lang/crates.io-index" 2622 | checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" 2623 | 2624 | [[package]] 2625 | name = "schannel" 2626 | version = "0.1.23" 2627 | source = "registry+https://github.com/rust-lang/crates.io-index" 2628 | checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" 2629 | dependencies = [ 2630 | "windows-sys 0.52.0", 2631 | ] 2632 | 2633 | [[package]] 2634 | name = "scoped-tls" 2635 | version = "1.0.1" 2636 | source = "registry+https://github.com/rust-lang/crates.io-index" 2637 | checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" 2638 | 2639 | [[package]] 2640 | name = "scopeguard" 2641 | version = "1.2.0" 2642 | source = "registry+https://github.com/rust-lang/crates.io-index" 2643 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 2644 | 2645 | [[package]] 2646 | name = "sctk-adwaita" 2647 | version = "0.5.4" 2648 | source = "registry+https://github.com/rust-lang/crates.io-index" 2649 | checksum = "cda4e97be1fd174ccc2aae81c8b694e803fa99b34e8fd0f057a9d70698e3ed09" 2650 | dependencies = [ 2651 | "ab_glyph", 2652 | "log", 2653 | "memmap2 0.5.10", 2654 | "smithay-client-toolkit", 2655 | "tiny-skia 0.8.4", 2656 | ] 2657 | 2658 | [[package]] 2659 | name = "security-framework" 2660 | version = "2.9.2" 2661 | source = "registry+https://github.com/rust-lang/crates.io-index" 2662 | checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" 2663 | dependencies = [ 2664 | "bitflags 1.3.2", 2665 | "core-foundation", 2666 | "core-foundation-sys", 2667 | "libc", 2668 | "security-framework-sys", 2669 | ] 2670 | 2671 | [[package]] 2672 | name = "security-framework-sys" 2673 | version = "2.9.1" 2674 | source = "registry+https://github.com/rust-lang/crates.io-index" 2675 | checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" 2676 | dependencies = [ 2677 | "core-foundation-sys", 2678 | "libc", 2679 | ] 2680 | 2681 | [[package]] 2682 | name = "semver" 2683 | version = "1.0.21" 2684 | source = "registry+https://github.com/rust-lang/crates.io-index" 2685 | checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" 2686 | dependencies = [ 2687 | "serde", 2688 | ] 2689 | 2690 | [[package]] 2691 | name = "serde" 2692 | version = "1.0.194" 2693 | source = "registry+https://github.com/rust-lang/crates.io-index" 2694 | checksum = "0b114498256798c94a0689e1a15fec6005dee8ac1f41de56404b67afc2a4b773" 2695 | dependencies = [ 2696 | "serde_derive", 2697 | ] 2698 | 2699 | [[package]] 2700 | name = "serde_derive" 2701 | version = "1.0.194" 2702 | source = "registry+https://github.com/rust-lang/crates.io-index" 2703 | checksum = "a3385e45322e8f9931410f01b3031ec534c3947d0e94c18049af4d9f9907d4e0" 2704 | dependencies = [ 2705 | "proc-macro2", 2706 | "quote", 2707 | "syn 2.0.47", 2708 | ] 2709 | 2710 | [[package]] 2711 | name = "serde_json" 2712 | version = "1.0.111" 2713 | source = "registry+https://github.com/rust-lang/crates.io-index" 2714 | checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4" 2715 | dependencies = [ 2716 | "itoa", 2717 | "ryu", 2718 | "serde", 2719 | ] 2720 | 2721 | [[package]] 2722 | name = "serde_repr" 2723 | version = "0.1.18" 2724 | source = "registry+https://github.com/rust-lang/crates.io-index" 2725 | checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" 2726 | dependencies = [ 2727 | "proc-macro2", 2728 | "quote", 2729 | "syn 2.0.47", 2730 | ] 2731 | 2732 | [[package]] 2733 | name = "serde_urlencoded" 2734 | version = "0.7.1" 2735 | source = "registry+https://github.com/rust-lang/crates.io-index" 2736 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 2737 | dependencies = [ 2738 | "form_urlencoded", 2739 | "itoa", 2740 | "ryu", 2741 | "serde", 2742 | ] 2743 | 2744 | [[package]] 2745 | name = "sha1" 2746 | version = "0.10.6" 2747 | source = "registry+https://github.com/rust-lang/crates.io-index" 2748 | checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 2749 | dependencies = [ 2750 | "cfg-if", 2751 | "cpufeatures", 2752 | "digest", 2753 | ] 2754 | 2755 | [[package]] 2756 | name = "signal-hook-registry" 2757 | version = "1.4.1" 2758 | source = "registry+https://github.com/rust-lang/crates.io-index" 2759 | checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" 2760 | dependencies = [ 2761 | "libc", 2762 | ] 2763 | 2764 | [[package]] 2765 | name = "simd-adler32" 2766 | version = "0.3.7" 2767 | source = "registry+https://github.com/rust-lang/crates.io-index" 2768 | checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" 2769 | 2770 | [[package]] 2771 | name = "siphasher" 2772 | version = "0.3.11" 2773 | source = "registry+https://github.com/rust-lang/crates.io-index" 2774 | checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" 2775 | 2776 | [[package]] 2777 | name = "slab" 2778 | version = "0.4.9" 2779 | source = "registry+https://github.com/rust-lang/crates.io-index" 2780 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 2781 | dependencies = [ 2782 | "autocfg", 2783 | ] 2784 | 2785 | [[package]] 2786 | name = "slotmap" 2787 | version = "1.0.7" 2788 | source = "registry+https://github.com/rust-lang/crates.io-index" 2789 | checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" 2790 | dependencies = [ 2791 | "version_check", 2792 | ] 2793 | 2794 | [[package]] 2795 | name = "smallvec" 2796 | version = "1.11.2" 2797 | source = "registry+https://github.com/rust-lang/crates.io-index" 2798 | checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" 2799 | 2800 | [[package]] 2801 | name = "smithay-client-toolkit" 2802 | version = "0.16.1" 2803 | source = "registry+https://github.com/rust-lang/crates.io-index" 2804 | checksum = "870427e30b8f2cbe64bf43ec4b86e88fe39b0a84b3f15efd9c9c2d020bc86eb9" 2805 | dependencies = [ 2806 | "bitflags 1.3.2", 2807 | "calloop", 2808 | "dlib", 2809 | "lazy_static", 2810 | "log", 2811 | "memmap2 0.5.10", 2812 | "nix 0.24.3", 2813 | "pkg-config", 2814 | "wayland-client 0.29.5", 2815 | "wayland-cursor", 2816 | "wayland-protocols", 2817 | ] 2818 | 2819 | [[package]] 2820 | name = "smithay-clipboard" 2821 | version = "0.6.6" 2822 | source = "registry+https://github.com/rust-lang/crates.io-index" 2823 | checksum = "0a345c870a1fae0b1b779085e81b51e614767c239e93503588e54c5b17f4b0e8" 2824 | dependencies = [ 2825 | "smithay-client-toolkit", 2826 | "wayland-client 0.29.5", 2827 | ] 2828 | 2829 | [[package]] 2830 | name = "socket2" 2831 | version = "0.4.10" 2832 | source = "registry+https://github.com/rust-lang/crates.io-index" 2833 | checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" 2834 | dependencies = [ 2835 | "libc", 2836 | "winapi", 2837 | ] 2838 | 2839 | [[package]] 2840 | name = "socket2" 2841 | version = "0.5.5" 2842 | source = "registry+https://github.com/rust-lang/crates.io-index" 2843 | checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" 2844 | dependencies = [ 2845 | "libc", 2846 | "windows-sys 0.48.0", 2847 | ] 2848 | 2849 | [[package]] 2850 | name = "softbuffer" 2851 | version = "0.2.1" 2852 | source = "registry+https://github.com/rust-lang/crates.io-index" 2853 | checksum = "c2b953f6ba7285f0af131eb748aabd8ddaf53e0b81dda3ba5d803b0847d6559f" 2854 | dependencies = [ 2855 | "bytemuck", 2856 | "cfg_aliases", 2857 | "cocoa", 2858 | "core-graphics", 2859 | "fastrand 1.9.0", 2860 | "foreign-types", 2861 | "log", 2862 | "nix 0.26.4", 2863 | "objc", 2864 | "raw-window-handle 0.5.2", 2865 | "redox_syscall 0.3.5", 2866 | "thiserror", 2867 | "wasm-bindgen", 2868 | "wayland-backend", 2869 | "wayland-client 0.30.2", 2870 | "wayland-sys 0.30.1", 2871 | "web-sys", 2872 | "windows-sys 0.48.0", 2873 | "x11-dl", 2874 | "x11rb 0.11.1", 2875 | ] 2876 | 2877 | [[package]] 2878 | name = "static_assertions" 2879 | version = "1.1.0" 2880 | source = "registry+https://github.com/rust-lang/crates.io-index" 2881 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 2882 | 2883 | [[package]] 2884 | name = "str-buf" 2885 | version = "1.0.6" 2886 | source = "registry+https://github.com/rust-lang/crates.io-index" 2887 | checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" 2888 | 2889 | [[package]] 2890 | name = "strict-num" 2891 | version = "0.1.1" 2892 | source = "registry+https://github.com/rust-lang/crates.io-index" 2893 | checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" 2894 | 2895 | [[package]] 2896 | name = "strsim" 2897 | version = "0.10.0" 2898 | source = "registry+https://github.com/rust-lang/crates.io-index" 2899 | checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" 2900 | 2901 | [[package]] 2902 | name = "swash" 2903 | version = "0.1.8" 2904 | source = "registry+https://github.com/rust-lang/crates.io-index" 2905 | checksum = "3b7c73c813353c347272919aa1af2885068b05e625e5532b43049e4f641ae77f" 2906 | dependencies = [ 2907 | "yazi", 2908 | "zeno", 2909 | ] 2910 | 2911 | [[package]] 2912 | name = "syn" 2913 | version = "1.0.109" 2914 | source = "registry+https://github.com/rust-lang/crates.io-index" 2915 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 2916 | dependencies = [ 2917 | "proc-macro2", 2918 | "quote", 2919 | "unicode-ident", 2920 | ] 2921 | 2922 | [[package]] 2923 | name = "syn" 2924 | version = "2.0.47" 2925 | source = "registry+https://github.com/rust-lang/crates.io-index" 2926 | checksum = "1726efe18f42ae774cc644f330953a5e7b3c3003d3edcecf18850fe9d4dd9afb" 2927 | dependencies = [ 2928 | "proc-macro2", 2929 | "quote", 2930 | "unicode-ident", 2931 | ] 2932 | 2933 | [[package]] 2934 | name = "sys-locale" 2935 | version = "0.3.1" 2936 | source = "registry+https://github.com/rust-lang/crates.io-index" 2937 | checksum = "e801cf239ecd6ccd71f03d270d67dd53d13e90aab208bf4b8fe4ad957ea949b0" 2938 | dependencies = [ 2939 | "libc", 2940 | ] 2941 | 2942 | [[package]] 2943 | name = "system-configuration" 2944 | version = "0.5.1" 2945 | source = "registry+https://github.com/rust-lang/crates.io-index" 2946 | checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" 2947 | dependencies = [ 2948 | "bitflags 1.3.2", 2949 | "core-foundation", 2950 | "system-configuration-sys", 2951 | ] 2952 | 2953 | [[package]] 2954 | name = "system-configuration-sys" 2955 | version = "0.5.0" 2956 | source = "registry+https://github.com/rust-lang/crates.io-index" 2957 | checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" 2958 | dependencies = [ 2959 | "core-foundation-sys", 2960 | "libc", 2961 | ] 2962 | 2963 | [[package]] 2964 | name = "tempfile" 2965 | version = "3.9.0" 2966 | source = "registry+https://github.com/rust-lang/crates.io-index" 2967 | checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" 2968 | dependencies = [ 2969 | "cfg-if", 2970 | "fastrand 2.0.1", 2971 | "redox_syscall 0.4.1", 2972 | "rustix 0.38.28", 2973 | "windows-sys 0.52.0", 2974 | ] 2975 | 2976 | [[package]] 2977 | name = "thiserror" 2978 | version = "1.0.56" 2979 | source = "registry+https://github.com/rust-lang/crates.io-index" 2980 | checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" 2981 | dependencies = [ 2982 | "thiserror-impl", 2983 | ] 2984 | 2985 | [[package]] 2986 | name = "thiserror-impl" 2987 | version = "1.0.56" 2988 | source = "registry+https://github.com/rust-lang/crates.io-index" 2989 | checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" 2990 | dependencies = [ 2991 | "proc-macro2", 2992 | "quote", 2993 | "syn 2.0.47", 2994 | ] 2995 | 2996 | [[package]] 2997 | name = "tiny-skia" 2998 | version = "0.8.4" 2999 | source = "registry+https://github.com/rust-lang/crates.io-index" 3000 | checksum = "df8493a203431061e901613751931f047d1971337153f96d0e5e363d6dbf6a67" 3001 | dependencies = [ 3002 | "arrayref", 3003 | "arrayvec", 3004 | "bytemuck", 3005 | "cfg-if", 3006 | "png", 3007 | "tiny-skia-path 0.8.4", 3008 | ] 3009 | 3010 | [[package]] 3011 | name = "tiny-skia" 3012 | version = "0.10.0" 3013 | source = "registry+https://github.com/rust-lang/crates.io-index" 3014 | checksum = "7db11798945fa5c3e5490c794ccca7c6de86d3afdd54b4eb324109939c6f37bc" 3015 | dependencies = [ 3016 | "arrayref", 3017 | "arrayvec", 3018 | "bytemuck", 3019 | "cfg-if", 3020 | "log", 3021 | "png", 3022 | "tiny-skia-path 0.10.0", 3023 | ] 3024 | 3025 | [[package]] 3026 | name = "tiny-skia-path" 3027 | version = "0.8.4" 3028 | source = "registry+https://github.com/rust-lang/crates.io-index" 3029 | checksum = "adbfb5d3f3dd57a0e11d12f4f13d4ebbbc1b5c15b7ab0a156d030b21da5f677c" 3030 | dependencies = [ 3031 | "arrayref", 3032 | "bytemuck", 3033 | "strict-num", 3034 | ] 3035 | 3036 | [[package]] 3037 | name = "tiny-skia-path" 3038 | version = "0.10.0" 3039 | source = "registry+https://github.com/rust-lang/crates.io-index" 3040 | checksum = "2f60aa35c89ac2687ace1a2556eaaea68e8c0d47408a2e3e7f5c98a489e7281c" 3041 | dependencies = [ 3042 | "arrayref", 3043 | "bytemuck", 3044 | "strict-num", 3045 | ] 3046 | 3047 | [[package]] 3048 | name = "tinyvec" 3049 | version = "1.6.0" 3050 | source = "registry+https://github.com/rust-lang/crates.io-index" 3051 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 3052 | dependencies = [ 3053 | "tinyvec_macros", 3054 | ] 3055 | 3056 | [[package]] 3057 | name = "tinyvec_macros" 3058 | version = "0.1.1" 3059 | source = "registry+https://github.com/rust-lang/crates.io-index" 3060 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 3061 | 3062 | [[package]] 3063 | name = "tokio" 3064 | version = "1.35.1" 3065 | source = "registry+https://github.com/rust-lang/crates.io-index" 3066 | checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" 3067 | dependencies = [ 3068 | "backtrace", 3069 | "bytes", 3070 | "libc", 3071 | "mio", 3072 | "num_cpus", 3073 | "pin-project-lite", 3074 | "socket2 0.5.5", 3075 | "windows-sys 0.48.0", 3076 | ] 3077 | 3078 | [[package]] 3079 | name = "tokio-native-tls" 3080 | version = "0.3.1" 3081 | source = "registry+https://github.com/rust-lang/crates.io-index" 3082 | checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" 3083 | dependencies = [ 3084 | "native-tls", 3085 | "tokio", 3086 | ] 3087 | 3088 | [[package]] 3089 | name = "tokio-util" 3090 | version = "0.7.10" 3091 | source = "registry+https://github.com/rust-lang/crates.io-index" 3092 | checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" 3093 | dependencies = [ 3094 | "bytes", 3095 | "futures-core", 3096 | "futures-sink", 3097 | "pin-project-lite", 3098 | "tokio", 3099 | "tracing", 3100 | ] 3101 | 3102 | [[package]] 3103 | name = "toml_datetime" 3104 | version = "0.6.5" 3105 | source = "registry+https://github.com/rust-lang/crates.io-index" 3106 | checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" 3107 | 3108 | [[package]] 3109 | name = "toml_edit" 3110 | version = "0.19.15" 3111 | source = "registry+https://github.com/rust-lang/crates.io-index" 3112 | checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" 3113 | dependencies = [ 3114 | "indexmap", 3115 | "toml_datetime", 3116 | "winnow", 3117 | ] 3118 | 3119 | [[package]] 3120 | name = "tower-service" 3121 | version = "0.3.2" 3122 | source = "registry+https://github.com/rust-lang/crates.io-index" 3123 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 3124 | 3125 | [[package]] 3126 | name = "tracing" 3127 | version = "0.1.40" 3128 | source = "registry+https://github.com/rust-lang/crates.io-index" 3129 | checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 3130 | dependencies = [ 3131 | "pin-project-lite", 3132 | "tracing-attributes", 3133 | "tracing-core", 3134 | ] 3135 | 3136 | [[package]] 3137 | name = "tracing-attributes" 3138 | version = "0.1.27" 3139 | source = "registry+https://github.com/rust-lang/crates.io-index" 3140 | checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" 3141 | dependencies = [ 3142 | "proc-macro2", 3143 | "quote", 3144 | "syn 2.0.47", 3145 | ] 3146 | 3147 | [[package]] 3148 | name = "tracing-core" 3149 | version = "0.1.32" 3150 | source = "registry+https://github.com/rust-lang/crates.io-index" 3151 | checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" 3152 | dependencies = [ 3153 | "once_cell", 3154 | ] 3155 | 3156 | [[package]] 3157 | name = "try-lock" 3158 | version = "0.2.5" 3159 | source = "registry+https://github.com/rust-lang/crates.io-index" 3160 | checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 3161 | 3162 | [[package]] 3163 | name = "ttf-parser" 3164 | version = "0.19.2" 3165 | source = "registry+https://github.com/rust-lang/crates.io-index" 3166 | checksum = "49d64318d8311fc2668e48b63969f4343e0a85c4a109aa8460d6672e364b8bd1" 3167 | 3168 | [[package]] 3169 | name = "ttf-parser" 3170 | version = "0.20.0" 3171 | source = "registry+https://github.com/rust-lang/crates.io-index" 3172 | checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4" 3173 | 3174 | [[package]] 3175 | name = "twox-hash" 3176 | version = "1.6.3" 3177 | source = "registry+https://github.com/rust-lang/crates.io-index" 3178 | checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" 3179 | dependencies = [ 3180 | "cfg-if", 3181 | "rand", 3182 | "static_assertions", 3183 | ] 3184 | 3185 | [[package]] 3186 | name = "typenum" 3187 | version = "1.17.0" 3188 | source = "registry+https://github.com/rust-lang/crates.io-index" 3189 | checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" 3190 | 3191 | [[package]] 3192 | name = "uds_windows" 3193 | version = "1.1.0" 3194 | source = "registry+https://github.com/rust-lang/crates.io-index" 3195 | checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" 3196 | dependencies = [ 3197 | "memoffset 0.9.0", 3198 | "tempfile", 3199 | "winapi", 3200 | ] 3201 | 3202 | [[package]] 3203 | name = "unicode-bidi" 3204 | version = "0.3.14" 3205 | source = "registry+https://github.com/rust-lang/crates.io-index" 3206 | checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" 3207 | 3208 | [[package]] 3209 | name = "unicode-bidi-mirroring" 3210 | version = "0.1.0" 3211 | source = "registry+https://github.com/rust-lang/crates.io-index" 3212 | checksum = "56d12260fb92d52f9008be7e4bca09f584780eb2266dc8fecc6a192bec561694" 3213 | 3214 | [[package]] 3215 | name = "unicode-ccc" 3216 | version = "0.1.2" 3217 | source = "registry+https://github.com/rust-lang/crates.io-index" 3218 | checksum = "cc2520efa644f8268dce4dcd3050eaa7fc044fca03961e9998ac7e2e92b77cf1" 3219 | 3220 | [[package]] 3221 | name = "unicode-general-category" 3222 | version = "0.6.0" 3223 | source = "registry+https://github.com/rust-lang/crates.io-index" 3224 | checksum = "2281c8c1d221438e373249e065ca4989c4c36952c211ff21a0ee91c44a3869e7" 3225 | 3226 | [[package]] 3227 | name = "unicode-ident" 3228 | version = "1.0.12" 3229 | source = "registry+https://github.com/rust-lang/crates.io-index" 3230 | checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" 3231 | 3232 | [[package]] 3233 | name = "unicode-linebreak" 3234 | version = "0.1.5" 3235 | source = "registry+https://github.com/rust-lang/crates.io-index" 3236 | checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" 3237 | 3238 | [[package]] 3239 | name = "unicode-normalization" 3240 | version = "0.1.22" 3241 | source = "registry+https://github.com/rust-lang/crates.io-index" 3242 | checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 3243 | dependencies = [ 3244 | "tinyvec", 3245 | ] 3246 | 3247 | [[package]] 3248 | name = "unicode-script" 3249 | version = "0.5.5" 3250 | source = "registry+https://github.com/rust-lang/crates.io-index" 3251 | checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc" 3252 | 3253 | [[package]] 3254 | name = "unicode-segmentation" 3255 | version = "1.10.1" 3256 | source = "registry+https://github.com/rust-lang/crates.io-index" 3257 | checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" 3258 | 3259 | [[package]] 3260 | name = "url" 3261 | version = "2.5.0" 3262 | source = "registry+https://github.com/rust-lang/crates.io-index" 3263 | checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" 3264 | dependencies = [ 3265 | "form_urlencoded", 3266 | "idna", 3267 | "percent-encoding", 3268 | ] 3269 | 3270 | [[package]] 3271 | name = "utf8parse" 3272 | version = "0.2.1" 3273 | source = "registry+https://github.com/rust-lang/crates.io-index" 3274 | checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" 3275 | 3276 | [[package]] 3277 | name = "vcpkg" 3278 | version = "0.2.15" 3279 | source = "registry+https://github.com/rust-lang/crates.io-index" 3280 | checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 3281 | 3282 | [[package]] 3283 | name = "vec_map" 3284 | version = "0.8.2" 3285 | source = "registry+https://github.com/rust-lang/crates.io-index" 3286 | checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" 3287 | 3288 | [[package]] 3289 | name = "version_check" 3290 | version = "0.9.4" 3291 | source = "registry+https://github.com/rust-lang/crates.io-index" 3292 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 3293 | 3294 | [[package]] 3295 | name = "waker-fn" 3296 | version = "1.1.1" 3297 | source = "registry+https://github.com/rust-lang/crates.io-index" 3298 | checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" 3299 | 3300 | [[package]] 3301 | name = "want" 3302 | version = "0.3.1" 3303 | source = "registry+https://github.com/rust-lang/crates.io-index" 3304 | checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 3305 | dependencies = [ 3306 | "try-lock", 3307 | ] 3308 | 3309 | [[package]] 3310 | name = "wasi" 3311 | version = "0.11.0+wasi-snapshot-preview1" 3312 | source = "registry+https://github.com/rust-lang/crates.io-index" 3313 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 3314 | 3315 | [[package]] 3316 | name = "wasm-bindgen" 3317 | version = "0.2.89" 3318 | source = "registry+https://github.com/rust-lang/crates.io-index" 3319 | checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" 3320 | dependencies = [ 3321 | "cfg-if", 3322 | "wasm-bindgen-macro", 3323 | ] 3324 | 3325 | [[package]] 3326 | name = "wasm-bindgen-backend" 3327 | version = "0.2.89" 3328 | source = "registry+https://github.com/rust-lang/crates.io-index" 3329 | checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" 3330 | dependencies = [ 3331 | "bumpalo", 3332 | "log", 3333 | "once_cell", 3334 | "proc-macro2", 3335 | "quote", 3336 | "syn 2.0.47", 3337 | "wasm-bindgen-shared", 3338 | ] 3339 | 3340 | [[package]] 3341 | name = "wasm-bindgen-futures" 3342 | version = "0.4.39" 3343 | source = "registry+https://github.com/rust-lang/crates.io-index" 3344 | checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" 3345 | dependencies = [ 3346 | "cfg-if", 3347 | "js-sys", 3348 | "wasm-bindgen", 3349 | "web-sys", 3350 | ] 3351 | 3352 | [[package]] 3353 | name = "wasm-bindgen-macro" 3354 | version = "0.2.89" 3355 | source = "registry+https://github.com/rust-lang/crates.io-index" 3356 | checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" 3357 | dependencies = [ 3358 | "quote", 3359 | "wasm-bindgen-macro-support", 3360 | ] 3361 | 3362 | [[package]] 3363 | name = "wasm-bindgen-macro-support" 3364 | version = "0.2.89" 3365 | source = "registry+https://github.com/rust-lang/crates.io-index" 3366 | checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" 3367 | dependencies = [ 3368 | "proc-macro2", 3369 | "quote", 3370 | "syn 2.0.47", 3371 | "wasm-bindgen-backend", 3372 | "wasm-bindgen-shared", 3373 | ] 3374 | 3375 | [[package]] 3376 | name = "wasm-bindgen-shared" 3377 | version = "0.2.89" 3378 | source = "registry+https://github.com/rust-lang/crates.io-index" 3379 | checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" 3380 | 3381 | [[package]] 3382 | name = "wasm-timer" 3383 | version = "0.2.5" 3384 | source = "registry+https://github.com/rust-lang/crates.io-index" 3385 | checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" 3386 | dependencies = [ 3387 | "futures", 3388 | "js-sys", 3389 | "parking_lot", 3390 | "pin-utils", 3391 | "wasm-bindgen", 3392 | "wasm-bindgen-futures", 3393 | "web-sys", 3394 | ] 3395 | 3396 | [[package]] 3397 | name = "wayland-backend" 3398 | version = "0.1.2" 3399 | source = "registry+https://github.com/rust-lang/crates.io-index" 3400 | checksum = "41b48e27457e8da3b2260ac60d0a94512f5cba36448679f3747c0865b7893ed8" 3401 | dependencies = [ 3402 | "cc", 3403 | "downcast-rs", 3404 | "io-lifetimes", 3405 | "nix 0.26.4", 3406 | "scoped-tls", 3407 | "smallvec", 3408 | "wayland-sys 0.30.1", 3409 | ] 3410 | 3411 | [[package]] 3412 | name = "wayland-client" 3413 | version = "0.29.5" 3414 | source = "registry+https://github.com/rust-lang/crates.io-index" 3415 | checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715" 3416 | dependencies = [ 3417 | "bitflags 1.3.2", 3418 | "downcast-rs", 3419 | "libc", 3420 | "nix 0.24.3", 3421 | "scoped-tls", 3422 | "wayland-commons", 3423 | "wayland-scanner 0.29.5", 3424 | "wayland-sys 0.29.5", 3425 | ] 3426 | 3427 | [[package]] 3428 | name = "wayland-client" 3429 | version = "0.30.2" 3430 | source = "registry+https://github.com/rust-lang/crates.io-index" 3431 | checksum = "489c9654770f674fc7e266b3c579f4053d7551df0ceb392f153adb1f9ed06ac8" 3432 | dependencies = [ 3433 | "bitflags 1.3.2", 3434 | "nix 0.26.4", 3435 | "wayland-backend", 3436 | "wayland-scanner 0.30.1", 3437 | ] 3438 | 3439 | [[package]] 3440 | name = "wayland-commons" 3441 | version = "0.29.5" 3442 | source = "registry+https://github.com/rust-lang/crates.io-index" 3443 | checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902" 3444 | dependencies = [ 3445 | "nix 0.24.3", 3446 | "once_cell", 3447 | "smallvec", 3448 | "wayland-sys 0.29.5", 3449 | ] 3450 | 3451 | [[package]] 3452 | name = "wayland-cursor" 3453 | version = "0.29.5" 3454 | source = "registry+https://github.com/rust-lang/crates.io-index" 3455 | checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661" 3456 | dependencies = [ 3457 | "nix 0.24.3", 3458 | "wayland-client 0.29.5", 3459 | "xcursor", 3460 | ] 3461 | 3462 | [[package]] 3463 | name = "wayland-protocols" 3464 | version = "0.29.5" 3465 | source = "registry+https://github.com/rust-lang/crates.io-index" 3466 | checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6" 3467 | dependencies = [ 3468 | "bitflags 1.3.2", 3469 | "wayland-client 0.29.5", 3470 | "wayland-commons", 3471 | "wayland-scanner 0.29.5", 3472 | ] 3473 | 3474 | [[package]] 3475 | name = "wayland-scanner" 3476 | version = "0.29.5" 3477 | source = "registry+https://github.com/rust-lang/crates.io-index" 3478 | checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53" 3479 | dependencies = [ 3480 | "proc-macro2", 3481 | "quote", 3482 | "xml-rs", 3483 | ] 3484 | 3485 | [[package]] 3486 | name = "wayland-scanner" 3487 | version = "0.30.1" 3488 | source = "registry+https://github.com/rust-lang/crates.io-index" 3489 | checksum = "b9b873b257fbc32ec909c0eb80dea312076a67014e65e245f5eb69a6b8ab330e" 3490 | dependencies = [ 3491 | "proc-macro2", 3492 | "quick-xml", 3493 | "quote", 3494 | ] 3495 | 3496 | [[package]] 3497 | name = "wayland-sys" 3498 | version = "0.29.5" 3499 | source = "registry+https://github.com/rust-lang/crates.io-index" 3500 | checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4" 3501 | dependencies = [ 3502 | "dlib", 3503 | "lazy_static", 3504 | "pkg-config", 3505 | ] 3506 | 3507 | [[package]] 3508 | name = "wayland-sys" 3509 | version = "0.30.1" 3510 | source = "registry+https://github.com/rust-lang/crates.io-index" 3511 | checksum = "96b2a02ac608e07132978689a6f9bf4214949c85998c247abadd4f4129b1aa06" 3512 | dependencies = [ 3513 | "dlib", 3514 | "lazy_static", 3515 | "log", 3516 | "pkg-config", 3517 | ] 3518 | 3519 | [[package]] 3520 | name = "web-sys" 3521 | version = "0.3.66" 3522 | source = "registry+https://github.com/rust-lang/crates.io-index" 3523 | checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" 3524 | dependencies = [ 3525 | "js-sys", 3526 | "wasm-bindgen", 3527 | ] 3528 | 3529 | [[package]] 3530 | name = "wfd" 3531 | version = "0.1.7" 3532 | source = "registry+https://github.com/rust-lang/crates.io-index" 3533 | checksum = "e713040b67aae5bf1a0ae3e1ebba8cc29ab2b90da9aa1bff6e09031a8a41d7a8" 3534 | dependencies = [ 3535 | "libc", 3536 | "winapi", 3537 | ] 3538 | 3539 | [[package]] 3540 | name = "which" 3541 | version = "4.4.2" 3542 | source = "registry+https://github.com/rust-lang/crates.io-index" 3543 | checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" 3544 | dependencies = [ 3545 | "either", 3546 | "home", 3547 | "once_cell", 3548 | "rustix 0.38.28", 3549 | ] 3550 | 3551 | [[package]] 3552 | name = "winapi" 3553 | version = "0.3.9" 3554 | source = "registry+https://github.com/rust-lang/crates.io-index" 3555 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 3556 | dependencies = [ 3557 | "winapi-i686-pc-windows-gnu", 3558 | "winapi-x86_64-pc-windows-gnu", 3559 | ] 3560 | 3561 | [[package]] 3562 | name = "winapi-i686-pc-windows-gnu" 3563 | version = "0.4.0" 3564 | source = "registry+https://github.com/rust-lang/crates.io-index" 3565 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 3566 | 3567 | [[package]] 3568 | name = "winapi-wsapoll" 3569 | version = "0.1.1" 3570 | source = "registry+https://github.com/rust-lang/crates.io-index" 3571 | checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e" 3572 | dependencies = [ 3573 | "winapi", 3574 | ] 3575 | 3576 | [[package]] 3577 | name = "winapi-x86_64-pc-windows-gnu" 3578 | version = "0.4.0" 3579 | source = "registry+https://github.com/rust-lang/crates.io-index" 3580 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 3581 | 3582 | [[package]] 3583 | name = "window_clipboard" 3584 | version = "0.3.0" 3585 | source = "registry+https://github.com/rust-lang/crates.io-index" 3586 | checksum = "63287c9c4396ccf5346d035a9b0fcaead9e18377637f5eaa78b7ac65c873ff7d" 3587 | dependencies = [ 3588 | "clipboard-win", 3589 | "clipboard_macos", 3590 | "clipboard_wayland", 3591 | "clipboard_x11", 3592 | "raw-window-handle 0.5.2", 3593 | "thiserror", 3594 | ] 3595 | 3596 | [[package]] 3597 | name = "windows-core" 3598 | version = "0.52.0" 3599 | source = "registry+https://github.com/rust-lang/crates.io-index" 3600 | checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" 3601 | dependencies = [ 3602 | "windows-targets 0.52.0", 3603 | ] 3604 | 3605 | [[package]] 3606 | name = "windows-sys" 3607 | version = "0.45.0" 3608 | source = "registry+https://github.com/rust-lang/crates.io-index" 3609 | checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 3610 | dependencies = [ 3611 | "windows-targets 0.42.2", 3612 | ] 3613 | 3614 | [[package]] 3615 | name = "windows-sys" 3616 | version = "0.48.0" 3617 | source = "registry+https://github.com/rust-lang/crates.io-index" 3618 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 3619 | dependencies = [ 3620 | "windows-targets 0.48.5", 3621 | ] 3622 | 3623 | [[package]] 3624 | name = "windows-sys" 3625 | version = "0.52.0" 3626 | source = "registry+https://github.com/rust-lang/crates.io-index" 3627 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 3628 | dependencies = [ 3629 | "windows-targets 0.52.0", 3630 | ] 3631 | 3632 | [[package]] 3633 | name = "windows-targets" 3634 | version = "0.42.2" 3635 | source = "registry+https://github.com/rust-lang/crates.io-index" 3636 | checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" 3637 | dependencies = [ 3638 | "windows_aarch64_gnullvm 0.42.2", 3639 | "windows_aarch64_msvc 0.42.2", 3640 | "windows_i686_gnu 0.42.2", 3641 | "windows_i686_msvc 0.42.2", 3642 | "windows_x86_64_gnu 0.42.2", 3643 | "windows_x86_64_gnullvm 0.42.2", 3644 | "windows_x86_64_msvc 0.42.2", 3645 | ] 3646 | 3647 | [[package]] 3648 | name = "windows-targets" 3649 | version = "0.48.5" 3650 | source = "registry+https://github.com/rust-lang/crates.io-index" 3651 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 3652 | dependencies = [ 3653 | "windows_aarch64_gnullvm 0.48.5", 3654 | "windows_aarch64_msvc 0.48.5", 3655 | "windows_i686_gnu 0.48.5", 3656 | "windows_i686_msvc 0.48.5", 3657 | "windows_x86_64_gnu 0.48.5", 3658 | "windows_x86_64_gnullvm 0.48.5", 3659 | "windows_x86_64_msvc 0.48.5", 3660 | ] 3661 | 3662 | [[package]] 3663 | name = "windows-targets" 3664 | version = "0.52.0" 3665 | source = "registry+https://github.com/rust-lang/crates.io-index" 3666 | checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" 3667 | dependencies = [ 3668 | "windows_aarch64_gnullvm 0.52.0", 3669 | "windows_aarch64_msvc 0.52.0", 3670 | "windows_i686_gnu 0.52.0", 3671 | "windows_i686_msvc 0.52.0", 3672 | "windows_x86_64_gnu 0.52.0", 3673 | "windows_x86_64_gnullvm 0.52.0", 3674 | "windows_x86_64_msvc 0.52.0", 3675 | ] 3676 | 3677 | [[package]] 3678 | name = "windows_aarch64_gnullvm" 3679 | version = "0.42.2" 3680 | source = "registry+https://github.com/rust-lang/crates.io-index" 3681 | checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" 3682 | 3683 | [[package]] 3684 | name = "windows_aarch64_gnullvm" 3685 | version = "0.48.5" 3686 | source = "registry+https://github.com/rust-lang/crates.io-index" 3687 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 3688 | 3689 | [[package]] 3690 | name = "windows_aarch64_gnullvm" 3691 | version = "0.52.0" 3692 | source = "registry+https://github.com/rust-lang/crates.io-index" 3693 | checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" 3694 | 3695 | [[package]] 3696 | name = "windows_aarch64_msvc" 3697 | version = "0.42.2" 3698 | source = "registry+https://github.com/rust-lang/crates.io-index" 3699 | checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" 3700 | 3701 | [[package]] 3702 | name = "windows_aarch64_msvc" 3703 | version = "0.48.5" 3704 | source = "registry+https://github.com/rust-lang/crates.io-index" 3705 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 3706 | 3707 | [[package]] 3708 | name = "windows_aarch64_msvc" 3709 | version = "0.52.0" 3710 | source = "registry+https://github.com/rust-lang/crates.io-index" 3711 | checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" 3712 | 3713 | [[package]] 3714 | name = "windows_i686_gnu" 3715 | version = "0.42.2" 3716 | source = "registry+https://github.com/rust-lang/crates.io-index" 3717 | checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" 3718 | 3719 | [[package]] 3720 | name = "windows_i686_gnu" 3721 | version = "0.48.5" 3722 | source = "registry+https://github.com/rust-lang/crates.io-index" 3723 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 3724 | 3725 | [[package]] 3726 | name = "windows_i686_gnu" 3727 | version = "0.52.0" 3728 | source = "registry+https://github.com/rust-lang/crates.io-index" 3729 | checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" 3730 | 3731 | [[package]] 3732 | name = "windows_i686_msvc" 3733 | version = "0.42.2" 3734 | source = "registry+https://github.com/rust-lang/crates.io-index" 3735 | checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" 3736 | 3737 | [[package]] 3738 | name = "windows_i686_msvc" 3739 | version = "0.48.5" 3740 | source = "registry+https://github.com/rust-lang/crates.io-index" 3741 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 3742 | 3743 | [[package]] 3744 | name = "windows_i686_msvc" 3745 | version = "0.52.0" 3746 | source = "registry+https://github.com/rust-lang/crates.io-index" 3747 | checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" 3748 | 3749 | [[package]] 3750 | name = "windows_x86_64_gnu" 3751 | version = "0.42.2" 3752 | source = "registry+https://github.com/rust-lang/crates.io-index" 3753 | checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" 3754 | 3755 | [[package]] 3756 | name = "windows_x86_64_gnu" 3757 | version = "0.48.5" 3758 | source = "registry+https://github.com/rust-lang/crates.io-index" 3759 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 3760 | 3761 | [[package]] 3762 | name = "windows_x86_64_gnu" 3763 | version = "0.52.0" 3764 | source = "registry+https://github.com/rust-lang/crates.io-index" 3765 | checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" 3766 | 3767 | [[package]] 3768 | name = "windows_x86_64_gnullvm" 3769 | version = "0.42.2" 3770 | source = "registry+https://github.com/rust-lang/crates.io-index" 3771 | checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" 3772 | 3773 | [[package]] 3774 | name = "windows_x86_64_gnullvm" 3775 | version = "0.48.5" 3776 | source = "registry+https://github.com/rust-lang/crates.io-index" 3777 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 3778 | 3779 | [[package]] 3780 | name = "windows_x86_64_gnullvm" 3781 | version = "0.52.0" 3782 | source = "registry+https://github.com/rust-lang/crates.io-index" 3783 | checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" 3784 | 3785 | [[package]] 3786 | name = "windows_x86_64_msvc" 3787 | version = "0.42.2" 3788 | source = "registry+https://github.com/rust-lang/crates.io-index" 3789 | checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" 3790 | 3791 | [[package]] 3792 | name = "windows_x86_64_msvc" 3793 | version = "0.48.5" 3794 | source = "registry+https://github.com/rust-lang/crates.io-index" 3795 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 3796 | 3797 | [[package]] 3798 | name = "windows_x86_64_msvc" 3799 | version = "0.52.0" 3800 | source = "registry+https://github.com/rust-lang/crates.io-index" 3801 | checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" 3802 | 3803 | [[package]] 3804 | name = "winit" 3805 | version = "0.28.7" 3806 | source = "registry+https://github.com/rust-lang/crates.io-index" 3807 | checksum = "9596d90b45384f5281384ab204224876e8e8bf7d58366d9b795ad99aa9894b94" 3808 | dependencies = [ 3809 | "android-activity", 3810 | "bitflags 1.3.2", 3811 | "cfg_aliases", 3812 | "core-foundation", 3813 | "core-graphics", 3814 | "dispatch", 3815 | "instant", 3816 | "libc", 3817 | "log", 3818 | "mio", 3819 | "ndk", 3820 | "objc2", 3821 | "once_cell", 3822 | "orbclient", 3823 | "percent-encoding", 3824 | "raw-window-handle 0.5.2", 3825 | "redox_syscall 0.3.5", 3826 | "sctk-adwaita", 3827 | "smithay-client-toolkit", 3828 | "wasm-bindgen", 3829 | "wayland-client 0.29.5", 3830 | "wayland-commons", 3831 | "wayland-protocols", 3832 | "wayland-scanner 0.29.5", 3833 | "web-sys", 3834 | "windows-sys 0.45.0", 3835 | "x11-dl", 3836 | ] 3837 | 3838 | [[package]] 3839 | name = "winnow" 3840 | version = "0.5.32" 3841 | source = "registry+https://github.com/rust-lang/crates.io-index" 3842 | checksum = "8434aeec7b290e8da5c3f0d628cb0eac6cabcb31d14bb74f779a08109a5914d6" 3843 | dependencies = [ 3844 | "memchr", 3845 | ] 3846 | 3847 | [[package]] 3848 | name = "winreg" 3849 | version = "0.10.1" 3850 | source = "registry+https://github.com/rust-lang/crates.io-index" 3851 | checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" 3852 | dependencies = [ 3853 | "winapi", 3854 | ] 3855 | 3856 | [[package]] 3857 | name = "winreg" 3858 | version = "0.50.0" 3859 | source = "registry+https://github.com/rust-lang/crates.io-index" 3860 | checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" 3861 | dependencies = [ 3862 | "cfg-if", 3863 | "windows-sys 0.48.0", 3864 | ] 3865 | 3866 | [[package]] 3867 | name = "x11-dl" 3868 | version = "2.21.0" 3869 | source = "registry+https://github.com/rust-lang/crates.io-index" 3870 | checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" 3871 | dependencies = [ 3872 | "libc", 3873 | "once_cell", 3874 | "pkg-config", 3875 | ] 3876 | 3877 | [[package]] 3878 | name = "x11rb" 3879 | version = "0.9.0" 3880 | source = "registry+https://github.com/rust-lang/crates.io-index" 3881 | checksum = "6e99be55648b3ae2a52342f9a870c0e138709a3493261ce9b469afe6e4df6d8a" 3882 | dependencies = [ 3883 | "gethostname", 3884 | "nix 0.22.3", 3885 | "winapi", 3886 | "winapi-wsapoll", 3887 | ] 3888 | 3889 | [[package]] 3890 | name = "x11rb" 3891 | version = "0.11.1" 3892 | source = "registry+https://github.com/rust-lang/crates.io-index" 3893 | checksum = "cdf3c79412dd91bae7a7366b8ad1565a85e35dd049affc3a6a2c549e97419617" 3894 | dependencies = [ 3895 | "gethostname", 3896 | "libc", 3897 | "libloading 0.7.4", 3898 | "nix 0.25.1", 3899 | "once_cell", 3900 | "winapi", 3901 | "winapi-wsapoll", 3902 | "x11rb-protocol", 3903 | ] 3904 | 3905 | [[package]] 3906 | name = "x11rb-protocol" 3907 | version = "0.11.1" 3908 | source = "registry+https://github.com/rust-lang/crates.io-index" 3909 | checksum = "e0b1513b141123073ce54d5bb1d33f801f17508fbd61e02060b1214e96d39c56" 3910 | dependencies = [ 3911 | "nix 0.25.1", 3912 | ] 3913 | 3914 | [[package]] 3915 | name = "xcursor" 3916 | version = "0.3.5" 3917 | source = "registry+https://github.com/rust-lang/crates.io-index" 3918 | checksum = "6a0ccd7b4a5345edfcd0c3535718a4e9ff7798ffc536bb5b5a0e26ff84732911" 3919 | 3920 | [[package]] 3921 | name = "xdg-home" 3922 | version = "1.0.0" 3923 | source = "registry+https://github.com/rust-lang/crates.io-index" 3924 | checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd" 3925 | dependencies = [ 3926 | "nix 0.26.4", 3927 | "winapi", 3928 | ] 3929 | 3930 | [[package]] 3931 | name = "xml-rs" 3932 | version = "0.8.19" 3933 | source = "registry+https://github.com/rust-lang/crates.io-index" 3934 | checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" 3935 | 3936 | [[package]] 3937 | name = "yazi" 3938 | version = "0.1.6" 3939 | source = "registry+https://github.com/rust-lang/crates.io-index" 3940 | checksum = "c94451ac9513335b5e23d7a8a2b61a7102398b8cca5160829d313e84c9d98be1" 3941 | 3942 | [[package]] 3943 | name = "zbus" 3944 | version = "3.14.1" 3945 | source = "registry+https://github.com/rust-lang/crates.io-index" 3946 | checksum = "31de390a2d872e4cd04edd71b425e29853f786dc99317ed72d73d6fcf5ebb948" 3947 | dependencies = [ 3948 | "async-broadcast", 3949 | "async-executor", 3950 | "async-fs", 3951 | "async-io 1.13.0", 3952 | "async-lock 2.8.0", 3953 | "async-process", 3954 | "async-recursion", 3955 | "async-task", 3956 | "async-trait", 3957 | "blocking", 3958 | "byteorder", 3959 | "derivative", 3960 | "enumflags2", 3961 | "event-listener 2.5.3", 3962 | "futures-core", 3963 | "futures-sink", 3964 | "futures-util", 3965 | "hex", 3966 | "nix 0.26.4", 3967 | "once_cell", 3968 | "ordered-stream", 3969 | "rand", 3970 | "serde", 3971 | "serde_repr", 3972 | "sha1", 3973 | "static_assertions", 3974 | "tracing", 3975 | "uds_windows", 3976 | "winapi", 3977 | "xdg-home", 3978 | "zbus_macros", 3979 | "zbus_names", 3980 | "zvariant", 3981 | ] 3982 | 3983 | [[package]] 3984 | name = "zbus_macros" 3985 | version = "3.14.1" 3986 | source = "registry+https://github.com/rust-lang/crates.io-index" 3987 | checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d" 3988 | dependencies = [ 3989 | "proc-macro-crate", 3990 | "proc-macro2", 3991 | "quote", 3992 | "regex", 3993 | "syn 1.0.109", 3994 | "zvariant_utils", 3995 | ] 3996 | 3997 | [[package]] 3998 | name = "zbus_names" 3999 | version = "2.6.0" 4000 | source = "registry+https://github.com/rust-lang/crates.io-index" 4001 | checksum = "fb80bb776dbda6e23d705cf0123c3b95df99c4ebeaec6c2599d4a5419902b4a9" 4002 | dependencies = [ 4003 | "serde", 4004 | "static_assertions", 4005 | "zvariant", 4006 | ] 4007 | 4008 | [[package]] 4009 | name = "zeno" 4010 | version = "0.2.3" 4011 | source = "registry+https://github.com/rust-lang/crates.io-index" 4012 | checksum = "dd15f8e0dbb966fd9245e7498c7e9e5055d9e5c8b676b95bd67091cd11a1e697" 4013 | 4014 | [[package]] 4015 | name = "zvariant" 4016 | version = "3.15.0" 4017 | source = "registry+https://github.com/rust-lang/crates.io-index" 4018 | checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c" 4019 | dependencies = [ 4020 | "byteorder", 4021 | "enumflags2", 4022 | "libc", 4023 | "serde", 4024 | "static_assertions", 4025 | "zvariant_derive", 4026 | ] 4027 | 4028 | [[package]] 4029 | name = "zvariant_derive" 4030 | version = "3.15.0" 4031 | source = "registry+https://github.com/rust-lang/crates.io-index" 4032 | checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd" 4033 | dependencies = [ 4034 | "proc-macro-crate", 4035 | "proc-macro2", 4036 | "quote", 4037 | "syn 1.0.109", 4038 | "zvariant_utils", 4039 | ] 4040 | 4041 | [[package]] 4042 | name = "zvariant_utils" 4043 | version = "1.0.1" 4044 | source = "registry+https://github.com/rust-lang/crates.io-index" 4045 | checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200" 4046 | dependencies = [ 4047 | "proc-macro2", 4048 | "quote", 4049 | "syn 1.0.109", 4050 | ] 4051 | --------------------------------------------------------------------------------