├── .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 |
--------------------------------------------------------------------------------