├── .gitignore ├── web ├── package.json ├── Trunk.toml ├── Cargo.toml ├── package-lock.json ├── index.html ├── LICENSE ├── Dioxus.toml └── src │ └── main.rs ├── Dockerfile ├── Cargo.toml ├── .github └── workflows │ └── docker.yml ├── LICENSE ├── README.md ├── src └── main.rs └── Cargo.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | web/dist 3 | web/node_modules 4 | -------------------------------------------------------------------------------- /web/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "web", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "Gobidev", 10 | "license": "ISC", 11 | "devDependencies": { 12 | "@fontsource/roboto": "^5.0.8" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /web/Trunk.toml: -------------------------------------------------------------------------------- 1 | [[proxy]] 2 | backend = "http://localhost:9257/clipboard" 3 | 4 | [[proxy]] 5 | backend = "ws://localhost:9257/ws" 6 | ws = true 7 | 8 | [[hooks]] 9 | # This hook example shows all the current available fields. It will execute the equivalent of 10 | # typing "echo Hello Trunk!" right at the start of the build process (even before the HTML file 11 | # is read). By default, the command is spawned directly and no shell is used. 12 | stage = "pre_build" 13 | command = "npm" 14 | command_arguments = ["i"] 15 | -------------------------------------------------------------------------------- /web/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "web" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | dioxus = "0.4.0" 10 | dioxus-web = "0.4.0" 11 | futures = "0.3.28" 12 | gloo-net = "0.4.0" 13 | material-dioxus = { version = "0.0.3-dev", features = ["full"] } 14 | once_cell = "1.18.0" 15 | reqwest = "0.11.20" 16 | tokio = { version = "1.32.0", features = ["macros"] } 17 | web-sys = { version = "0.3.64", features = ["Window", "Location"] } 18 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rust:alpine 2 | 3 | RUN apk add npm binaryen pkgconfig openssl-dev musl-dev build-base curl 4 | 5 | RUN curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | sh 6 | 7 | RUN cargo binstall trunk 8 | 9 | RUN rustup target add wasm32-unknown-unknown 10 | 11 | COPY . /webclip 12 | 13 | WORKDIR /webclip/web 14 | RUN trunk build --release 15 | 16 | WORKDIR /webclip 17 | RUN cargo build --profile=backend 18 | 19 | EXPOSE 9257 20 | CMD ["cargo", "run", "--profile=backend"] 21 | -------------------------------------------------------------------------------- /web/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "web", 3 | "version": "1.0.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "web", 9 | "version": "1.0.0", 10 | "license": "ISC", 11 | "devDependencies": { 12 | "@fontsource/roboto": "^5.0.8" 13 | } 14 | }, 15 | "node_modules/@fontsource/roboto": { 16 | "version": "5.0.8", 17 | "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-5.0.8.tgz", 18 | "integrity": "sha512-XxPltXs5R31D6UZeLIV1td3wTXU3jzd3f2DLsXI8tytMGBkIsGcc9sIyiupRtA8y73HAhuSCeweOoBqf6DbWCA==", 19 | "dev": true 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | members = ["web"] 3 | [package] 4 | name = "webclip" 5 | version = "0.1.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 | actix = "0.13.1" 12 | actix-files = "0.6.2" 13 | actix-web = "4.4.0" 14 | actix-web-actors = "4.2.0" 15 | dotenvy = "0.15.7" 16 | log = "0.4.20" 17 | pretty_env_logger = "0.5.0" 18 | tokio = { version = "1.32.0", features = ["sync"] } 19 | 20 | [profile.release] 21 | opt-level = "z" 22 | lto = true 23 | codegen-units = 1 24 | panic = "abort" 25 | 26 | [profile.backend] 27 | inherits = "release" 28 | strip = true 29 | opt-level = 3 30 | lto = false 31 | panic = 'unwind' 32 | codegen-units = 16 33 | -------------------------------------------------------------------------------- /web/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Webclip | Simple Cross-Device Clipboard 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | -------------------------------------------------------------------------------- /.github/workflows/docker.yml: -------------------------------------------------------------------------------- 1 | name: Create and publish Docker image 2 | 3 | on: 4 | push: 5 | branches: ['main'] 6 | workflow_dispatch: 7 | 8 | env: 9 | REGISTRY: ghcr.io 10 | IMAGE_NAME: ${{ github.repository }} 11 | 12 | jobs: 13 | build-and-push-image: 14 | runs-on: ubuntu-latest 15 | permissions: 16 | contents: read 17 | packages: write 18 | 19 | steps: 20 | - name: Checkout repository 21 | uses: actions/checkout@v4 22 | 23 | - name: Log in to the Container registry 24 | uses: docker/login-action@v3 25 | with: 26 | registry: ${{ env.REGISTRY }} 27 | username: ${{ github.actor }} 28 | password: ${{ secrets.GITHUB_TOKEN }} 29 | 30 | - name: Extract metadata (tags, labels) for Docker 31 | id: meta 32 | uses: docker/metadata-action@v5 33 | with: 34 | images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} 35 | 36 | - name: Build and push Docker image 37 | uses: docker/build-push-action@v6 38 | with: 39 | context: . 40 | push: true 41 | tags: ${{ steps.meta.outputs.tags }} 42 | labels: ${{ steps.meta.outputs.labels }} 43 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /web/LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Webclip 2 | 3 | Webclip is a simple cross-device web-based clipboard written in 4 | [Actix](https://actix.rs/) and [Dioxus](https://dioxuslabs.com/). 5 | 6 | ## How to Run 7 | 8 | ### Docker 9 | 10 | ```sh 11 | docker run -d -p 9257:9257 ghcr.io/gobidev/webclip:main 12 | ``` 13 | 14 | ### Manually 15 | 16 | - Install [`trunk`](https://trunkrs.dev/), [`npm`](https://www.npmjs.com/), 17 | [`cargo`](https://rustup.rs/) and 18 | [binaryen](https://github.com/WebAssembly/binaryen). 19 | - Inside the `web` directory, run `trunk build --release` 20 | - Inside the root directory, run `cargo run --profile=backend` 21 | - The webserver will run on port `9257` 22 | 23 | ## Configuration 24 | 25 | For both compilations, you can set this environment variable: 26 | 27 | - `WEBCLIP_MAX_SIZE` to specify the maximum allowed size for the clipboard, 28 | default is 100,000 characters. 29 | 30 | You can configure the address and port during runtime with these environment 31 | variables: 32 | 33 | - `WEBCLIP_BIND_ADDRESS`: which address to bind to, default is `0.0.0.0`. 34 | - `WEBCLIP_BIND_PORT`: which port to bind to, default is `9257`. 35 | 36 | ## Development 37 | 38 | For development, install the dependencies as described above, then run 39 | `cargo run` in the root directory and `trunk serve` in the `web` directory. 40 | -------------------------------------------------------------------------------- /web/Dioxus.toml: -------------------------------------------------------------------------------- 1 | [application] 2 | 3 | # dioxus project name 4 | name = "quickclip" 5 | 6 | # default platfrom 7 | # you can also use `dx serve/build --platform XXX` to use other platform 8 | # value: web | desktop 9 | default_platform = "web" 10 | 11 | # Web `build` & `serve` dist path 12 | out_dir = "dist" 13 | 14 | # resource (static) file folder 15 | asset_dir = "public" 16 | 17 | [web.app] 18 | 19 | # HTML title tag content 20 | title = "Webclip | Simple Cross-Device Clipboard" 21 | 22 | [web.watcher] 23 | 24 | index_on_404 = true 25 | 26 | watch_path = ["src"] 27 | 28 | # include `assets` in web platform 29 | [web.resource] 30 | 31 | # CSS style file 32 | style = [ 33 | "https://fonts.googleapis.com/css?family=Roboto:300,400,500", 34 | "https://fonts.googleapis.com/css?family=Material+Icons&display=block", 35 | ] 36 | 37 | # Javascript code file 38 | script = [] 39 | 40 | [web.resource.dev] 41 | 42 | # Javascript code file 43 | # serve: [dev-server] only 44 | script = [] 45 | 46 | [[web.proxy]] 47 | backend = "http://localhost:9257/clipboard" 48 | 49 | [application.plugins] 50 | 51 | available = true 52 | 53 | required = [] 54 | 55 | [bundler] 56 | # Bundle identifier 57 | identifier = "io.github.quickclip" 58 | 59 | # Bundle publisher 60 | publisher = "quickclip" 61 | 62 | # Bundle icon 63 | icon = ["icons/icon.png"] 64 | 65 | # Bundle resources 66 | resources = ["public/*"] 67 | 68 | # Bundle copyright 69 | copyright = "" 70 | 71 | # Bundle category 72 | category = "Utility" 73 | 74 | # Bundle short description 75 | short_description = "An amazing dioxus application." 76 | 77 | # Bundle long description 78 | long_description = """ 79 | An amazing dioxus application. 80 | """ 81 | -------------------------------------------------------------------------------- /web/src/main.rs: -------------------------------------------------------------------------------- 1 | #![allow(non_snake_case)] 2 | use dioxus::prelude::*; 3 | use futures::{SinkExt, StreamExt}; 4 | use gloo_net::websocket::{futures::WebSocket, Message}; 5 | use material_dioxus::{ 6 | palette::*, 7 | text_inputs::{MatTextArea, TextAreaCharCounter}, 8 | theming::{Colors, MatTheme}, 9 | }; 10 | use once_cell::sync::Lazy; 11 | 12 | static CLIENT: Lazy = Lazy::new(reqwest::Client::new); 13 | static BACKEND_URL: Lazy = 14 | Lazy::new(|| web_sys::window().unwrap().location().origin().unwrap()); 15 | 16 | const fn parse_int(s: &str) -> usize { 17 | let mut bytes = s.as_bytes(); 18 | let mut val = 0; 19 | while let [byte, rest @ ..] = bytes { 20 | assert!(b'0' <= *byte && *byte <= b'9', "invalid digit"); 21 | val = val * 10 + (*byte - b'0') as usize; 22 | bytes = rest; 23 | } 24 | val 25 | } 26 | 27 | const MAX_SIZE: usize = match option_env!("WEBCLIP_MAX_SIZE") { 28 | Some(size) => parse_int(size), 29 | None => 100_000, 30 | }; 31 | 32 | const GRUVBOX_BG: Color = from_u32(0x282828, 1.); 33 | const GRUVBOX_FG: Color = from_u32(0xebdbb2, 1.); 34 | const GRUVBOX_GREEN: Color = from_u32(0x98971a, 1.); 35 | const GRUVBOX_RED: Color = from_u32(0xfb4934, 1.); 36 | 37 | fn main() { 38 | dioxus_web::launch(App) 39 | } 40 | 41 | fn App(cx: Scope) -> Element { 42 | let request_sent = use_state(cx, || false); 43 | let fetched = use_state(cx, || false); 44 | let value = use_state(cx, String::new); 45 | let error = use_state(cx, String::new); 46 | let dont_update = use_state(cx, || false); 47 | let ws_connected = use_state(cx, || false); 48 | let tx = use_coroutine(cx, |mut rx: UnboundedReceiver| { 49 | to_owned![value, ws_connected, dont_update]; 50 | async move { 51 | let ws = match WebSocket::open(&(BACKEND_URL.replace("http", "ws") + "/ws")) { 52 | Ok(w) => w, 53 | Err(_) => return, 54 | }; 55 | ws_connected.set(true); 56 | let (mut write, mut read) = ws.split(); 57 | loop { 58 | tokio::select! { 59 | Some(Ok(Message::Text(m))) = read.next() => { 60 | value.set(m); 61 | dont_update.set(true); 62 | }, 63 | Some(m) = rx.next() => drop(write.send(Message::Text(m)).await), 64 | }; 65 | } 66 | } 67 | }); 68 | if !request_sent { 69 | cx.spawn({ 70 | to_owned![value, fetched, error]; 71 | request_sent.set(true); 72 | async move { 73 | match CLIENT 74 | .get(format!("{}/clipboard", &*BACKEND_URL)) 75 | .send() 76 | .await 77 | { 78 | Ok(response) => { 79 | let status = response.status(); 80 | match response.text().await { 81 | Ok(text) if status.is_success() => value.set(text), 82 | Ok(text) => error.set(text), 83 | Err(err) => error.set(err.to_string()), 84 | } 85 | } 86 | Err(err) => error.set(err.to_string()), 87 | } 88 | fetched.set(true); 89 | } 90 | }); 91 | } 92 | if **fetched && !dont_update { 93 | if **ws_connected { 94 | tx.send(value.get().clone()) 95 | } else { 96 | to_owned![value]; 97 | cx.spawn(async move { 98 | CLIENT 99 | .post(format!("{}/clipboard", &*BACKEND_URL)) 100 | .body(value.get().clone()) 101 | .send() 102 | .await 103 | .unwrap(); 104 | }); 105 | } 106 | } 107 | render! { 108 | style { 109 | dangerous_inner_html: " 110 | body {{ 111 | background-color: var(--mdc-theme-background); 112 | margin: 1rem; 113 | font-family: Roboto; 114 | }} 115 | 116 | html {{ 117 | color-scheme: dark; 118 | }} 119 | " 120 | } 121 | MatTheme{ 122 | theme: Colors{ background: GRUVBOX_BG, on_surface: Some(GRUVBOX_FG), primary: GRUVBOX_GREEN, error: GRUVBOX_RED, ..Colors::DEFAULT_DARK }, 123 | dark_theme: None, 124 | } 125 | if error.is_empty() { 126 | rsx! { 127 | MatTextArea{ 128 | value: "{value}", 129 | label: "Clipboard", 130 | style: "width: 100%; height: calc(95svh - 2rem)", 131 | outlined: true, 132 | max_length: MAX_SIZE as u64, 133 | disabled: !fetched, 134 | char_counter: TextAreaCharCounter::External, 135 | _oninput: { 136 | to_owned![value, dont_update]; 137 | move |new_value| { 138 | value.set(new_value); 139 | dont_update.set(false); 140 | } 141 | } 142 | } 143 | } 144 | } else { 145 | rsx! { 146 | div { 147 | color: "var(--mdc-theme-error)", 148 | "{error}" 149 | } 150 | } 151 | } 152 | } 153 | } 154 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use std::{ 2 | sync::Arc, 3 | time::{Duration, Instant}, 4 | }; 5 | 6 | use actix::prelude::*; 7 | use actix_files::Files; 8 | use actix_web::{ 9 | middleware, 10 | web::{self, Data}, 11 | App, Error, HttpRequest, HttpResponse, HttpServer, Responder, 12 | }; 13 | use actix_web_actors::ws; 14 | use log::info; 15 | use tokio::sync::Mutex; 16 | 17 | struct AppState { 18 | clipboard_content: Arc>, 19 | connections: Arc>>>, 20 | } 21 | 22 | const fn parse_int(s: &str) -> usize { 23 | let mut bytes = s.as_bytes(); 24 | let mut val = 0; 25 | while let [byte, rest @ ..] = bytes { 26 | assert!(b'0' <= *byte && *byte <= b'9', "invalid digit"); 27 | val = val * 10 + (*byte - b'0') as usize; 28 | bytes = rest; 29 | } 30 | val 31 | } 32 | 33 | const MAX_SIZE: usize = match option_env!("WEBCLIP_MAX_SIZE") { 34 | Some(size) => parse_int(size), 35 | None => 100_000, 36 | }; 37 | 38 | const HEARTBEAT_INTERVAL: Duration = Duration::from_secs(5); 39 | const CLIENT_TIMEOUT: Duration = Duration::from_secs(10); 40 | 41 | struct ClipboardWebsocket { 42 | heartbeat: Instant, 43 | shared_data: web::Data, 44 | } 45 | 46 | #[derive(Message)] 47 | #[rtype(result = "()")] 48 | pub struct Message(pub String); 49 | 50 | impl ClipboardWebsocket { 51 | fn heartbeat(&self, ctx: &mut ::Context) { 52 | ctx.run_interval(HEARTBEAT_INTERVAL, |act, ctx| { 53 | if Instant::now().duration_since(act.heartbeat) > CLIENT_TIMEOUT { 54 | ctx.stop(); 55 | return; 56 | } 57 | ctx.ping(b""); 58 | }); 59 | } 60 | } 61 | 62 | impl Actor for ClipboardWebsocket { 63 | type Context = ws::WebsocketContext; 64 | 65 | fn started(&mut self, ctx: &mut Self::Context) { 66 | self.heartbeat(ctx); 67 | let connections = self.shared_data.connections.clone(); 68 | let addr = ctx.address().clone(); 69 | tokio::spawn(async move { 70 | connections.lock().await.push(addr); 71 | }); 72 | info!("Websocket connection started"); 73 | } 74 | 75 | fn stopped(&mut self, ctx: &mut Self::Context) { 76 | let connections = self.shared_data.connections.clone(); 77 | let addr = ctx.address().clone(); 78 | tokio::spawn(async move { 79 | let index = connections 80 | .lock() 81 | .await 82 | .iter() 83 | .position(|a| *a == addr) 84 | .unwrap(); 85 | connections.lock().await.remove(index); 86 | }); 87 | info!("Websocket connection stopped"); 88 | } 89 | } 90 | 91 | impl Handler for ClipboardWebsocket { 92 | type Result = (); 93 | 94 | fn handle(&mut self, msg: Message, ctx: &mut Self::Context) -> Self::Result { 95 | ctx.text(msg.0); 96 | } 97 | } 98 | 99 | impl StreamHandler> for ClipboardWebsocket { 100 | fn handle(&mut self, msg: Result, ctx: &mut Self::Context) { 101 | let msg = match msg { 102 | Err(_) => { 103 | ctx.stop(); 104 | return; 105 | } 106 | Ok(msg) => msg, 107 | }; 108 | 109 | match msg { 110 | ws::Message::Ping(msg) => { 111 | self.heartbeat = Instant::now(); 112 | ctx.pong(&msg); 113 | } 114 | ws::Message::Pong(_) => self.heartbeat = Instant::now(), 115 | ws::Message::Close(reason) => { 116 | ctx.close(reason); 117 | ctx.stop(); 118 | } 119 | ws::Message::Text(text) => { 120 | let data = self.shared_data.clipboard_content.clone(); 121 | let connections = self.shared_data.connections.clone(); 122 | let addr = ctx.address(); 123 | tokio::spawn(async move { 124 | *data.lock().await = text.to_string(); 125 | for connection in connections.lock().await.iter() { 126 | if connection != &addr { 127 | connection.do_send(Message(text.to_string())); 128 | } 129 | } 130 | }); 131 | } 132 | _ => (), 133 | } 134 | } 135 | } 136 | 137 | async fn ws_route( 138 | req: HttpRequest, 139 | stream: web::Payload, 140 | clipboard_content: Data, 141 | ) -> Result { 142 | ws::start( 143 | ClipboardWebsocket { 144 | heartbeat: Instant::now(), 145 | shared_data: clipboard_content.clone(), 146 | }, 147 | &req, 148 | stream, 149 | ) 150 | } 151 | 152 | #[actix_web::post("/clipboard")] 153 | async fn update_clipboard(data: Data, body: String) -> impl Responder { 154 | if body.len() > MAX_SIZE { 155 | return HttpResponse::BadRequest(); 156 | } 157 | *data.clipboard_content.lock().await = body.clone(); 158 | for connection in data.connections.lock().await.iter() { 159 | connection.do_send(Message(body.clone())); 160 | } 161 | HttpResponse::Ok() 162 | } 163 | 164 | #[actix_web::get("/clipboard")] 165 | async fn get_clipboard(data: Data) -> String { 166 | data.clipboard_content.lock().await.clone() 167 | } 168 | 169 | const DEF_LOG_LEVEL: &str = "info"; 170 | const ENV_LOG_LEVEL: &str = "RUST_LOG"; 171 | 172 | #[actix_web::main] 173 | async fn main() { 174 | if std::env::var(ENV_LOG_LEVEL).is_err() { 175 | std::env::set_var(ENV_LOG_LEVEL, DEF_LOG_LEVEL); 176 | } 177 | pretty_env_logger::init(); 178 | let clipboard_content = Data::new(AppState { 179 | clipboard_content: Arc::new(Mutex::new(String::new())), 180 | connections: Arc::new(Mutex::new(Vec::new())), 181 | }); 182 | HttpServer::new(move || { 183 | App::new() 184 | .wrap(middleware::Compress::default()) 185 | .service(get_clipboard) 186 | .service(update_clipboard) 187 | .service(web::resource("/ws").route(web::get().to(ws_route))) 188 | .service(Files::new("/", "./web/dist").index_file("index.html")) 189 | .app_data(clipboard_content.clone()) 190 | }) 191 | .bind(( 192 | dotenvy::var("WEBCLIP_BIND_ADDRESS").unwrap_or("0.0.0.0".to_string()), 193 | dotenvy::var("WEBCLIP_BIND_PORT") 194 | .map(|port| port.parse::().expect("Invalid port")) 195 | .unwrap_or(9257), 196 | )) 197 | .unwrap() 198 | .run() 199 | .await 200 | .unwrap(); 201 | } 202 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 4 4 | 5 | [[package]] 6 | name = "actix" 7 | version = "0.13.5" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "de7fa236829ba0841304542f7614c42b80fca007455315c45c785ccfa873a85b" 10 | dependencies = [ 11 | "actix-macros", 12 | "actix-rt", 13 | "actix_derive", 14 | "bitflags 2.9.0", 15 | "bytes", 16 | "crossbeam-channel", 17 | "futures-core", 18 | "futures-sink", 19 | "futures-task", 20 | "futures-util", 21 | "log", 22 | "once_cell", 23 | "parking_lot", 24 | "pin-project-lite", 25 | "smallvec", 26 | "tokio", 27 | "tokio-util", 28 | ] 29 | 30 | [[package]] 31 | name = "actix-codec" 32 | version = "0.5.2" 33 | source = "registry+https://github.com/rust-lang/crates.io-index" 34 | checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a" 35 | dependencies = [ 36 | "bitflags 2.9.0", 37 | "bytes", 38 | "futures-core", 39 | "futures-sink", 40 | "memchr", 41 | "pin-project-lite", 42 | "tokio", 43 | "tokio-util", 44 | "tracing", 45 | ] 46 | 47 | [[package]] 48 | name = "actix-files" 49 | version = "0.6.6" 50 | source = "registry+https://github.com/rust-lang/crates.io-index" 51 | checksum = "0773d59061dedb49a8aed04c67291b9d8cf2fe0b60130a381aab53c6dd86e9be" 52 | dependencies = [ 53 | "actix-http", 54 | "actix-service", 55 | "actix-utils", 56 | "actix-web", 57 | "bitflags 2.9.0", 58 | "bytes", 59 | "derive_more 0.99.19", 60 | "futures-core", 61 | "http-range", 62 | "log", 63 | "mime", 64 | "mime_guess", 65 | "percent-encoding", 66 | "pin-project-lite", 67 | "v_htmlescape", 68 | ] 69 | 70 | [[package]] 71 | name = "actix-http" 72 | version = "3.10.0" 73 | source = "registry+https://github.com/rust-lang/crates.io-index" 74 | checksum = "0fa882656b67966045e4152c634051e70346939fced7117d5f0b52146a7c74c9" 75 | dependencies = [ 76 | "actix-codec", 77 | "actix-rt", 78 | "actix-service", 79 | "actix-utils", 80 | "base64 0.22.1", 81 | "bitflags 2.9.0", 82 | "brotli", 83 | "bytes", 84 | "bytestring", 85 | "derive_more 2.0.1", 86 | "encoding_rs", 87 | "flate2", 88 | "foldhash", 89 | "futures-core", 90 | "h2", 91 | "http", 92 | "httparse", 93 | "httpdate", 94 | "itoa", 95 | "language-tags", 96 | "local-channel", 97 | "mime", 98 | "percent-encoding", 99 | "pin-project-lite", 100 | "rand 0.9.1", 101 | "sha1", 102 | "smallvec", 103 | "tokio", 104 | "tokio-util", 105 | "tracing", 106 | "zstd", 107 | ] 108 | 109 | [[package]] 110 | name = "actix-macros" 111 | version = "0.2.4" 112 | source = "registry+https://github.com/rust-lang/crates.io-index" 113 | checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" 114 | dependencies = [ 115 | "quote", 116 | "syn", 117 | ] 118 | 119 | [[package]] 120 | name = "actix-router" 121 | version = "0.5.3" 122 | source = "registry+https://github.com/rust-lang/crates.io-index" 123 | checksum = "13d324164c51f63867b57e73ba5936ea151b8a41a1d23d1031eeb9f70d0236f8" 124 | dependencies = [ 125 | "bytestring", 126 | "cfg-if", 127 | "http", 128 | "regex", 129 | "regex-lite", 130 | "serde", 131 | "tracing", 132 | ] 133 | 134 | [[package]] 135 | name = "actix-rt" 136 | version = "2.10.0" 137 | source = "registry+https://github.com/rust-lang/crates.io-index" 138 | checksum = "24eda4e2a6e042aa4e55ac438a2ae052d3b5da0ecf83d7411e1a368946925208" 139 | dependencies = [ 140 | "futures-core", 141 | "tokio", 142 | ] 143 | 144 | [[package]] 145 | name = "actix-server" 146 | version = "2.5.1" 147 | source = "registry+https://github.com/rust-lang/crates.io-index" 148 | checksum = "6398974fd4284f4768af07965701efbbb5fdc0616bff20cade1bb14b77675e24" 149 | dependencies = [ 150 | "actix-rt", 151 | "actix-service", 152 | "actix-utils", 153 | "futures-core", 154 | "futures-util", 155 | "mio", 156 | "socket2", 157 | "tokio", 158 | "tracing", 159 | ] 160 | 161 | [[package]] 162 | name = "actix-service" 163 | version = "2.0.3" 164 | source = "registry+https://github.com/rust-lang/crates.io-index" 165 | checksum = "9e46f36bf0e5af44bdc4bdb36fbbd421aa98c79a9bce724e1edeb3894e10dc7f" 166 | dependencies = [ 167 | "futures-core", 168 | "pin-project-lite", 169 | ] 170 | 171 | [[package]] 172 | name = "actix-utils" 173 | version = "3.0.1" 174 | source = "registry+https://github.com/rust-lang/crates.io-index" 175 | checksum = "88a1dcdff1466e3c2488e1cb5c36a71822750ad43839937f85d2f4d9f8b705d8" 176 | dependencies = [ 177 | "local-waker", 178 | "pin-project-lite", 179 | ] 180 | 181 | [[package]] 182 | name = "actix-web" 183 | version = "4.10.2" 184 | source = "registry+https://github.com/rust-lang/crates.io-index" 185 | checksum = "f2e3b15b3dc6c6ed996e4032389e9849d4ab002b1e92fbfe85b5f307d1479b4d" 186 | dependencies = [ 187 | "actix-codec", 188 | "actix-http", 189 | "actix-macros", 190 | "actix-router", 191 | "actix-rt", 192 | "actix-server", 193 | "actix-service", 194 | "actix-utils", 195 | "actix-web-codegen", 196 | "bytes", 197 | "bytestring", 198 | "cfg-if", 199 | "cookie", 200 | "derive_more 2.0.1", 201 | "encoding_rs", 202 | "foldhash", 203 | "futures-core", 204 | "futures-util", 205 | "impl-more", 206 | "itoa", 207 | "language-tags", 208 | "log", 209 | "mime", 210 | "once_cell", 211 | "pin-project-lite", 212 | "regex", 213 | "regex-lite", 214 | "serde", 215 | "serde_json", 216 | "serde_urlencoded", 217 | "smallvec", 218 | "socket2", 219 | "time", 220 | "tracing", 221 | "url", 222 | ] 223 | 224 | [[package]] 225 | name = "actix-web-actors" 226 | version = "4.3.1+deprecated" 227 | source = "registry+https://github.com/rust-lang/crates.io-index" 228 | checksum = "f98c5300b38fd004fe7d2a964f9a90813fdbe8a81fed500587e78b1b71c6f980" 229 | dependencies = [ 230 | "actix", 231 | "actix-codec", 232 | "actix-http", 233 | "actix-web", 234 | "bytes", 235 | "bytestring", 236 | "futures-core", 237 | "pin-project-lite", 238 | "tokio", 239 | "tokio-util", 240 | ] 241 | 242 | [[package]] 243 | name = "actix-web-codegen" 244 | version = "4.3.0" 245 | source = "registry+https://github.com/rust-lang/crates.io-index" 246 | checksum = "f591380e2e68490b5dfaf1dd1aa0ebe78d84ba7067078512b4ea6e4492d622b8" 247 | dependencies = [ 248 | "actix-router", 249 | "proc-macro2", 250 | "quote", 251 | "syn", 252 | ] 253 | 254 | [[package]] 255 | name = "actix_derive" 256 | version = "0.6.2" 257 | source = "registry+https://github.com/rust-lang/crates.io-index" 258 | checksum = "b6ac1e58cded18cb28ddc17143c4dea5345b3ad575e14f32f66e4054a56eb271" 259 | dependencies = [ 260 | "proc-macro2", 261 | "quote", 262 | "syn", 263 | ] 264 | 265 | [[package]] 266 | name = "addr2line" 267 | version = "0.24.2" 268 | source = "registry+https://github.com/rust-lang/crates.io-index" 269 | checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" 270 | dependencies = [ 271 | "gimli", 272 | ] 273 | 274 | [[package]] 275 | name = "adler2" 276 | version = "2.0.0" 277 | source = "registry+https://github.com/rust-lang/crates.io-index" 278 | checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" 279 | 280 | [[package]] 281 | name = "aho-corasick" 282 | version = "1.1.3" 283 | source = "registry+https://github.com/rust-lang/crates.io-index" 284 | checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 285 | dependencies = [ 286 | "memchr", 287 | ] 288 | 289 | [[package]] 290 | name = "alloc-no-stdlib" 291 | version = "2.0.4" 292 | source = "registry+https://github.com/rust-lang/crates.io-index" 293 | checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" 294 | 295 | [[package]] 296 | name = "alloc-stdlib" 297 | version = "0.2.2" 298 | source = "registry+https://github.com/rust-lang/crates.io-index" 299 | checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" 300 | dependencies = [ 301 | "alloc-no-stdlib", 302 | ] 303 | 304 | [[package]] 305 | name = "allocator-api2" 306 | version = "0.2.21" 307 | source = "registry+https://github.com/rust-lang/crates.io-index" 308 | checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" 309 | 310 | [[package]] 311 | name = "approx" 312 | version = "0.5.1" 313 | source = "registry+https://github.com/rust-lang/crates.io-index" 314 | checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" 315 | dependencies = [ 316 | "num-traits", 317 | ] 318 | 319 | [[package]] 320 | name = "async-channel" 321 | version = "1.9.0" 322 | source = "registry+https://github.com/rust-lang/crates.io-index" 323 | checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" 324 | dependencies = [ 325 | "concurrent-queue", 326 | "event-listener 2.5.3", 327 | "futures-core", 328 | ] 329 | 330 | [[package]] 331 | name = "async-channel" 332 | version = "2.3.1" 333 | source = "registry+https://github.com/rust-lang/crates.io-index" 334 | checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" 335 | dependencies = [ 336 | "concurrent-queue", 337 | "event-listener-strategy", 338 | "futures-core", 339 | "pin-project-lite", 340 | ] 341 | 342 | [[package]] 343 | name = "async-task" 344 | version = "4.7.1" 345 | source = "registry+https://github.com/rust-lang/crates.io-index" 346 | checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" 347 | 348 | [[package]] 349 | name = "async-trait" 350 | version = "0.1.88" 351 | source = "registry+https://github.com/rust-lang/crates.io-index" 352 | checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" 353 | dependencies = [ 354 | "proc-macro2", 355 | "quote", 356 | "syn", 357 | ] 358 | 359 | [[package]] 360 | name = "atomic-waker" 361 | version = "1.1.2" 362 | source = "registry+https://github.com/rust-lang/crates.io-index" 363 | checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 364 | 365 | [[package]] 366 | name = "autocfg" 367 | version = "1.4.0" 368 | source = "registry+https://github.com/rust-lang/crates.io-index" 369 | checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" 370 | 371 | [[package]] 372 | name = "backtrace" 373 | version = "0.3.74" 374 | source = "registry+https://github.com/rust-lang/crates.io-index" 375 | checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" 376 | dependencies = [ 377 | "addr2line", 378 | "cfg-if", 379 | "libc", 380 | "miniz_oxide", 381 | "object", 382 | "rustc-demangle", 383 | "windows-targets 0.52.6", 384 | ] 385 | 386 | [[package]] 387 | name = "base64" 388 | version = "0.21.7" 389 | source = "registry+https://github.com/rust-lang/crates.io-index" 390 | checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 391 | 392 | [[package]] 393 | name = "base64" 394 | version = "0.22.1" 395 | source = "registry+https://github.com/rust-lang/crates.io-index" 396 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 397 | 398 | [[package]] 399 | name = "bincode" 400 | version = "1.3.3" 401 | source = "registry+https://github.com/rust-lang/crates.io-index" 402 | checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" 403 | dependencies = [ 404 | "serde", 405 | ] 406 | 407 | [[package]] 408 | name = "bitflags" 409 | version = "1.3.2" 410 | source = "registry+https://github.com/rust-lang/crates.io-index" 411 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 412 | 413 | [[package]] 414 | name = "bitflags" 415 | version = "2.9.0" 416 | source = "registry+https://github.com/rust-lang/crates.io-index" 417 | checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" 418 | dependencies = [ 419 | "serde", 420 | ] 421 | 422 | [[package]] 423 | name = "block-buffer" 424 | version = "0.10.4" 425 | source = "registry+https://github.com/rust-lang/crates.io-index" 426 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 427 | dependencies = [ 428 | "generic-array", 429 | ] 430 | 431 | [[package]] 432 | name = "blocking" 433 | version = "1.6.1" 434 | source = "registry+https://github.com/rust-lang/crates.io-index" 435 | checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" 436 | dependencies = [ 437 | "async-channel 2.3.1", 438 | "async-task", 439 | "futures-io", 440 | "futures-lite", 441 | "piper", 442 | ] 443 | 444 | [[package]] 445 | name = "brotli" 446 | version = "7.0.0" 447 | source = "registry+https://github.com/rust-lang/crates.io-index" 448 | checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" 449 | dependencies = [ 450 | "alloc-no-stdlib", 451 | "alloc-stdlib", 452 | "brotli-decompressor", 453 | ] 454 | 455 | [[package]] 456 | name = "brotli-decompressor" 457 | version = "4.0.3" 458 | source = "registry+https://github.com/rust-lang/crates.io-index" 459 | checksum = "a334ef7c9e23abf0ce748e8cd309037da93e606ad52eb372e4ce327a0dcfbdfd" 460 | dependencies = [ 461 | "alloc-no-stdlib", 462 | "alloc-stdlib", 463 | ] 464 | 465 | [[package]] 466 | name = "bumpalo" 467 | version = "3.17.0" 468 | source = "registry+https://github.com/rust-lang/crates.io-index" 469 | checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" 470 | 471 | [[package]] 472 | name = "by_address" 473 | version = "1.2.1" 474 | source = "registry+https://github.com/rust-lang/crates.io-index" 475 | checksum = "64fa3c856b712db6612c019f14756e64e4bcea13337a6b33b696333a9eaa2d06" 476 | 477 | [[package]] 478 | name = "bytes" 479 | version = "1.10.1" 480 | source = "registry+https://github.com/rust-lang/crates.io-index" 481 | checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" 482 | 483 | [[package]] 484 | name = "bytestring" 485 | version = "1.4.0" 486 | source = "registry+https://github.com/rust-lang/crates.io-index" 487 | checksum = "e465647ae23b2823b0753f50decb2d5a86d2bb2cac04788fafd1f80e45378e5f" 488 | dependencies = [ 489 | "bytes", 490 | ] 491 | 492 | [[package]] 493 | name = "cc" 494 | version = "1.2.19" 495 | source = "registry+https://github.com/rust-lang/crates.io-index" 496 | checksum = "8e3a13707ac958681c13b39b458c073d0d9bc8a22cb1b2f4c8e55eb72c13f362" 497 | dependencies = [ 498 | "jobserver", 499 | "libc", 500 | "shlex", 501 | ] 502 | 503 | [[package]] 504 | name = "cfg-if" 505 | version = "1.0.0" 506 | source = "registry+https://github.com/rust-lang/crates.io-index" 507 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 508 | 509 | [[package]] 510 | name = "concurrent-queue" 511 | version = "2.5.0" 512 | source = "registry+https://github.com/rust-lang/crates.io-index" 513 | checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" 514 | dependencies = [ 515 | "crossbeam-utils", 516 | ] 517 | 518 | [[package]] 519 | name = "console_error_panic_hook" 520 | version = "0.1.7" 521 | source = "registry+https://github.com/rust-lang/crates.io-index" 522 | checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" 523 | dependencies = [ 524 | "cfg-if", 525 | "wasm-bindgen", 526 | ] 527 | 528 | [[package]] 529 | name = "constcat" 530 | version = "0.3.1" 531 | source = "registry+https://github.com/rust-lang/crates.io-index" 532 | checksum = "cd7e35aee659887cbfb97aaf227ac12cad1a9d7c71e55ff3376839ed4e282d08" 533 | 534 | [[package]] 535 | name = "convert_case" 536 | version = "0.4.0" 537 | source = "registry+https://github.com/rust-lang/crates.io-index" 538 | checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" 539 | 540 | [[package]] 541 | name = "cookie" 542 | version = "0.16.2" 543 | source = "registry+https://github.com/rust-lang/crates.io-index" 544 | checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" 545 | dependencies = [ 546 | "percent-encoding", 547 | "time", 548 | "version_check", 549 | ] 550 | 551 | [[package]] 552 | name = "core-foundation" 553 | version = "0.9.4" 554 | source = "registry+https://github.com/rust-lang/crates.io-index" 555 | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 556 | dependencies = [ 557 | "core-foundation-sys", 558 | "libc", 559 | ] 560 | 561 | [[package]] 562 | name = "core-foundation-sys" 563 | version = "0.8.7" 564 | source = "registry+https://github.com/rust-lang/crates.io-index" 565 | checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 566 | 567 | [[package]] 568 | name = "cpufeatures" 569 | version = "0.2.17" 570 | source = "registry+https://github.com/rust-lang/crates.io-index" 571 | checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" 572 | dependencies = [ 573 | "libc", 574 | ] 575 | 576 | [[package]] 577 | name = "crc32fast" 578 | version = "1.4.2" 579 | source = "registry+https://github.com/rust-lang/crates.io-index" 580 | checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" 581 | dependencies = [ 582 | "cfg-if", 583 | ] 584 | 585 | [[package]] 586 | name = "crossbeam-channel" 587 | version = "0.5.15" 588 | source = "registry+https://github.com/rust-lang/crates.io-index" 589 | checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" 590 | dependencies = [ 591 | "crossbeam-utils", 592 | ] 593 | 594 | [[package]] 595 | name = "crossbeam-utils" 596 | version = "0.8.21" 597 | source = "registry+https://github.com/rust-lang/crates.io-index" 598 | checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 599 | 600 | [[package]] 601 | name = "crypto-common" 602 | version = "0.1.6" 603 | source = "registry+https://github.com/rust-lang/crates.io-index" 604 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 605 | dependencies = [ 606 | "generic-array", 607 | "typenum", 608 | ] 609 | 610 | [[package]] 611 | name = "darling" 612 | version = "0.20.11" 613 | source = "registry+https://github.com/rust-lang/crates.io-index" 614 | checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" 615 | dependencies = [ 616 | "darling_core", 617 | "darling_macro", 618 | ] 619 | 620 | [[package]] 621 | name = "darling_core" 622 | version = "0.20.11" 623 | source = "registry+https://github.com/rust-lang/crates.io-index" 624 | checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" 625 | dependencies = [ 626 | "fnv", 627 | "ident_case", 628 | "proc-macro2", 629 | "quote", 630 | "syn", 631 | ] 632 | 633 | [[package]] 634 | name = "darling_macro" 635 | version = "0.20.11" 636 | source = "registry+https://github.com/rust-lang/crates.io-index" 637 | checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" 638 | dependencies = [ 639 | "darling_core", 640 | "quote", 641 | "syn", 642 | ] 643 | 644 | [[package]] 645 | name = "deranged" 646 | version = "0.4.0" 647 | source = "registry+https://github.com/rust-lang/crates.io-index" 648 | checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" 649 | dependencies = [ 650 | "powerfmt", 651 | ] 652 | 653 | [[package]] 654 | name = "derive_more" 655 | version = "0.99.19" 656 | source = "registry+https://github.com/rust-lang/crates.io-index" 657 | checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f" 658 | dependencies = [ 659 | "convert_case", 660 | "proc-macro2", 661 | "quote", 662 | "rustc_version", 663 | "syn", 664 | ] 665 | 666 | [[package]] 667 | name = "derive_more" 668 | version = "2.0.1" 669 | source = "registry+https://github.com/rust-lang/crates.io-index" 670 | checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" 671 | dependencies = [ 672 | "derive_more-impl", 673 | ] 674 | 675 | [[package]] 676 | name = "derive_more-impl" 677 | version = "2.0.1" 678 | source = "registry+https://github.com/rust-lang/crates.io-index" 679 | checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" 680 | dependencies = [ 681 | "proc-macro2", 682 | "quote", 683 | "syn", 684 | "unicode-xid", 685 | ] 686 | 687 | [[package]] 688 | name = "digest" 689 | version = "0.10.7" 690 | source = "registry+https://github.com/rust-lang/crates.io-index" 691 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 692 | dependencies = [ 693 | "block-buffer", 694 | "crypto-common", 695 | ] 696 | 697 | [[package]] 698 | name = "dioxus" 699 | version = "0.4.3" 700 | source = "registry+https://github.com/rust-lang/crates.io-index" 701 | checksum = "2d9e3b0725e520250bf23213f996d241cca29cea4360a9bf08a44e0033f8e569" 702 | dependencies = [ 703 | "dioxus-core", 704 | "dioxus-core-macro", 705 | "dioxus-hooks", 706 | "dioxus-hot-reload", 707 | "dioxus-html", 708 | "dioxus-rsx", 709 | ] 710 | 711 | [[package]] 712 | name = "dioxus-core" 713 | version = "0.4.3" 714 | source = "registry+https://github.com/rust-lang/crates.io-index" 715 | checksum = "0f33186615b2e90bceab24a195b3cfad4e0b4d91a33ec44a94845876bfb25c13" 716 | dependencies = [ 717 | "bumpalo", 718 | "futures-channel", 719 | "futures-util", 720 | "longest-increasing-subsequence", 721 | "rustc-hash", 722 | "serde", 723 | "slab", 724 | "smallbox", 725 | "tracing", 726 | ] 727 | 728 | [[package]] 729 | name = "dioxus-core-macro" 730 | version = "0.4.3" 731 | source = "registry+https://github.com/rust-lang/crates.io-index" 732 | checksum = "21afaccb28587aed0ba98856335912f5ce7052c0aafa74b213829a3b8bfd2345" 733 | dependencies = [ 734 | "constcat", 735 | "dioxus-core", 736 | "dioxus-rsx", 737 | "prettyplease", 738 | "proc-macro2", 739 | "quote", 740 | "syn", 741 | ] 742 | 743 | [[package]] 744 | name = "dioxus-debug-cell" 745 | version = "0.1.1" 746 | source = "registry+https://github.com/rust-lang/crates.io-index" 747 | checksum = "2ea539174bb236e0e7dc9c12b19b88eae3cb574dedbd0252a2d43ea7e6de13e2" 748 | 749 | [[package]] 750 | name = "dioxus-hooks" 751 | version = "0.4.3" 752 | source = "registry+https://github.com/rust-lang/crates.io-index" 753 | checksum = "5bb23ce82df4fb13e9ddaa01d1469f1f32d683dd4636204bd0a0eaf434b65946" 754 | dependencies = [ 755 | "dioxus-core", 756 | "dioxus-debug-cell", 757 | "futures-channel", 758 | "slab", 759 | "thiserror", 760 | "tracing", 761 | ] 762 | 763 | [[package]] 764 | name = "dioxus-hot-reload" 765 | version = "0.4.3" 766 | source = "registry+https://github.com/rust-lang/crates.io-index" 767 | checksum = "b7d8c9e89e866a6b84b8ad696f0ff2f6f6563d2235eb99acc6952f19e516cc09" 768 | dependencies = [ 769 | "dioxus-core", 770 | "dioxus-html", 771 | "dioxus-rsx", 772 | "interprocess-docfix", 773 | "serde", 774 | "serde_json", 775 | ] 776 | 777 | [[package]] 778 | name = "dioxus-html" 779 | version = "0.4.3" 780 | source = "registry+https://github.com/rust-lang/crates.io-index" 781 | checksum = "828a42a2d70688a2412a8538c8b5a5eceadf68f682f899dc4455a0169db39dfd" 782 | dependencies = [ 783 | "async-channel 1.9.0", 784 | "async-trait", 785 | "dioxus-core", 786 | "enumset", 787 | "euclid", 788 | "keyboard-types", 789 | "serde", 790 | "serde-value", 791 | "serde_json", 792 | "serde_repr", 793 | "wasm-bindgen", 794 | "web-sys", 795 | ] 796 | 797 | [[package]] 798 | name = "dioxus-interpreter-js" 799 | version = "0.4.3" 800 | source = "registry+https://github.com/rust-lang/crates.io-index" 801 | checksum = "d9a3115cf9f550a9af88de615c21a15a72dee44230602087dd7b0c5d01f46c37" 802 | dependencies = [ 803 | "js-sys", 804 | "sledgehammer_bindgen", 805 | "sledgehammer_utils", 806 | "wasm-bindgen", 807 | "web-sys", 808 | ] 809 | 810 | [[package]] 811 | name = "dioxus-rsx" 812 | version = "0.4.3" 813 | source = "registry+https://github.com/rust-lang/crates.io-index" 814 | checksum = "c974133c7c95497a486d587e40449927711430b308134b9cd374b8d35eceafb3" 815 | dependencies = [ 816 | "dioxus-core", 817 | "proc-macro2", 818 | "quote", 819 | "syn", 820 | ] 821 | 822 | [[package]] 823 | name = "dioxus-web" 824 | version = "0.4.3" 825 | source = "registry+https://github.com/rust-lang/crates.io-index" 826 | checksum = "fafaff75f50035078c2da45441ee61472fd0f335fa15b05170165eaf3479f0df" 827 | dependencies = [ 828 | "async-channel 1.9.0", 829 | "async-trait", 830 | "console_error_panic_hook", 831 | "dioxus-core", 832 | "dioxus-html", 833 | "dioxus-interpreter-js", 834 | "futures-channel", 835 | "futures-util", 836 | "js-sys", 837 | "rustc-hash", 838 | "serde", 839 | "serde-wasm-bindgen 0.5.0", 840 | "serde_json", 841 | "tracing", 842 | "wasm-bindgen", 843 | "wasm-bindgen-futures", 844 | "web-sys", 845 | ] 846 | 847 | [[package]] 848 | name = "displaydoc" 849 | version = "0.2.5" 850 | source = "registry+https://github.com/rust-lang/crates.io-index" 851 | checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 852 | dependencies = [ 853 | "proc-macro2", 854 | "quote", 855 | "syn", 856 | ] 857 | 858 | [[package]] 859 | name = "dotenvy" 860 | version = "0.15.7" 861 | source = "registry+https://github.com/rust-lang/crates.io-index" 862 | checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" 863 | 864 | [[package]] 865 | name = "encoding_rs" 866 | version = "0.8.35" 867 | source = "registry+https://github.com/rust-lang/crates.io-index" 868 | checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" 869 | dependencies = [ 870 | "cfg-if", 871 | ] 872 | 873 | [[package]] 874 | name = "enumset" 875 | version = "1.1.5" 876 | source = "registry+https://github.com/rust-lang/crates.io-index" 877 | checksum = "d07a4b049558765cef5f0c1a273c3fc57084d768b44d2f98127aef4cceb17293" 878 | dependencies = [ 879 | "enumset_derive", 880 | ] 881 | 882 | [[package]] 883 | name = "enumset_derive" 884 | version = "0.10.0" 885 | source = "registry+https://github.com/rust-lang/crates.io-index" 886 | checksum = "59c3b24c345d8c314966bdc1832f6c2635bfcce8e7cf363bd115987bba2ee242" 887 | dependencies = [ 888 | "darling", 889 | "proc-macro2", 890 | "quote", 891 | "syn", 892 | ] 893 | 894 | [[package]] 895 | name = "env_logger" 896 | version = "0.10.2" 897 | source = "registry+https://github.com/rust-lang/crates.io-index" 898 | checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" 899 | dependencies = [ 900 | "humantime", 901 | "is-terminal", 902 | "log", 903 | "regex", 904 | "termcolor", 905 | ] 906 | 907 | [[package]] 908 | name = "equivalent" 909 | version = "1.0.2" 910 | source = "registry+https://github.com/rust-lang/crates.io-index" 911 | checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 912 | 913 | [[package]] 914 | name = "errno" 915 | version = "0.3.11" 916 | source = "registry+https://github.com/rust-lang/crates.io-index" 917 | checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" 918 | dependencies = [ 919 | "libc", 920 | "windows-sys 0.59.0", 921 | ] 922 | 923 | [[package]] 924 | name = "euclid" 925 | version = "0.22.11" 926 | source = "registry+https://github.com/rust-lang/crates.io-index" 927 | checksum = "ad9cdb4b747e485a12abb0e6566612956c7a1bafa3bdb8d682c5b6d403589e48" 928 | dependencies = [ 929 | "num-traits", 930 | "serde", 931 | ] 932 | 933 | [[package]] 934 | name = "event-listener" 935 | version = "2.5.3" 936 | source = "registry+https://github.com/rust-lang/crates.io-index" 937 | checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" 938 | 939 | [[package]] 940 | name = "event-listener" 941 | version = "5.4.0" 942 | source = "registry+https://github.com/rust-lang/crates.io-index" 943 | checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" 944 | dependencies = [ 945 | "concurrent-queue", 946 | "parking", 947 | "pin-project-lite", 948 | ] 949 | 950 | [[package]] 951 | name = "event-listener-strategy" 952 | version = "0.5.4" 953 | source = "registry+https://github.com/rust-lang/crates.io-index" 954 | checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" 955 | dependencies = [ 956 | "event-listener 5.4.0", 957 | "pin-project-lite", 958 | ] 959 | 960 | [[package]] 961 | name = "fast-srgb8" 962 | version = "1.0.0" 963 | source = "registry+https://github.com/rust-lang/crates.io-index" 964 | checksum = "dd2e7510819d6fbf51a5545c8f922716ecfb14df168a3242f7d33e0239efe6a1" 965 | 966 | [[package]] 967 | name = "fastrand" 968 | version = "2.3.0" 969 | source = "registry+https://github.com/rust-lang/crates.io-index" 970 | checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 971 | 972 | [[package]] 973 | name = "flate2" 974 | version = "1.1.1" 975 | source = "registry+https://github.com/rust-lang/crates.io-index" 976 | checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" 977 | dependencies = [ 978 | "crc32fast", 979 | "miniz_oxide", 980 | ] 981 | 982 | [[package]] 983 | name = "fnv" 984 | version = "1.0.7" 985 | source = "registry+https://github.com/rust-lang/crates.io-index" 986 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 987 | 988 | [[package]] 989 | name = "foldhash" 990 | version = "0.1.5" 991 | source = "registry+https://github.com/rust-lang/crates.io-index" 992 | checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 993 | 994 | [[package]] 995 | name = "foreign-types" 996 | version = "0.3.2" 997 | source = "registry+https://github.com/rust-lang/crates.io-index" 998 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 999 | dependencies = [ 1000 | "foreign-types-shared", 1001 | ] 1002 | 1003 | [[package]] 1004 | name = "foreign-types-shared" 1005 | version = "0.1.1" 1006 | source = "registry+https://github.com/rust-lang/crates.io-index" 1007 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 1008 | 1009 | [[package]] 1010 | name = "form_urlencoded" 1011 | version = "1.2.1" 1012 | source = "registry+https://github.com/rust-lang/crates.io-index" 1013 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 1014 | dependencies = [ 1015 | "percent-encoding", 1016 | ] 1017 | 1018 | [[package]] 1019 | name = "futures" 1020 | version = "0.3.31" 1021 | source = "registry+https://github.com/rust-lang/crates.io-index" 1022 | checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" 1023 | dependencies = [ 1024 | "futures-channel", 1025 | "futures-core", 1026 | "futures-executor", 1027 | "futures-io", 1028 | "futures-sink", 1029 | "futures-task", 1030 | "futures-util", 1031 | ] 1032 | 1033 | [[package]] 1034 | name = "futures-channel" 1035 | version = "0.3.31" 1036 | source = "registry+https://github.com/rust-lang/crates.io-index" 1037 | checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 1038 | dependencies = [ 1039 | "futures-core", 1040 | "futures-sink", 1041 | ] 1042 | 1043 | [[package]] 1044 | name = "futures-core" 1045 | version = "0.3.31" 1046 | source = "registry+https://github.com/rust-lang/crates.io-index" 1047 | checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 1048 | 1049 | [[package]] 1050 | name = "futures-executor" 1051 | version = "0.3.31" 1052 | source = "registry+https://github.com/rust-lang/crates.io-index" 1053 | checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" 1054 | dependencies = [ 1055 | "futures-core", 1056 | "futures-task", 1057 | "futures-util", 1058 | ] 1059 | 1060 | [[package]] 1061 | name = "futures-io" 1062 | version = "0.3.31" 1063 | source = "registry+https://github.com/rust-lang/crates.io-index" 1064 | checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 1065 | 1066 | [[package]] 1067 | name = "futures-lite" 1068 | version = "2.6.0" 1069 | source = "registry+https://github.com/rust-lang/crates.io-index" 1070 | checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" 1071 | dependencies = [ 1072 | "futures-core", 1073 | "pin-project-lite", 1074 | ] 1075 | 1076 | [[package]] 1077 | name = "futures-macro" 1078 | version = "0.3.31" 1079 | source = "registry+https://github.com/rust-lang/crates.io-index" 1080 | checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" 1081 | dependencies = [ 1082 | "proc-macro2", 1083 | "quote", 1084 | "syn", 1085 | ] 1086 | 1087 | [[package]] 1088 | name = "futures-sink" 1089 | version = "0.3.31" 1090 | source = "registry+https://github.com/rust-lang/crates.io-index" 1091 | checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 1092 | 1093 | [[package]] 1094 | name = "futures-task" 1095 | version = "0.3.31" 1096 | source = "registry+https://github.com/rust-lang/crates.io-index" 1097 | checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 1098 | 1099 | [[package]] 1100 | name = "futures-util" 1101 | version = "0.3.31" 1102 | source = "registry+https://github.com/rust-lang/crates.io-index" 1103 | checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 1104 | dependencies = [ 1105 | "futures-channel", 1106 | "futures-core", 1107 | "futures-io", 1108 | "futures-macro", 1109 | "futures-sink", 1110 | "futures-task", 1111 | "memchr", 1112 | "pin-project-lite", 1113 | "pin-utils", 1114 | "slab", 1115 | ] 1116 | 1117 | [[package]] 1118 | name = "generic-array" 1119 | version = "0.14.7" 1120 | source = "registry+https://github.com/rust-lang/crates.io-index" 1121 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 1122 | dependencies = [ 1123 | "typenum", 1124 | "version_check", 1125 | ] 1126 | 1127 | [[package]] 1128 | name = "getrandom" 1129 | version = "0.2.15" 1130 | source = "registry+https://github.com/rust-lang/crates.io-index" 1131 | checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 1132 | dependencies = [ 1133 | "cfg-if", 1134 | "js-sys", 1135 | "libc", 1136 | "wasi 0.11.0+wasi-snapshot-preview1", 1137 | "wasm-bindgen", 1138 | ] 1139 | 1140 | [[package]] 1141 | name = "getrandom" 1142 | version = "0.3.2" 1143 | source = "registry+https://github.com/rust-lang/crates.io-index" 1144 | checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" 1145 | dependencies = [ 1146 | "cfg-if", 1147 | "libc", 1148 | "r-efi", 1149 | "wasi 0.14.2+wasi-0.2.4", 1150 | ] 1151 | 1152 | [[package]] 1153 | name = "gimli" 1154 | version = "0.31.1" 1155 | source = "registry+https://github.com/rust-lang/crates.io-index" 1156 | checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" 1157 | 1158 | [[package]] 1159 | name = "gloo" 1160 | version = "0.10.0" 1161 | source = "registry+https://github.com/rust-lang/crates.io-index" 1162 | checksum = "cd35526c28cc55c1db77aed6296de58677dbab863b118483a27845631d870249" 1163 | dependencies = [ 1164 | "gloo-console", 1165 | "gloo-dialogs", 1166 | "gloo-events", 1167 | "gloo-file", 1168 | "gloo-history", 1169 | "gloo-net", 1170 | "gloo-render", 1171 | "gloo-storage", 1172 | "gloo-timers", 1173 | "gloo-utils", 1174 | "gloo-worker", 1175 | ] 1176 | 1177 | [[package]] 1178 | name = "gloo-console" 1179 | version = "0.3.0" 1180 | source = "registry+https://github.com/rust-lang/crates.io-index" 1181 | checksum = "2a17868f56b4a24f677b17c8cb69958385102fa879418052d60b50bc1727e261" 1182 | dependencies = [ 1183 | "gloo-utils", 1184 | "js-sys", 1185 | "serde", 1186 | "wasm-bindgen", 1187 | "web-sys", 1188 | ] 1189 | 1190 | [[package]] 1191 | name = "gloo-dialogs" 1192 | version = "0.2.0" 1193 | source = "registry+https://github.com/rust-lang/crates.io-index" 1194 | checksum = "bf4748e10122b01435750ff530095b1217cf6546173459448b83913ebe7815df" 1195 | dependencies = [ 1196 | "wasm-bindgen", 1197 | "web-sys", 1198 | ] 1199 | 1200 | [[package]] 1201 | name = "gloo-events" 1202 | version = "0.2.0" 1203 | source = "registry+https://github.com/rust-lang/crates.io-index" 1204 | checksum = "27c26fb45f7c385ba980f5fa87ac677e363949e065a083722697ef1b2cc91e41" 1205 | dependencies = [ 1206 | "wasm-bindgen", 1207 | "web-sys", 1208 | ] 1209 | 1210 | [[package]] 1211 | name = "gloo-file" 1212 | version = "0.3.0" 1213 | source = "registry+https://github.com/rust-lang/crates.io-index" 1214 | checksum = "97563d71863fb2824b2e974e754a81d19c4a7ec47b09ced8a0e6656b6d54bd1f" 1215 | dependencies = [ 1216 | "gloo-events", 1217 | "js-sys", 1218 | "wasm-bindgen", 1219 | "web-sys", 1220 | ] 1221 | 1222 | [[package]] 1223 | name = "gloo-history" 1224 | version = "0.2.2" 1225 | source = "registry+https://github.com/rust-lang/crates.io-index" 1226 | checksum = "903f432be5ba34427eac5e16048ef65604a82061fe93789f2212afc73d8617d6" 1227 | dependencies = [ 1228 | "getrandom 0.2.15", 1229 | "gloo-events", 1230 | "gloo-utils", 1231 | "serde", 1232 | "serde-wasm-bindgen 0.6.5", 1233 | "serde_urlencoded", 1234 | "thiserror", 1235 | "wasm-bindgen", 1236 | "web-sys", 1237 | ] 1238 | 1239 | [[package]] 1240 | name = "gloo-net" 1241 | version = "0.4.0" 1242 | source = "registry+https://github.com/rust-lang/crates.io-index" 1243 | checksum = "8ac9e8288ae2c632fa9f8657ac70bfe38a1530f345282d7ba66a1f70b72b7dc4" 1244 | dependencies = [ 1245 | "futures-channel", 1246 | "futures-core", 1247 | "futures-sink", 1248 | "gloo-utils", 1249 | "http", 1250 | "js-sys", 1251 | "pin-project", 1252 | "serde", 1253 | "serde_json", 1254 | "thiserror", 1255 | "wasm-bindgen", 1256 | "wasm-bindgen-futures", 1257 | "web-sys", 1258 | ] 1259 | 1260 | [[package]] 1261 | name = "gloo-render" 1262 | version = "0.2.0" 1263 | source = "registry+https://github.com/rust-lang/crates.io-index" 1264 | checksum = "56008b6744713a8e8d98ac3dcb7d06543d5662358c9c805b4ce2167ad4649833" 1265 | dependencies = [ 1266 | "wasm-bindgen", 1267 | "web-sys", 1268 | ] 1269 | 1270 | [[package]] 1271 | name = "gloo-storage" 1272 | version = "0.3.0" 1273 | source = "registry+https://github.com/rust-lang/crates.io-index" 1274 | checksum = "fbc8031e8c92758af912f9bc08fbbadd3c6f3cfcbf6b64cdf3d6a81f0139277a" 1275 | dependencies = [ 1276 | "gloo-utils", 1277 | "js-sys", 1278 | "serde", 1279 | "serde_json", 1280 | "thiserror", 1281 | "wasm-bindgen", 1282 | "web-sys", 1283 | ] 1284 | 1285 | [[package]] 1286 | name = "gloo-timers" 1287 | version = "0.3.0" 1288 | source = "registry+https://github.com/rust-lang/crates.io-index" 1289 | checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" 1290 | dependencies = [ 1291 | "js-sys", 1292 | "wasm-bindgen", 1293 | ] 1294 | 1295 | [[package]] 1296 | name = "gloo-utils" 1297 | version = "0.2.0" 1298 | source = "registry+https://github.com/rust-lang/crates.io-index" 1299 | checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa" 1300 | dependencies = [ 1301 | "js-sys", 1302 | "serde", 1303 | "serde_json", 1304 | "wasm-bindgen", 1305 | "web-sys", 1306 | ] 1307 | 1308 | [[package]] 1309 | name = "gloo-worker" 1310 | version = "0.4.0" 1311 | source = "registry+https://github.com/rust-lang/crates.io-index" 1312 | checksum = "76495d3dd87de51da268fa3a593da118ab43eb7f8809e17eb38d3319b424e400" 1313 | dependencies = [ 1314 | "bincode", 1315 | "futures", 1316 | "gloo-utils", 1317 | "gloo-worker-macros", 1318 | "js-sys", 1319 | "pinned", 1320 | "serde", 1321 | "thiserror", 1322 | "wasm-bindgen", 1323 | "wasm-bindgen-futures", 1324 | "web-sys", 1325 | ] 1326 | 1327 | [[package]] 1328 | name = "gloo-worker-macros" 1329 | version = "0.1.0" 1330 | source = "registry+https://github.com/rust-lang/crates.io-index" 1331 | checksum = "956caa58d4857bc9941749d55e4bd3000032d8212762586fa5705632967140e7" 1332 | dependencies = [ 1333 | "proc-macro-crate", 1334 | "proc-macro2", 1335 | "quote", 1336 | "syn", 1337 | ] 1338 | 1339 | [[package]] 1340 | name = "h2" 1341 | version = "0.3.26" 1342 | source = "registry+https://github.com/rust-lang/crates.io-index" 1343 | checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" 1344 | dependencies = [ 1345 | "bytes", 1346 | "fnv", 1347 | "futures-core", 1348 | "futures-sink", 1349 | "futures-util", 1350 | "http", 1351 | "indexmap", 1352 | "slab", 1353 | "tokio", 1354 | "tokio-util", 1355 | "tracing", 1356 | ] 1357 | 1358 | [[package]] 1359 | name = "hashbrown" 1360 | version = "0.15.2" 1361 | source = "registry+https://github.com/rust-lang/crates.io-index" 1362 | checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" 1363 | dependencies = [ 1364 | "allocator-api2", 1365 | "equivalent", 1366 | "foldhash", 1367 | ] 1368 | 1369 | [[package]] 1370 | name = "hermit-abi" 1371 | version = "0.5.0" 1372 | source = "registry+https://github.com/rust-lang/crates.io-index" 1373 | checksum = "fbd780fe5cc30f81464441920d82ac8740e2e46b29a6fad543ddd075229ce37e" 1374 | 1375 | [[package]] 1376 | name = "http" 1377 | version = "0.2.12" 1378 | source = "registry+https://github.com/rust-lang/crates.io-index" 1379 | checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" 1380 | dependencies = [ 1381 | "bytes", 1382 | "fnv", 1383 | "itoa", 1384 | ] 1385 | 1386 | [[package]] 1387 | name = "http-body" 1388 | version = "0.4.6" 1389 | source = "registry+https://github.com/rust-lang/crates.io-index" 1390 | checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" 1391 | dependencies = [ 1392 | "bytes", 1393 | "http", 1394 | "pin-project-lite", 1395 | ] 1396 | 1397 | [[package]] 1398 | name = "http-range" 1399 | version = "0.1.5" 1400 | source = "registry+https://github.com/rust-lang/crates.io-index" 1401 | checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" 1402 | 1403 | [[package]] 1404 | name = "httparse" 1405 | version = "1.10.1" 1406 | source = "registry+https://github.com/rust-lang/crates.io-index" 1407 | checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" 1408 | 1409 | [[package]] 1410 | name = "httpdate" 1411 | version = "1.0.3" 1412 | source = "registry+https://github.com/rust-lang/crates.io-index" 1413 | checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 1414 | 1415 | [[package]] 1416 | name = "humantime" 1417 | version = "2.2.0" 1418 | source = "registry+https://github.com/rust-lang/crates.io-index" 1419 | checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" 1420 | 1421 | [[package]] 1422 | name = "hyper" 1423 | version = "0.14.32" 1424 | source = "registry+https://github.com/rust-lang/crates.io-index" 1425 | checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" 1426 | dependencies = [ 1427 | "bytes", 1428 | "futures-channel", 1429 | "futures-core", 1430 | "futures-util", 1431 | "h2", 1432 | "http", 1433 | "http-body", 1434 | "httparse", 1435 | "httpdate", 1436 | "itoa", 1437 | "pin-project-lite", 1438 | "socket2", 1439 | "tokio", 1440 | "tower-service", 1441 | "tracing", 1442 | "want", 1443 | ] 1444 | 1445 | [[package]] 1446 | name = "hyper-tls" 1447 | version = "0.5.0" 1448 | source = "registry+https://github.com/rust-lang/crates.io-index" 1449 | checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" 1450 | dependencies = [ 1451 | "bytes", 1452 | "hyper", 1453 | "native-tls", 1454 | "tokio", 1455 | "tokio-native-tls", 1456 | ] 1457 | 1458 | [[package]] 1459 | name = "icu_collections" 1460 | version = "1.5.0" 1461 | source = "registry+https://github.com/rust-lang/crates.io-index" 1462 | checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" 1463 | dependencies = [ 1464 | "displaydoc", 1465 | "yoke", 1466 | "zerofrom", 1467 | "zerovec", 1468 | ] 1469 | 1470 | [[package]] 1471 | name = "icu_locid" 1472 | version = "1.5.0" 1473 | source = "registry+https://github.com/rust-lang/crates.io-index" 1474 | checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" 1475 | dependencies = [ 1476 | "displaydoc", 1477 | "litemap", 1478 | "tinystr", 1479 | "writeable", 1480 | "zerovec", 1481 | ] 1482 | 1483 | [[package]] 1484 | name = "icu_locid_transform" 1485 | version = "1.5.0" 1486 | source = "registry+https://github.com/rust-lang/crates.io-index" 1487 | checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" 1488 | dependencies = [ 1489 | "displaydoc", 1490 | "icu_locid", 1491 | "icu_locid_transform_data", 1492 | "icu_provider", 1493 | "tinystr", 1494 | "zerovec", 1495 | ] 1496 | 1497 | [[package]] 1498 | name = "icu_locid_transform_data" 1499 | version = "1.5.1" 1500 | source = "registry+https://github.com/rust-lang/crates.io-index" 1501 | checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" 1502 | 1503 | [[package]] 1504 | name = "icu_normalizer" 1505 | version = "1.5.0" 1506 | source = "registry+https://github.com/rust-lang/crates.io-index" 1507 | checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" 1508 | dependencies = [ 1509 | "displaydoc", 1510 | "icu_collections", 1511 | "icu_normalizer_data", 1512 | "icu_properties", 1513 | "icu_provider", 1514 | "smallvec", 1515 | "utf16_iter", 1516 | "utf8_iter", 1517 | "write16", 1518 | "zerovec", 1519 | ] 1520 | 1521 | [[package]] 1522 | name = "icu_normalizer_data" 1523 | version = "1.5.1" 1524 | source = "registry+https://github.com/rust-lang/crates.io-index" 1525 | checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" 1526 | 1527 | [[package]] 1528 | name = "icu_properties" 1529 | version = "1.5.1" 1530 | source = "registry+https://github.com/rust-lang/crates.io-index" 1531 | checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" 1532 | dependencies = [ 1533 | "displaydoc", 1534 | "icu_collections", 1535 | "icu_locid_transform", 1536 | "icu_properties_data", 1537 | "icu_provider", 1538 | "tinystr", 1539 | "zerovec", 1540 | ] 1541 | 1542 | [[package]] 1543 | name = "icu_properties_data" 1544 | version = "1.5.1" 1545 | source = "registry+https://github.com/rust-lang/crates.io-index" 1546 | checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" 1547 | 1548 | [[package]] 1549 | name = "icu_provider" 1550 | version = "1.5.0" 1551 | source = "registry+https://github.com/rust-lang/crates.io-index" 1552 | checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" 1553 | dependencies = [ 1554 | "displaydoc", 1555 | "icu_locid", 1556 | "icu_provider_macros", 1557 | "stable_deref_trait", 1558 | "tinystr", 1559 | "writeable", 1560 | "yoke", 1561 | "zerofrom", 1562 | "zerovec", 1563 | ] 1564 | 1565 | [[package]] 1566 | name = "icu_provider_macros" 1567 | version = "1.5.0" 1568 | source = "registry+https://github.com/rust-lang/crates.io-index" 1569 | checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" 1570 | dependencies = [ 1571 | "proc-macro2", 1572 | "quote", 1573 | "syn", 1574 | ] 1575 | 1576 | [[package]] 1577 | name = "ident_case" 1578 | version = "1.0.1" 1579 | source = "registry+https://github.com/rust-lang/crates.io-index" 1580 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 1581 | 1582 | [[package]] 1583 | name = "idna" 1584 | version = "1.0.3" 1585 | source = "registry+https://github.com/rust-lang/crates.io-index" 1586 | checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" 1587 | dependencies = [ 1588 | "idna_adapter", 1589 | "smallvec", 1590 | "utf8_iter", 1591 | ] 1592 | 1593 | [[package]] 1594 | name = "idna_adapter" 1595 | version = "1.2.0" 1596 | source = "registry+https://github.com/rust-lang/crates.io-index" 1597 | checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" 1598 | dependencies = [ 1599 | "icu_normalizer", 1600 | "icu_properties", 1601 | ] 1602 | 1603 | [[package]] 1604 | name = "impl-more" 1605 | version = "0.1.9" 1606 | source = "registry+https://github.com/rust-lang/crates.io-index" 1607 | checksum = "e8a5a9a0ff0086c7a148acb942baaabeadf9504d10400b5a05645853729b9cd2" 1608 | 1609 | [[package]] 1610 | name = "indexmap" 1611 | version = "2.9.0" 1612 | source = "registry+https://github.com/rust-lang/crates.io-index" 1613 | checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" 1614 | dependencies = [ 1615 | "equivalent", 1616 | "hashbrown", 1617 | ] 1618 | 1619 | [[package]] 1620 | name = "interprocess-docfix" 1621 | version = "1.2.2" 1622 | source = "registry+https://github.com/rust-lang/crates.io-index" 1623 | checksum = "4b84ee245c606aeb0841649a9288e3eae8c61b853a8cd5c0e14450e96d53d28f" 1624 | dependencies = [ 1625 | "blocking", 1626 | "cfg-if", 1627 | "futures-core", 1628 | "futures-io", 1629 | "intmap", 1630 | "libc", 1631 | "once_cell", 1632 | "rustc_version", 1633 | "spinning", 1634 | "thiserror", 1635 | "to_method", 1636 | "winapi", 1637 | ] 1638 | 1639 | [[package]] 1640 | name = "intmap" 1641 | version = "0.7.1" 1642 | source = "registry+https://github.com/rust-lang/crates.io-index" 1643 | checksum = "ae52f28f45ac2bc96edb7714de995cffc174a395fb0abf5bff453587c980d7b9" 1644 | 1645 | [[package]] 1646 | name = "ipnet" 1647 | version = "2.11.0" 1648 | source = "registry+https://github.com/rust-lang/crates.io-index" 1649 | checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" 1650 | 1651 | [[package]] 1652 | name = "is-terminal" 1653 | version = "0.4.16" 1654 | source = "registry+https://github.com/rust-lang/crates.io-index" 1655 | checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" 1656 | dependencies = [ 1657 | "hermit-abi", 1658 | "libc", 1659 | "windows-sys 0.59.0", 1660 | ] 1661 | 1662 | [[package]] 1663 | name = "itoa" 1664 | version = "1.0.15" 1665 | source = "registry+https://github.com/rust-lang/crates.io-index" 1666 | checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 1667 | 1668 | [[package]] 1669 | name = "jobserver" 1670 | version = "0.1.33" 1671 | source = "registry+https://github.com/rust-lang/crates.io-index" 1672 | checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" 1673 | dependencies = [ 1674 | "getrandom 0.3.2", 1675 | "libc", 1676 | ] 1677 | 1678 | [[package]] 1679 | name = "js-sys" 1680 | version = "0.3.77" 1681 | source = "registry+https://github.com/rust-lang/crates.io-index" 1682 | checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" 1683 | dependencies = [ 1684 | "once_cell", 1685 | "wasm-bindgen", 1686 | ] 1687 | 1688 | [[package]] 1689 | name = "keyboard-types" 1690 | version = "0.7.0" 1691 | source = "registry+https://github.com/rust-lang/crates.io-index" 1692 | checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" 1693 | dependencies = [ 1694 | "bitflags 2.9.0", 1695 | "serde", 1696 | "unicode-segmentation", 1697 | ] 1698 | 1699 | [[package]] 1700 | name = "language-tags" 1701 | version = "0.3.2" 1702 | source = "registry+https://github.com/rust-lang/crates.io-index" 1703 | checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388" 1704 | 1705 | [[package]] 1706 | name = "libc" 1707 | version = "0.2.172" 1708 | source = "registry+https://github.com/rust-lang/crates.io-index" 1709 | checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" 1710 | 1711 | [[package]] 1712 | name = "linux-raw-sys" 1713 | version = "0.9.4" 1714 | source = "registry+https://github.com/rust-lang/crates.io-index" 1715 | checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" 1716 | 1717 | [[package]] 1718 | name = "litemap" 1719 | version = "0.7.5" 1720 | source = "registry+https://github.com/rust-lang/crates.io-index" 1721 | checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" 1722 | 1723 | [[package]] 1724 | name = "local-channel" 1725 | version = "0.1.5" 1726 | source = "registry+https://github.com/rust-lang/crates.io-index" 1727 | checksum = "b6cbc85e69b8df4b8bb8b89ec634e7189099cea8927a276b7384ce5488e53ec8" 1728 | dependencies = [ 1729 | "futures-core", 1730 | "futures-sink", 1731 | "local-waker", 1732 | ] 1733 | 1734 | [[package]] 1735 | name = "local-waker" 1736 | version = "0.1.4" 1737 | source = "registry+https://github.com/rust-lang/crates.io-index" 1738 | checksum = "4d873d7c67ce09b42110d801813efbc9364414e356be9935700d368351657487" 1739 | 1740 | [[package]] 1741 | name = "lock_api" 1742 | version = "0.4.12" 1743 | source = "registry+https://github.com/rust-lang/crates.io-index" 1744 | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 1745 | dependencies = [ 1746 | "autocfg", 1747 | "scopeguard", 1748 | ] 1749 | 1750 | [[package]] 1751 | name = "log" 1752 | version = "0.4.27" 1753 | source = "registry+https://github.com/rust-lang/crates.io-index" 1754 | checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" 1755 | 1756 | [[package]] 1757 | name = "longest-increasing-subsequence" 1758 | version = "0.1.0" 1759 | source = "registry+https://github.com/rust-lang/crates.io-index" 1760 | checksum = "b3bd0dd2cd90571056fdb71f6275fada10131182f84899f4b2a916e565d81d86" 1761 | 1762 | [[package]] 1763 | name = "lru" 1764 | version = "0.12.5" 1765 | source = "registry+https://github.com/rust-lang/crates.io-index" 1766 | checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" 1767 | dependencies = [ 1768 | "hashbrown", 1769 | ] 1770 | 1771 | [[package]] 1772 | name = "material-dioxus" 1773 | version = "0.0.3-dev" 1774 | source = "registry+https://github.com/rust-lang/crates.io-index" 1775 | checksum = "8ba556dab94ba1c01be3c7b1f24666f7ba02f51bf8d92d1f222f8c8bed607f40" 1776 | dependencies = [ 1777 | "dioxus", 1778 | "getrandom 0.2.15", 1779 | "gloo", 1780 | "js-sys", 1781 | "palette", 1782 | "paste", 1783 | "rand 0.8.5", 1784 | "wasm-bindgen", 1785 | "web-sys", 1786 | ] 1787 | 1788 | [[package]] 1789 | name = "memchr" 1790 | version = "2.7.4" 1791 | source = "registry+https://github.com/rust-lang/crates.io-index" 1792 | checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 1793 | 1794 | [[package]] 1795 | name = "mime" 1796 | version = "0.3.17" 1797 | source = "registry+https://github.com/rust-lang/crates.io-index" 1798 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 1799 | 1800 | [[package]] 1801 | name = "mime_guess" 1802 | version = "2.0.5" 1803 | source = "registry+https://github.com/rust-lang/crates.io-index" 1804 | checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" 1805 | dependencies = [ 1806 | "mime", 1807 | "unicase", 1808 | ] 1809 | 1810 | [[package]] 1811 | name = "miniz_oxide" 1812 | version = "0.8.8" 1813 | source = "registry+https://github.com/rust-lang/crates.io-index" 1814 | checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" 1815 | dependencies = [ 1816 | "adler2", 1817 | ] 1818 | 1819 | [[package]] 1820 | name = "mio" 1821 | version = "1.0.3" 1822 | source = "registry+https://github.com/rust-lang/crates.io-index" 1823 | checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" 1824 | dependencies = [ 1825 | "libc", 1826 | "log", 1827 | "wasi 0.11.0+wasi-snapshot-preview1", 1828 | "windows-sys 0.52.0", 1829 | ] 1830 | 1831 | [[package]] 1832 | name = "native-tls" 1833 | version = "0.2.14" 1834 | source = "registry+https://github.com/rust-lang/crates.io-index" 1835 | checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" 1836 | dependencies = [ 1837 | "libc", 1838 | "log", 1839 | "openssl", 1840 | "openssl-probe", 1841 | "openssl-sys", 1842 | "schannel", 1843 | "security-framework", 1844 | "security-framework-sys", 1845 | "tempfile", 1846 | ] 1847 | 1848 | [[package]] 1849 | name = "num-conv" 1850 | version = "0.1.0" 1851 | source = "registry+https://github.com/rust-lang/crates.io-index" 1852 | checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" 1853 | 1854 | [[package]] 1855 | name = "num-traits" 1856 | version = "0.2.19" 1857 | source = "registry+https://github.com/rust-lang/crates.io-index" 1858 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 1859 | dependencies = [ 1860 | "autocfg", 1861 | ] 1862 | 1863 | [[package]] 1864 | name = "object" 1865 | version = "0.36.7" 1866 | source = "registry+https://github.com/rust-lang/crates.io-index" 1867 | checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" 1868 | dependencies = [ 1869 | "memchr", 1870 | ] 1871 | 1872 | [[package]] 1873 | name = "once_cell" 1874 | version = "1.21.3" 1875 | source = "registry+https://github.com/rust-lang/crates.io-index" 1876 | checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 1877 | 1878 | [[package]] 1879 | name = "openssl" 1880 | version = "0.10.72" 1881 | source = "registry+https://github.com/rust-lang/crates.io-index" 1882 | checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" 1883 | dependencies = [ 1884 | "bitflags 2.9.0", 1885 | "cfg-if", 1886 | "foreign-types", 1887 | "libc", 1888 | "once_cell", 1889 | "openssl-macros", 1890 | "openssl-sys", 1891 | ] 1892 | 1893 | [[package]] 1894 | name = "openssl-macros" 1895 | version = "0.1.1" 1896 | source = "registry+https://github.com/rust-lang/crates.io-index" 1897 | checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" 1898 | dependencies = [ 1899 | "proc-macro2", 1900 | "quote", 1901 | "syn", 1902 | ] 1903 | 1904 | [[package]] 1905 | name = "openssl-probe" 1906 | version = "0.1.6" 1907 | source = "registry+https://github.com/rust-lang/crates.io-index" 1908 | checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" 1909 | 1910 | [[package]] 1911 | name = "openssl-sys" 1912 | version = "0.9.107" 1913 | source = "registry+https://github.com/rust-lang/crates.io-index" 1914 | checksum = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07" 1915 | dependencies = [ 1916 | "cc", 1917 | "libc", 1918 | "pkg-config", 1919 | "vcpkg", 1920 | ] 1921 | 1922 | [[package]] 1923 | name = "ordered-float" 1924 | version = "2.10.1" 1925 | source = "registry+https://github.com/rust-lang/crates.io-index" 1926 | checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" 1927 | dependencies = [ 1928 | "num-traits", 1929 | ] 1930 | 1931 | [[package]] 1932 | name = "palette" 1933 | version = "0.7.6" 1934 | source = "registry+https://github.com/rust-lang/crates.io-index" 1935 | checksum = "4cbf71184cc5ecc2e4e1baccdb21026c20e5fc3dcf63028a086131b3ab00b6e6" 1936 | dependencies = [ 1937 | "approx", 1938 | "fast-srgb8", 1939 | "palette_derive", 1940 | "phf", 1941 | ] 1942 | 1943 | [[package]] 1944 | name = "palette_derive" 1945 | version = "0.7.6" 1946 | source = "registry+https://github.com/rust-lang/crates.io-index" 1947 | checksum = "f5030daf005bface118c096f510ffb781fc28f9ab6a32ab224d8631be6851d30" 1948 | dependencies = [ 1949 | "by_address", 1950 | "proc-macro2", 1951 | "quote", 1952 | "syn", 1953 | ] 1954 | 1955 | [[package]] 1956 | name = "parking" 1957 | version = "2.2.1" 1958 | source = "registry+https://github.com/rust-lang/crates.io-index" 1959 | checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" 1960 | 1961 | [[package]] 1962 | name = "parking_lot" 1963 | version = "0.12.3" 1964 | source = "registry+https://github.com/rust-lang/crates.io-index" 1965 | checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" 1966 | dependencies = [ 1967 | "lock_api", 1968 | "parking_lot_core", 1969 | ] 1970 | 1971 | [[package]] 1972 | name = "parking_lot_core" 1973 | version = "0.9.10" 1974 | source = "registry+https://github.com/rust-lang/crates.io-index" 1975 | checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 1976 | dependencies = [ 1977 | "cfg-if", 1978 | "libc", 1979 | "redox_syscall", 1980 | "smallvec", 1981 | "windows-targets 0.52.6", 1982 | ] 1983 | 1984 | [[package]] 1985 | name = "paste" 1986 | version = "1.0.15" 1987 | source = "registry+https://github.com/rust-lang/crates.io-index" 1988 | checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 1989 | 1990 | [[package]] 1991 | name = "percent-encoding" 1992 | version = "2.3.1" 1993 | source = "registry+https://github.com/rust-lang/crates.io-index" 1994 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 1995 | 1996 | [[package]] 1997 | name = "phf" 1998 | version = "0.11.3" 1999 | source = "registry+https://github.com/rust-lang/crates.io-index" 2000 | checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" 2001 | dependencies = [ 2002 | "phf_macros", 2003 | "phf_shared", 2004 | ] 2005 | 2006 | [[package]] 2007 | name = "phf_generator" 2008 | version = "0.11.3" 2009 | source = "registry+https://github.com/rust-lang/crates.io-index" 2010 | checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" 2011 | dependencies = [ 2012 | "phf_shared", 2013 | "rand 0.8.5", 2014 | ] 2015 | 2016 | [[package]] 2017 | name = "phf_macros" 2018 | version = "0.11.3" 2019 | source = "registry+https://github.com/rust-lang/crates.io-index" 2020 | checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" 2021 | dependencies = [ 2022 | "phf_generator", 2023 | "phf_shared", 2024 | "proc-macro2", 2025 | "quote", 2026 | "syn", 2027 | ] 2028 | 2029 | [[package]] 2030 | name = "phf_shared" 2031 | version = "0.11.3" 2032 | source = "registry+https://github.com/rust-lang/crates.io-index" 2033 | checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" 2034 | dependencies = [ 2035 | "siphasher", 2036 | ] 2037 | 2038 | [[package]] 2039 | name = "pin-project" 2040 | version = "1.1.10" 2041 | source = "registry+https://github.com/rust-lang/crates.io-index" 2042 | checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" 2043 | dependencies = [ 2044 | "pin-project-internal", 2045 | ] 2046 | 2047 | [[package]] 2048 | name = "pin-project-internal" 2049 | version = "1.1.10" 2050 | source = "registry+https://github.com/rust-lang/crates.io-index" 2051 | checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" 2052 | dependencies = [ 2053 | "proc-macro2", 2054 | "quote", 2055 | "syn", 2056 | ] 2057 | 2058 | [[package]] 2059 | name = "pin-project-lite" 2060 | version = "0.2.16" 2061 | source = "registry+https://github.com/rust-lang/crates.io-index" 2062 | checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" 2063 | 2064 | [[package]] 2065 | name = "pin-utils" 2066 | version = "0.1.0" 2067 | source = "registry+https://github.com/rust-lang/crates.io-index" 2068 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 2069 | 2070 | [[package]] 2071 | name = "pinned" 2072 | version = "0.1.0" 2073 | source = "registry+https://github.com/rust-lang/crates.io-index" 2074 | checksum = "a829027bd95e54cfe13e3e258a1ae7b645960553fb82b75ff852c29688ee595b" 2075 | dependencies = [ 2076 | "futures", 2077 | "rustversion", 2078 | "thiserror", 2079 | ] 2080 | 2081 | [[package]] 2082 | name = "piper" 2083 | version = "0.2.4" 2084 | source = "registry+https://github.com/rust-lang/crates.io-index" 2085 | checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" 2086 | dependencies = [ 2087 | "atomic-waker", 2088 | "fastrand", 2089 | "futures-io", 2090 | ] 2091 | 2092 | [[package]] 2093 | name = "pkg-config" 2094 | version = "0.3.32" 2095 | source = "registry+https://github.com/rust-lang/crates.io-index" 2096 | checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" 2097 | 2098 | [[package]] 2099 | name = "powerfmt" 2100 | version = "0.2.0" 2101 | source = "registry+https://github.com/rust-lang/crates.io-index" 2102 | checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 2103 | 2104 | [[package]] 2105 | name = "ppv-lite86" 2106 | version = "0.2.21" 2107 | source = "registry+https://github.com/rust-lang/crates.io-index" 2108 | checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" 2109 | dependencies = [ 2110 | "zerocopy", 2111 | ] 2112 | 2113 | [[package]] 2114 | name = "pretty_env_logger" 2115 | version = "0.5.0" 2116 | source = "registry+https://github.com/rust-lang/crates.io-index" 2117 | checksum = "865724d4dbe39d9f3dd3b52b88d859d66bcb2d6a0acfd5ea68a65fb66d4bdc1c" 2118 | dependencies = [ 2119 | "env_logger", 2120 | "log", 2121 | ] 2122 | 2123 | [[package]] 2124 | name = "prettyplease" 2125 | version = "0.2.32" 2126 | source = "registry+https://github.com/rust-lang/crates.io-index" 2127 | checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6" 2128 | dependencies = [ 2129 | "proc-macro2", 2130 | "syn", 2131 | ] 2132 | 2133 | [[package]] 2134 | name = "proc-macro-crate" 2135 | version = "1.3.1" 2136 | source = "registry+https://github.com/rust-lang/crates.io-index" 2137 | checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" 2138 | dependencies = [ 2139 | "once_cell", 2140 | "toml_edit", 2141 | ] 2142 | 2143 | [[package]] 2144 | name = "proc-macro2" 2145 | version = "1.0.95" 2146 | source = "registry+https://github.com/rust-lang/crates.io-index" 2147 | checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" 2148 | dependencies = [ 2149 | "unicode-ident", 2150 | ] 2151 | 2152 | [[package]] 2153 | name = "quote" 2154 | version = "1.0.40" 2155 | source = "registry+https://github.com/rust-lang/crates.io-index" 2156 | checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" 2157 | dependencies = [ 2158 | "proc-macro2", 2159 | ] 2160 | 2161 | [[package]] 2162 | name = "r-efi" 2163 | version = "5.2.0" 2164 | source = "registry+https://github.com/rust-lang/crates.io-index" 2165 | checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" 2166 | 2167 | [[package]] 2168 | name = "rand" 2169 | version = "0.8.5" 2170 | source = "registry+https://github.com/rust-lang/crates.io-index" 2171 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 2172 | dependencies = [ 2173 | "libc", 2174 | "rand_chacha 0.3.1", 2175 | "rand_core 0.6.4", 2176 | ] 2177 | 2178 | [[package]] 2179 | name = "rand" 2180 | version = "0.9.1" 2181 | source = "registry+https://github.com/rust-lang/crates.io-index" 2182 | checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" 2183 | dependencies = [ 2184 | "rand_chacha 0.9.0", 2185 | "rand_core 0.9.3", 2186 | ] 2187 | 2188 | [[package]] 2189 | name = "rand_chacha" 2190 | version = "0.3.1" 2191 | source = "registry+https://github.com/rust-lang/crates.io-index" 2192 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 2193 | dependencies = [ 2194 | "ppv-lite86", 2195 | "rand_core 0.6.4", 2196 | ] 2197 | 2198 | [[package]] 2199 | name = "rand_chacha" 2200 | version = "0.9.0" 2201 | source = "registry+https://github.com/rust-lang/crates.io-index" 2202 | checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" 2203 | dependencies = [ 2204 | "ppv-lite86", 2205 | "rand_core 0.9.3", 2206 | ] 2207 | 2208 | [[package]] 2209 | name = "rand_core" 2210 | version = "0.6.4" 2211 | source = "registry+https://github.com/rust-lang/crates.io-index" 2212 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 2213 | dependencies = [ 2214 | "getrandom 0.2.15", 2215 | ] 2216 | 2217 | [[package]] 2218 | name = "rand_core" 2219 | version = "0.9.3" 2220 | source = "registry+https://github.com/rust-lang/crates.io-index" 2221 | checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" 2222 | dependencies = [ 2223 | "getrandom 0.3.2", 2224 | ] 2225 | 2226 | [[package]] 2227 | name = "redox_syscall" 2228 | version = "0.5.11" 2229 | source = "registry+https://github.com/rust-lang/crates.io-index" 2230 | checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" 2231 | dependencies = [ 2232 | "bitflags 2.9.0", 2233 | ] 2234 | 2235 | [[package]] 2236 | name = "regex" 2237 | version = "1.11.1" 2238 | source = "registry+https://github.com/rust-lang/crates.io-index" 2239 | checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" 2240 | dependencies = [ 2241 | "aho-corasick", 2242 | "memchr", 2243 | "regex-automata", 2244 | "regex-syntax", 2245 | ] 2246 | 2247 | [[package]] 2248 | name = "regex-automata" 2249 | version = "0.4.9" 2250 | source = "registry+https://github.com/rust-lang/crates.io-index" 2251 | checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" 2252 | dependencies = [ 2253 | "aho-corasick", 2254 | "memchr", 2255 | "regex-syntax", 2256 | ] 2257 | 2258 | [[package]] 2259 | name = "regex-lite" 2260 | version = "0.1.6" 2261 | source = "registry+https://github.com/rust-lang/crates.io-index" 2262 | checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" 2263 | 2264 | [[package]] 2265 | name = "regex-syntax" 2266 | version = "0.8.5" 2267 | source = "registry+https://github.com/rust-lang/crates.io-index" 2268 | checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" 2269 | 2270 | [[package]] 2271 | name = "reqwest" 2272 | version = "0.11.27" 2273 | source = "registry+https://github.com/rust-lang/crates.io-index" 2274 | checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" 2275 | dependencies = [ 2276 | "base64 0.21.7", 2277 | "bytes", 2278 | "encoding_rs", 2279 | "futures-core", 2280 | "futures-util", 2281 | "h2", 2282 | "http", 2283 | "http-body", 2284 | "hyper", 2285 | "hyper-tls", 2286 | "ipnet", 2287 | "js-sys", 2288 | "log", 2289 | "mime", 2290 | "native-tls", 2291 | "once_cell", 2292 | "percent-encoding", 2293 | "pin-project-lite", 2294 | "rustls-pemfile", 2295 | "serde", 2296 | "serde_json", 2297 | "serde_urlencoded", 2298 | "sync_wrapper", 2299 | "system-configuration", 2300 | "tokio", 2301 | "tokio-native-tls", 2302 | "tower-service", 2303 | "url", 2304 | "wasm-bindgen", 2305 | "wasm-bindgen-futures", 2306 | "web-sys", 2307 | "winreg", 2308 | ] 2309 | 2310 | [[package]] 2311 | name = "rustc-demangle" 2312 | version = "0.1.24" 2313 | source = "registry+https://github.com/rust-lang/crates.io-index" 2314 | checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" 2315 | 2316 | [[package]] 2317 | name = "rustc-hash" 2318 | version = "1.1.0" 2319 | source = "registry+https://github.com/rust-lang/crates.io-index" 2320 | checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" 2321 | 2322 | [[package]] 2323 | name = "rustc_version" 2324 | version = "0.4.1" 2325 | source = "registry+https://github.com/rust-lang/crates.io-index" 2326 | checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" 2327 | dependencies = [ 2328 | "semver", 2329 | ] 2330 | 2331 | [[package]] 2332 | name = "rustix" 2333 | version = "1.0.5" 2334 | source = "registry+https://github.com/rust-lang/crates.io-index" 2335 | checksum = "d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf" 2336 | dependencies = [ 2337 | "bitflags 2.9.0", 2338 | "errno", 2339 | "libc", 2340 | "linux-raw-sys", 2341 | "windows-sys 0.59.0", 2342 | ] 2343 | 2344 | [[package]] 2345 | name = "rustls-pemfile" 2346 | version = "1.0.4" 2347 | source = "registry+https://github.com/rust-lang/crates.io-index" 2348 | checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" 2349 | dependencies = [ 2350 | "base64 0.21.7", 2351 | ] 2352 | 2353 | [[package]] 2354 | name = "rustversion" 2355 | version = "1.0.20" 2356 | source = "registry+https://github.com/rust-lang/crates.io-index" 2357 | checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" 2358 | 2359 | [[package]] 2360 | name = "ryu" 2361 | version = "1.0.20" 2362 | source = "registry+https://github.com/rust-lang/crates.io-index" 2363 | checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 2364 | 2365 | [[package]] 2366 | name = "schannel" 2367 | version = "0.1.27" 2368 | source = "registry+https://github.com/rust-lang/crates.io-index" 2369 | checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" 2370 | dependencies = [ 2371 | "windows-sys 0.59.0", 2372 | ] 2373 | 2374 | [[package]] 2375 | name = "scopeguard" 2376 | version = "1.2.0" 2377 | source = "registry+https://github.com/rust-lang/crates.io-index" 2378 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 2379 | 2380 | [[package]] 2381 | name = "security-framework" 2382 | version = "2.11.1" 2383 | source = "registry+https://github.com/rust-lang/crates.io-index" 2384 | checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" 2385 | dependencies = [ 2386 | "bitflags 2.9.0", 2387 | "core-foundation", 2388 | "core-foundation-sys", 2389 | "libc", 2390 | "security-framework-sys", 2391 | ] 2392 | 2393 | [[package]] 2394 | name = "security-framework-sys" 2395 | version = "2.14.0" 2396 | source = "registry+https://github.com/rust-lang/crates.io-index" 2397 | checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" 2398 | dependencies = [ 2399 | "core-foundation-sys", 2400 | "libc", 2401 | ] 2402 | 2403 | [[package]] 2404 | name = "semver" 2405 | version = "1.0.26" 2406 | source = "registry+https://github.com/rust-lang/crates.io-index" 2407 | checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" 2408 | 2409 | [[package]] 2410 | name = "serde" 2411 | version = "1.0.219" 2412 | source = "registry+https://github.com/rust-lang/crates.io-index" 2413 | checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" 2414 | dependencies = [ 2415 | "serde_derive", 2416 | ] 2417 | 2418 | [[package]] 2419 | name = "serde-value" 2420 | version = "0.7.0" 2421 | source = "registry+https://github.com/rust-lang/crates.io-index" 2422 | checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" 2423 | dependencies = [ 2424 | "ordered-float", 2425 | "serde", 2426 | ] 2427 | 2428 | [[package]] 2429 | name = "serde-wasm-bindgen" 2430 | version = "0.5.0" 2431 | source = "registry+https://github.com/rust-lang/crates.io-index" 2432 | checksum = "f3b143e2833c57ab9ad3ea280d21fd34e285a42837aeb0ee301f4f41890fa00e" 2433 | dependencies = [ 2434 | "js-sys", 2435 | "serde", 2436 | "wasm-bindgen", 2437 | ] 2438 | 2439 | [[package]] 2440 | name = "serde-wasm-bindgen" 2441 | version = "0.6.5" 2442 | source = "registry+https://github.com/rust-lang/crates.io-index" 2443 | checksum = "8302e169f0eddcc139c70f139d19d6467353af16f9fce27e8c30158036a1e16b" 2444 | dependencies = [ 2445 | "js-sys", 2446 | "serde", 2447 | "wasm-bindgen", 2448 | ] 2449 | 2450 | [[package]] 2451 | name = "serde_derive" 2452 | version = "1.0.219" 2453 | source = "registry+https://github.com/rust-lang/crates.io-index" 2454 | checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" 2455 | dependencies = [ 2456 | "proc-macro2", 2457 | "quote", 2458 | "syn", 2459 | ] 2460 | 2461 | [[package]] 2462 | name = "serde_json" 2463 | version = "1.0.140" 2464 | source = "registry+https://github.com/rust-lang/crates.io-index" 2465 | checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" 2466 | dependencies = [ 2467 | "itoa", 2468 | "memchr", 2469 | "ryu", 2470 | "serde", 2471 | ] 2472 | 2473 | [[package]] 2474 | name = "serde_repr" 2475 | version = "0.1.20" 2476 | source = "registry+https://github.com/rust-lang/crates.io-index" 2477 | checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" 2478 | dependencies = [ 2479 | "proc-macro2", 2480 | "quote", 2481 | "syn", 2482 | ] 2483 | 2484 | [[package]] 2485 | name = "serde_urlencoded" 2486 | version = "0.7.1" 2487 | source = "registry+https://github.com/rust-lang/crates.io-index" 2488 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 2489 | dependencies = [ 2490 | "form_urlencoded", 2491 | "itoa", 2492 | "ryu", 2493 | "serde", 2494 | ] 2495 | 2496 | [[package]] 2497 | name = "sha1" 2498 | version = "0.10.6" 2499 | source = "registry+https://github.com/rust-lang/crates.io-index" 2500 | checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 2501 | dependencies = [ 2502 | "cfg-if", 2503 | "cpufeatures", 2504 | "digest", 2505 | ] 2506 | 2507 | [[package]] 2508 | name = "shlex" 2509 | version = "1.3.0" 2510 | source = "registry+https://github.com/rust-lang/crates.io-index" 2511 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 2512 | 2513 | [[package]] 2514 | name = "signal-hook-registry" 2515 | version = "1.4.5" 2516 | source = "registry+https://github.com/rust-lang/crates.io-index" 2517 | checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" 2518 | dependencies = [ 2519 | "libc", 2520 | ] 2521 | 2522 | [[package]] 2523 | name = "siphasher" 2524 | version = "1.0.1" 2525 | source = "registry+https://github.com/rust-lang/crates.io-index" 2526 | checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" 2527 | 2528 | [[package]] 2529 | name = "slab" 2530 | version = "0.4.9" 2531 | source = "registry+https://github.com/rust-lang/crates.io-index" 2532 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 2533 | dependencies = [ 2534 | "autocfg", 2535 | ] 2536 | 2537 | [[package]] 2538 | name = "sledgehammer_bindgen" 2539 | version = "0.2.4" 2540 | source = "registry+https://github.com/rust-lang/crates.io-index" 2541 | checksum = "c0bc2cf26c12673eee8674b19d56cec04e9b815704c71298eafac61f131f99d7" 2542 | dependencies = [ 2543 | "quote", 2544 | "syn", 2545 | ] 2546 | 2547 | [[package]] 2548 | name = "sledgehammer_utils" 2549 | version = "0.2.1" 2550 | source = "registry+https://github.com/rust-lang/crates.io-index" 2551 | checksum = "f20798defa0e9d4eff9ca451c7f84774c7378a9c3b5a40112cfa2b3eadb97ae2" 2552 | dependencies = [ 2553 | "lru", 2554 | "once_cell", 2555 | "rustc-hash", 2556 | ] 2557 | 2558 | [[package]] 2559 | name = "smallbox" 2560 | version = "0.8.6" 2561 | source = "registry+https://github.com/rust-lang/crates.io-index" 2562 | checksum = "43d92e0947c1c04c508c9fd39608a1557226141410fd33b5b314d73fa76508d3" 2563 | 2564 | [[package]] 2565 | name = "smallvec" 2566 | version = "1.15.0" 2567 | source = "registry+https://github.com/rust-lang/crates.io-index" 2568 | checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" 2569 | 2570 | [[package]] 2571 | name = "socket2" 2572 | version = "0.5.9" 2573 | source = "registry+https://github.com/rust-lang/crates.io-index" 2574 | checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" 2575 | dependencies = [ 2576 | "libc", 2577 | "windows-sys 0.52.0", 2578 | ] 2579 | 2580 | [[package]] 2581 | name = "spinning" 2582 | version = "0.1.0" 2583 | source = "registry+https://github.com/rust-lang/crates.io-index" 2584 | checksum = "2d4f0e86297cad2658d92a707320d87bf4e6ae1050287f51d19b67ef3f153a7b" 2585 | dependencies = [ 2586 | "lock_api", 2587 | ] 2588 | 2589 | [[package]] 2590 | name = "stable_deref_trait" 2591 | version = "1.2.0" 2592 | source = "registry+https://github.com/rust-lang/crates.io-index" 2593 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 2594 | 2595 | [[package]] 2596 | name = "syn" 2597 | version = "2.0.100" 2598 | source = "registry+https://github.com/rust-lang/crates.io-index" 2599 | checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" 2600 | dependencies = [ 2601 | "proc-macro2", 2602 | "quote", 2603 | "unicode-ident", 2604 | ] 2605 | 2606 | [[package]] 2607 | name = "sync_wrapper" 2608 | version = "0.1.2" 2609 | source = "registry+https://github.com/rust-lang/crates.io-index" 2610 | checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" 2611 | 2612 | [[package]] 2613 | name = "synstructure" 2614 | version = "0.13.1" 2615 | source = "registry+https://github.com/rust-lang/crates.io-index" 2616 | checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" 2617 | dependencies = [ 2618 | "proc-macro2", 2619 | "quote", 2620 | "syn", 2621 | ] 2622 | 2623 | [[package]] 2624 | name = "system-configuration" 2625 | version = "0.5.1" 2626 | source = "registry+https://github.com/rust-lang/crates.io-index" 2627 | checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" 2628 | dependencies = [ 2629 | "bitflags 1.3.2", 2630 | "core-foundation", 2631 | "system-configuration-sys", 2632 | ] 2633 | 2634 | [[package]] 2635 | name = "system-configuration-sys" 2636 | version = "0.5.0" 2637 | source = "registry+https://github.com/rust-lang/crates.io-index" 2638 | checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" 2639 | dependencies = [ 2640 | "core-foundation-sys", 2641 | "libc", 2642 | ] 2643 | 2644 | [[package]] 2645 | name = "tempfile" 2646 | version = "3.19.1" 2647 | source = "registry+https://github.com/rust-lang/crates.io-index" 2648 | checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" 2649 | dependencies = [ 2650 | "fastrand", 2651 | "getrandom 0.3.2", 2652 | "once_cell", 2653 | "rustix", 2654 | "windows-sys 0.59.0", 2655 | ] 2656 | 2657 | [[package]] 2658 | name = "termcolor" 2659 | version = "1.4.1" 2660 | source = "registry+https://github.com/rust-lang/crates.io-index" 2661 | checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" 2662 | dependencies = [ 2663 | "winapi-util", 2664 | ] 2665 | 2666 | [[package]] 2667 | name = "thiserror" 2668 | version = "1.0.69" 2669 | source = "registry+https://github.com/rust-lang/crates.io-index" 2670 | checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 2671 | dependencies = [ 2672 | "thiserror-impl", 2673 | ] 2674 | 2675 | [[package]] 2676 | name = "thiserror-impl" 2677 | version = "1.0.69" 2678 | source = "registry+https://github.com/rust-lang/crates.io-index" 2679 | checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 2680 | dependencies = [ 2681 | "proc-macro2", 2682 | "quote", 2683 | "syn", 2684 | ] 2685 | 2686 | [[package]] 2687 | name = "time" 2688 | version = "0.3.41" 2689 | source = "registry+https://github.com/rust-lang/crates.io-index" 2690 | checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" 2691 | dependencies = [ 2692 | "deranged", 2693 | "itoa", 2694 | "num-conv", 2695 | "powerfmt", 2696 | "serde", 2697 | "time-core", 2698 | "time-macros", 2699 | ] 2700 | 2701 | [[package]] 2702 | name = "time-core" 2703 | version = "0.1.4" 2704 | source = "registry+https://github.com/rust-lang/crates.io-index" 2705 | checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" 2706 | 2707 | [[package]] 2708 | name = "time-macros" 2709 | version = "0.2.22" 2710 | source = "registry+https://github.com/rust-lang/crates.io-index" 2711 | checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" 2712 | dependencies = [ 2713 | "num-conv", 2714 | "time-core", 2715 | ] 2716 | 2717 | [[package]] 2718 | name = "tinystr" 2719 | version = "0.7.6" 2720 | source = "registry+https://github.com/rust-lang/crates.io-index" 2721 | checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" 2722 | dependencies = [ 2723 | "displaydoc", 2724 | "zerovec", 2725 | ] 2726 | 2727 | [[package]] 2728 | name = "to_method" 2729 | version = "1.1.0" 2730 | source = "registry+https://github.com/rust-lang/crates.io-index" 2731 | checksum = "c7c4ceeeca15c8384bbc3e011dbd8fccb7f068a440b752b7d9b32ceb0ca0e2e8" 2732 | 2733 | [[package]] 2734 | name = "tokio" 2735 | version = "1.44.2" 2736 | source = "registry+https://github.com/rust-lang/crates.io-index" 2737 | checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48" 2738 | dependencies = [ 2739 | "backtrace", 2740 | "bytes", 2741 | "libc", 2742 | "mio", 2743 | "parking_lot", 2744 | "pin-project-lite", 2745 | "signal-hook-registry", 2746 | "socket2", 2747 | "tokio-macros", 2748 | "windows-sys 0.52.0", 2749 | ] 2750 | 2751 | [[package]] 2752 | name = "tokio-macros" 2753 | version = "2.5.0" 2754 | source = "registry+https://github.com/rust-lang/crates.io-index" 2755 | checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" 2756 | dependencies = [ 2757 | "proc-macro2", 2758 | "quote", 2759 | "syn", 2760 | ] 2761 | 2762 | [[package]] 2763 | name = "tokio-native-tls" 2764 | version = "0.3.1" 2765 | source = "registry+https://github.com/rust-lang/crates.io-index" 2766 | checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" 2767 | dependencies = [ 2768 | "native-tls", 2769 | "tokio", 2770 | ] 2771 | 2772 | [[package]] 2773 | name = "tokio-util" 2774 | version = "0.7.14" 2775 | source = "registry+https://github.com/rust-lang/crates.io-index" 2776 | checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" 2777 | dependencies = [ 2778 | "bytes", 2779 | "futures-core", 2780 | "futures-sink", 2781 | "pin-project-lite", 2782 | "tokio", 2783 | ] 2784 | 2785 | [[package]] 2786 | name = "toml_datetime" 2787 | version = "0.6.8" 2788 | source = "registry+https://github.com/rust-lang/crates.io-index" 2789 | checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" 2790 | 2791 | [[package]] 2792 | name = "toml_edit" 2793 | version = "0.19.15" 2794 | source = "registry+https://github.com/rust-lang/crates.io-index" 2795 | checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" 2796 | dependencies = [ 2797 | "indexmap", 2798 | "toml_datetime", 2799 | "winnow", 2800 | ] 2801 | 2802 | [[package]] 2803 | name = "tower-service" 2804 | version = "0.3.3" 2805 | source = "registry+https://github.com/rust-lang/crates.io-index" 2806 | checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" 2807 | 2808 | [[package]] 2809 | name = "tracing" 2810 | version = "0.1.41" 2811 | source = "registry+https://github.com/rust-lang/crates.io-index" 2812 | checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" 2813 | dependencies = [ 2814 | "log", 2815 | "pin-project-lite", 2816 | "tracing-attributes", 2817 | "tracing-core", 2818 | ] 2819 | 2820 | [[package]] 2821 | name = "tracing-attributes" 2822 | version = "0.1.28" 2823 | source = "registry+https://github.com/rust-lang/crates.io-index" 2824 | checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" 2825 | dependencies = [ 2826 | "proc-macro2", 2827 | "quote", 2828 | "syn", 2829 | ] 2830 | 2831 | [[package]] 2832 | name = "tracing-core" 2833 | version = "0.1.33" 2834 | source = "registry+https://github.com/rust-lang/crates.io-index" 2835 | checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" 2836 | dependencies = [ 2837 | "once_cell", 2838 | ] 2839 | 2840 | [[package]] 2841 | name = "try-lock" 2842 | version = "0.2.5" 2843 | source = "registry+https://github.com/rust-lang/crates.io-index" 2844 | checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 2845 | 2846 | [[package]] 2847 | name = "typenum" 2848 | version = "1.18.0" 2849 | source = "registry+https://github.com/rust-lang/crates.io-index" 2850 | checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" 2851 | 2852 | [[package]] 2853 | name = "unicase" 2854 | version = "2.8.1" 2855 | source = "registry+https://github.com/rust-lang/crates.io-index" 2856 | checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" 2857 | 2858 | [[package]] 2859 | name = "unicode-ident" 2860 | version = "1.0.18" 2861 | source = "registry+https://github.com/rust-lang/crates.io-index" 2862 | checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" 2863 | 2864 | [[package]] 2865 | name = "unicode-segmentation" 2866 | version = "1.12.0" 2867 | source = "registry+https://github.com/rust-lang/crates.io-index" 2868 | checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 2869 | 2870 | [[package]] 2871 | name = "unicode-xid" 2872 | version = "0.2.6" 2873 | source = "registry+https://github.com/rust-lang/crates.io-index" 2874 | checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" 2875 | 2876 | [[package]] 2877 | name = "url" 2878 | version = "2.5.4" 2879 | source = "registry+https://github.com/rust-lang/crates.io-index" 2880 | checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" 2881 | dependencies = [ 2882 | "form_urlencoded", 2883 | "idna", 2884 | "percent-encoding", 2885 | ] 2886 | 2887 | [[package]] 2888 | name = "utf16_iter" 2889 | version = "1.0.5" 2890 | source = "registry+https://github.com/rust-lang/crates.io-index" 2891 | checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" 2892 | 2893 | [[package]] 2894 | name = "utf8_iter" 2895 | version = "1.0.4" 2896 | source = "registry+https://github.com/rust-lang/crates.io-index" 2897 | checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 2898 | 2899 | [[package]] 2900 | name = "v_htmlescape" 2901 | version = "0.15.8" 2902 | source = "registry+https://github.com/rust-lang/crates.io-index" 2903 | checksum = "4e8257fbc510f0a46eb602c10215901938b5c2a7d5e70fc11483b1d3c9b5b18c" 2904 | 2905 | [[package]] 2906 | name = "vcpkg" 2907 | version = "0.2.15" 2908 | source = "registry+https://github.com/rust-lang/crates.io-index" 2909 | checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 2910 | 2911 | [[package]] 2912 | name = "version_check" 2913 | version = "0.9.5" 2914 | source = "registry+https://github.com/rust-lang/crates.io-index" 2915 | checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 2916 | 2917 | [[package]] 2918 | name = "want" 2919 | version = "0.3.1" 2920 | source = "registry+https://github.com/rust-lang/crates.io-index" 2921 | checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 2922 | dependencies = [ 2923 | "try-lock", 2924 | ] 2925 | 2926 | [[package]] 2927 | name = "wasi" 2928 | version = "0.11.0+wasi-snapshot-preview1" 2929 | source = "registry+https://github.com/rust-lang/crates.io-index" 2930 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 2931 | 2932 | [[package]] 2933 | name = "wasi" 2934 | version = "0.14.2+wasi-0.2.4" 2935 | source = "registry+https://github.com/rust-lang/crates.io-index" 2936 | checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" 2937 | dependencies = [ 2938 | "wit-bindgen-rt", 2939 | ] 2940 | 2941 | [[package]] 2942 | name = "wasm-bindgen" 2943 | version = "0.2.100" 2944 | source = "registry+https://github.com/rust-lang/crates.io-index" 2945 | checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" 2946 | dependencies = [ 2947 | "cfg-if", 2948 | "once_cell", 2949 | "rustversion", 2950 | "wasm-bindgen-macro", 2951 | ] 2952 | 2953 | [[package]] 2954 | name = "wasm-bindgen-backend" 2955 | version = "0.2.100" 2956 | source = "registry+https://github.com/rust-lang/crates.io-index" 2957 | checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" 2958 | dependencies = [ 2959 | "bumpalo", 2960 | "log", 2961 | "proc-macro2", 2962 | "quote", 2963 | "syn", 2964 | "wasm-bindgen-shared", 2965 | ] 2966 | 2967 | [[package]] 2968 | name = "wasm-bindgen-futures" 2969 | version = "0.4.50" 2970 | source = "registry+https://github.com/rust-lang/crates.io-index" 2971 | checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" 2972 | dependencies = [ 2973 | "cfg-if", 2974 | "js-sys", 2975 | "once_cell", 2976 | "wasm-bindgen", 2977 | "web-sys", 2978 | ] 2979 | 2980 | [[package]] 2981 | name = "wasm-bindgen-macro" 2982 | version = "0.2.100" 2983 | source = "registry+https://github.com/rust-lang/crates.io-index" 2984 | checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" 2985 | dependencies = [ 2986 | "quote", 2987 | "wasm-bindgen-macro-support", 2988 | ] 2989 | 2990 | [[package]] 2991 | name = "wasm-bindgen-macro-support" 2992 | version = "0.2.100" 2993 | source = "registry+https://github.com/rust-lang/crates.io-index" 2994 | checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" 2995 | dependencies = [ 2996 | "proc-macro2", 2997 | "quote", 2998 | "syn", 2999 | "wasm-bindgen-backend", 3000 | "wasm-bindgen-shared", 3001 | ] 3002 | 3003 | [[package]] 3004 | name = "wasm-bindgen-shared" 3005 | version = "0.2.100" 3006 | source = "registry+https://github.com/rust-lang/crates.io-index" 3007 | checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" 3008 | dependencies = [ 3009 | "unicode-ident", 3010 | ] 3011 | 3012 | [[package]] 3013 | name = "web" 3014 | version = "0.1.0" 3015 | dependencies = [ 3016 | "dioxus", 3017 | "dioxus-web", 3018 | "futures", 3019 | "gloo-net", 3020 | "material-dioxus", 3021 | "once_cell", 3022 | "reqwest", 3023 | "tokio", 3024 | "web-sys", 3025 | ] 3026 | 3027 | [[package]] 3028 | name = "web-sys" 3029 | version = "0.3.77" 3030 | source = "registry+https://github.com/rust-lang/crates.io-index" 3031 | checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" 3032 | dependencies = [ 3033 | "js-sys", 3034 | "wasm-bindgen", 3035 | ] 3036 | 3037 | [[package]] 3038 | name = "webclip" 3039 | version = "0.1.0" 3040 | dependencies = [ 3041 | "actix", 3042 | "actix-files", 3043 | "actix-web", 3044 | "actix-web-actors", 3045 | "dotenvy", 3046 | "log", 3047 | "pretty_env_logger", 3048 | "tokio", 3049 | ] 3050 | 3051 | [[package]] 3052 | name = "winapi" 3053 | version = "0.3.9" 3054 | source = "registry+https://github.com/rust-lang/crates.io-index" 3055 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 3056 | dependencies = [ 3057 | "winapi-i686-pc-windows-gnu", 3058 | "winapi-x86_64-pc-windows-gnu", 3059 | ] 3060 | 3061 | [[package]] 3062 | name = "winapi-i686-pc-windows-gnu" 3063 | version = "0.4.0" 3064 | source = "registry+https://github.com/rust-lang/crates.io-index" 3065 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 3066 | 3067 | [[package]] 3068 | name = "winapi-util" 3069 | version = "0.1.9" 3070 | source = "registry+https://github.com/rust-lang/crates.io-index" 3071 | checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" 3072 | dependencies = [ 3073 | "windows-sys 0.59.0", 3074 | ] 3075 | 3076 | [[package]] 3077 | name = "winapi-x86_64-pc-windows-gnu" 3078 | version = "0.4.0" 3079 | source = "registry+https://github.com/rust-lang/crates.io-index" 3080 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 3081 | 3082 | [[package]] 3083 | name = "windows-sys" 3084 | version = "0.48.0" 3085 | source = "registry+https://github.com/rust-lang/crates.io-index" 3086 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 3087 | dependencies = [ 3088 | "windows-targets 0.48.5", 3089 | ] 3090 | 3091 | [[package]] 3092 | name = "windows-sys" 3093 | version = "0.52.0" 3094 | source = "registry+https://github.com/rust-lang/crates.io-index" 3095 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 3096 | dependencies = [ 3097 | "windows-targets 0.52.6", 3098 | ] 3099 | 3100 | [[package]] 3101 | name = "windows-sys" 3102 | version = "0.59.0" 3103 | source = "registry+https://github.com/rust-lang/crates.io-index" 3104 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 3105 | dependencies = [ 3106 | "windows-targets 0.52.6", 3107 | ] 3108 | 3109 | [[package]] 3110 | name = "windows-targets" 3111 | version = "0.48.5" 3112 | source = "registry+https://github.com/rust-lang/crates.io-index" 3113 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 3114 | dependencies = [ 3115 | "windows_aarch64_gnullvm 0.48.5", 3116 | "windows_aarch64_msvc 0.48.5", 3117 | "windows_i686_gnu 0.48.5", 3118 | "windows_i686_msvc 0.48.5", 3119 | "windows_x86_64_gnu 0.48.5", 3120 | "windows_x86_64_gnullvm 0.48.5", 3121 | "windows_x86_64_msvc 0.48.5", 3122 | ] 3123 | 3124 | [[package]] 3125 | name = "windows-targets" 3126 | version = "0.52.6" 3127 | source = "registry+https://github.com/rust-lang/crates.io-index" 3128 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 3129 | dependencies = [ 3130 | "windows_aarch64_gnullvm 0.52.6", 3131 | "windows_aarch64_msvc 0.52.6", 3132 | "windows_i686_gnu 0.52.6", 3133 | "windows_i686_gnullvm", 3134 | "windows_i686_msvc 0.52.6", 3135 | "windows_x86_64_gnu 0.52.6", 3136 | "windows_x86_64_gnullvm 0.52.6", 3137 | "windows_x86_64_msvc 0.52.6", 3138 | ] 3139 | 3140 | [[package]] 3141 | name = "windows_aarch64_gnullvm" 3142 | version = "0.48.5" 3143 | source = "registry+https://github.com/rust-lang/crates.io-index" 3144 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 3145 | 3146 | [[package]] 3147 | name = "windows_aarch64_gnullvm" 3148 | version = "0.52.6" 3149 | source = "registry+https://github.com/rust-lang/crates.io-index" 3150 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 3151 | 3152 | [[package]] 3153 | name = "windows_aarch64_msvc" 3154 | version = "0.48.5" 3155 | source = "registry+https://github.com/rust-lang/crates.io-index" 3156 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 3157 | 3158 | [[package]] 3159 | name = "windows_aarch64_msvc" 3160 | version = "0.52.6" 3161 | source = "registry+https://github.com/rust-lang/crates.io-index" 3162 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 3163 | 3164 | [[package]] 3165 | name = "windows_i686_gnu" 3166 | version = "0.48.5" 3167 | source = "registry+https://github.com/rust-lang/crates.io-index" 3168 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 3169 | 3170 | [[package]] 3171 | name = "windows_i686_gnu" 3172 | version = "0.52.6" 3173 | source = "registry+https://github.com/rust-lang/crates.io-index" 3174 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 3175 | 3176 | [[package]] 3177 | name = "windows_i686_gnullvm" 3178 | version = "0.52.6" 3179 | source = "registry+https://github.com/rust-lang/crates.io-index" 3180 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 3181 | 3182 | [[package]] 3183 | name = "windows_i686_msvc" 3184 | version = "0.48.5" 3185 | source = "registry+https://github.com/rust-lang/crates.io-index" 3186 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 3187 | 3188 | [[package]] 3189 | name = "windows_i686_msvc" 3190 | version = "0.52.6" 3191 | source = "registry+https://github.com/rust-lang/crates.io-index" 3192 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 3193 | 3194 | [[package]] 3195 | name = "windows_x86_64_gnu" 3196 | version = "0.48.5" 3197 | source = "registry+https://github.com/rust-lang/crates.io-index" 3198 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 3199 | 3200 | [[package]] 3201 | name = "windows_x86_64_gnu" 3202 | version = "0.52.6" 3203 | source = "registry+https://github.com/rust-lang/crates.io-index" 3204 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 3205 | 3206 | [[package]] 3207 | name = "windows_x86_64_gnullvm" 3208 | version = "0.48.5" 3209 | source = "registry+https://github.com/rust-lang/crates.io-index" 3210 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 3211 | 3212 | [[package]] 3213 | name = "windows_x86_64_gnullvm" 3214 | version = "0.52.6" 3215 | source = "registry+https://github.com/rust-lang/crates.io-index" 3216 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 3217 | 3218 | [[package]] 3219 | name = "windows_x86_64_msvc" 3220 | version = "0.48.5" 3221 | source = "registry+https://github.com/rust-lang/crates.io-index" 3222 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 3223 | 3224 | [[package]] 3225 | name = "windows_x86_64_msvc" 3226 | version = "0.52.6" 3227 | source = "registry+https://github.com/rust-lang/crates.io-index" 3228 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 3229 | 3230 | [[package]] 3231 | name = "winnow" 3232 | version = "0.5.40" 3233 | source = "registry+https://github.com/rust-lang/crates.io-index" 3234 | checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" 3235 | dependencies = [ 3236 | "memchr", 3237 | ] 3238 | 3239 | [[package]] 3240 | name = "winreg" 3241 | version = "0.50.0" 3242 | source = "registry+https://github.com/rust-lang/crates.io-index" 3243 | checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" 3244 | dependencies = [ 3245 | "cfg-if", 3246 | "windows-sys 0.48.0", 3247 | ] 3248 | 3249 | [[package]] 3250 | name = "wit-bindgen-rt" 3251 | version = "0.39.0" 3252 | source = "registry+https://github.com/rust-lang/crates.io-index" 3253 | checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" 3254 | dependencies = [ 3255 | "bitflags 2.9.0", 3256 | ] 3257 | 3258 | [[package]] 3259 | name = "write16" 3260 | version = "1.0.0" 3261 | source = "registry+https://github.com/rust-lang/crates.io-index" 3262 | checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" 3263 | 3264 | [[package]] 3265 | name = "writeable" 3266 | version = "0.5.5" 3267 | source = "registry+https://github.com/rust-lang/crates.io-index" 3268 | checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" 3269 | 3270 | [[package]] 3271 | name = "yoke" 3272 | version = "0.7.5" 3273 | source = "registry+https://github.com/rust-lang/crates.io-index" 3274 | checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" 3275 | dependencies = [ 3276 | "serde", 3277 | "stable_deref_trait", 3278 | "yoke-derive", 3279 | "zerofrom", 3280 | ] 3281 | 3282 | [[package]] 3283 | name = "yoke-derive" 3284 | version = "0.7.5" 3285 | source = "registry+https://github.com/rust-lang/crates.io-index" 3286 | checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" 3287 | dependencies = [ 3288 | "proc-macro2", 3289 | "quote", 3290 | "syn", 3291 | "synstructure", 3292 | ] 3293 | 3294 | [[package]] 3295 | name = "zerocopy" 3296 | version = "0.8.24" 3297 | source = "registry+https://github.com/rust-lang/crates.io-index" 3298 | checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" 3299 | dependencies = [ 3300 | "zerocopy-derive", 3301 | ] 3302 | 3303 | [[package]] 3304 | name = "zerocopy-derive" 3305 | version = "0.8.24" 3306 | source = "registry+https://github.com/rust-lang/crates.io-index" 3307 | checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" 3308 | dependencies = [ 3309 | "proc-macro2", 3310 | "quote", 3311 | "syn", 3312 | ] 3313 | 3314 | [[package]] 3315 | name = "zerofrom" 3316 | version = "0.1.6" 3317 | source = "registry+https://github.com/rust-lang/crates.io-index" 3318 | checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" 3319 | dependencies = [ 3320 | "zerofrom-derive", 3321 | ] 3322 | 3323 | [[package]] 3324 | name = "zerofrom-derive" 3325 | version = "0.1.6" 3326 | source = "registry+https://github.com/rust-lang/crates.io-index" 3327 | checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" 3328 | dependencies = [ 3329 | "proc-macro2", 3330 | "quote", 3331 | "syn", 3332 | "synstructure", 3333 | ] 3334 | 3335 | [[package]] 3336 | name = "zerovec" 3337 | version = "0.10.4" 3338 | source = "registry+https://github.com/rust-lang/crates.io-index" 3339 | checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" 3340 | dependencies = [ 3341 | "yoke", 3342 | "zerofrom", 3343 | "zerovec-derive", 3344 | ] 3345 | 3346 | [[package]] 3347 | name = "zerovec-derive" 3348 | version = "0.10.3" 3349 | source = "registry+https://github.com/rust-lang/crates.io-index" 3350 | checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" 3351 | dependencies = [ 3352 | "proc-macro2", 3353 | "quote", 3354 | "syn", 3355 | ] 3356 | 3357 | [[package]] 3358 | name = "zstd" 3359 | version = "0.13.3" 3360 | source = "registry+https://github.com/rust-lang/crates.io-index" 3361 | checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" 3362 | dependencies = [ 3363 | "zstd-safe", 3364 | ] 3365 | 3366 | [[package]] 3367 | name = "zstd-safe" 3368 | version = "7.2.4" 3369 | source = "registry+https://github.com/rust-lang/crates.io-index" 3370 | checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" 3371 | dependencies = [ 3372 | "zstd-sys", 3373 | ] 3374 | 3375 | [[package]] 3376 | name = "zstd-sys" 3377 | version = "2.0.15+zstd.1.5.7" 3378 | source = "registry+https://github.com/rust-lang/crates.io-index" 3379 | checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" 3380 | dependencies = [ 3381 | "cc", 3382 | "pkg-config", 3383 | ] 3384 | --------------------------------------------------------------------------------