├── .gitignore ├── rust-toolchain.toml ├── rustfmt.toml ├── .github └── workflows │ ├── typos.yml │ └── ci.yml ├── examples ├── server.rs └── client.rs ├── Cargo.toml ├── taplo.toml ├── src └── lib.rs ├── README.md ├── LICENSE └── Cargo.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /wip 3 | 4 | .editorconfig 5 | .idea 6 | -------------------------------------------------------------------------------- /rust-toolchain.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | channel = "1.82.0" 3 | components = ["cargo", "rustfmt", "clippy", "rust-analyzer"] 4 | -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- 1 | comment_width = 120 2 | edition = "2021" 3 | format_code_in_doc_comments = true 4 | group_imports = "StdExternalCrate" 5 | imports_granularity = "Item" 6 | normalize_comments = true 7 | overflow_delimited_expr = true 8 | reorder_imports = true 9 | style_edition = "2024" 10 | trailing_comma = "Vertical" 11 | where_single_line = true 12 | wrap_comments = true 13 | -------------------------------------------------------------------------------- /.github/workflows/typos.yml: -------------------------------------------------------------------------------- 1 | name: Typos Check 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | pull_request: 7 | branches: [ main ] 8 | 9 | concurrency: 10 | group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }} 11 | cancel-in-progress: true 12 | 13 | env: 14 | RUST_BACKTRACE: 1 15 | 16 | jobs: 17 | typos-check: 18 | name: typos check 19 | runs-on: ubuntu-latest 20 | timeout-minutes: 10 21 | env: 22 | FORCE_COLOR: 1 23 | steps: 24 | - uses: actions/checkout@v4 25 | - uses: crate-ci/typos@master 26 | -------------------------------------------------------------------------------- /examples/server.rs: -------------------------------------------------------------------------------- 1 | use fastrace::collector::Config; 2 | use fastrace::collector::ConsoleReporter; 3 | 4 | #[tokio::main] 5 | async fn main() { 6 | // Initialize fastrace with the console reporter. 7 | fastrace::set_reporter(ConsoleReporter, Config::default()); 8 | 9 | let app = axum::Router::new() 10 | .route("/ping", axum::routing::get(ping)) 11 | // Add a the FastraceLayer to routes. 12 | // The layer extracts trace context from incoming requests. 13 | .layer(fastrace_axum::FastraceLayer); 14 | 15 | let listener = tokio::net::TcpListener::bind("0.0.0.0:8080").await.unwrap(); 16 | axum::serve(listener, app).await.unwrap(); 17 | } 18 | 19 | #[fastrace::trace] 20 | async fn ping() -> &'static str { 21 | "pong" 22 | } 23 | -------------------------------------------------------------------------------- /examples/client.rs: -------------------------------------------------------------------------------- 1 | use fastrace::collector::Config; 2 | use fastrace::collector::ConsoleReporter; 3 | 4 | #[tokio::main] 5 | async fn main() { 6 | // Configurate fastrace reporter. 7 | fastrace::set_reporter(ConsoleReporter, Config::default()); 8 | 9 | let app = axum::Router::new() 10 | .route("/ping", axum::routing::get(ping)) 11 | // Add a the FastraceLayer to routes. 12 | // The layer extracts trace context from incoming requests. 13 | .layer(fastrace_axum::FastraceLayer); 14 | 15 | let listener = tokio::net::TcpListener::bind("0.0.0.0:8080").await.unwrap(); 16 | axum::serve(listener, app).await.unwrap(); 17 | } 18 | 19 | #[fastrace::trace] // Trace individual handlers. 20 | async fn ping() -> &'static str { 21 | "pong" 22 | } 23 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "fastrace-reqwest" 3 | version = "0.2.0" 4 | 5 | categories = ["development-tools::debugging"] 6 | description = "A reqwest util for propagating trace context for fastrace" 7 | keywords = ["tracing", "fastrace", "reqwest", "traceparent", "propagation"] 8 | readme = "README.md" 9 | 10 | edition = "2021" 11 | license = "Apache-2.0" 12 | repository = "https://github.com/fast/fastrace-reqwest" 13 | rust-version = "1.82" 14 | 15 | [dependencies] 16 | fastrace = { version = "0.7" } 17 | reqwest = { version = "0.12", default-features = false } 18 | 19 | [dev-dependencies] 20 | axum = { version = "0.8" } 21 | fastrace = { version = "0.7", features = ["enable"] } 22 | fastrace-axum = { git = "https://github.com/fast/fastrace-axum" } 23 | tokio = { version = "1.44", features = ["full"] } 24 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | pull_request: 7 | branches: [ main ] 8 | 9 | env: 10 | CARGO_TERM_COLOR: always 11 | 12 | jobs: 13 | build: 14 | runs-on: ${{ matrix.os }} 15 | strategy: 16 | fail-fast: false 17 | matrix: 18 | os: [ windows-latest, macos-latest, ubuntu-latest ] 19 | rust: [ "1.82.0", "stable", "nightly" ] 20 | env: 21 | RUST_BACKTRACE: 1 22 | steps: 23 | - uses: actions/checkout@v4 24 | - name: Delete rust-toolchain.toml 25 | run: rm rust-toolchain.toml 26 | - uses: Swatinem/rust-cache@v2 27 | - uses: dtolnay/rust-toolchain@master 28 | with: 29 | toolchain: ${{ matrix.rust }} 30 | components: rustfmt, clippy 31 | 32 | - name: Check format 33 | if: ${{ matrix.rust == 'nightly' }} 34 | run: cargo +${{ matrix.rust }} fmt --all -- --check 35 | 36 | - name: Check clippy 37 | if: ${{ matrix.rust == 'nightly' }} 38 | run: cargo +${{ matrix.rust }} clippy --all-targets --all-features -- --deny warnings 39 | 40 | - name: Build 41 | run: cargo +${{ matrix.rust }} build --workspace --all-targets 42 | 43 | - name: Check examples 44 | run: | 45 | cargo +${{ matrix.rust }} check --example client 46 | # cargo +${{ matrix.rust }} check --example server 47 | -------------------------------------------------------------------------------- /taplo.toml: -------------------------------------------------------------------------------- 1 | include = ["Cargo.toml", "**/*.toml"] 2 | 3 | [formatting] 4 | # Align consecutive entries vertically. 5 | align_entries = false 6 | # Append trailing commas for multi-line arrays. 7 | array_trailing_comma = true 8 | # Expand arrays to multiple lines that exceed the maximum column width. 9 | array_auto_expand = true 10 | # Collapse arrays that don't exceed the maximum column width and don't contain comments. 11 | array_auto_collapse = true 12 | # Omit white space padding from single-line arrays 13 | compact_arrays = true 14 | # Omit white space padding from the start and end of inline tables. 15 | compact_inline_tables = false 16 | # Maximum column width in characters, affects array expansion and collapse, this doesn't take whitespace into account. 17 | # Note that this is not set in stone, and works on a best-effort basis. 18 | column_width = 80 19 | # Indent based on tables and arrays of tables and their subtables, subtables out of order are not indented. 20 | indent_tables = false 21 | # The substring that is used for indentation, should be tabs or spaces (but technically can be anything). 22 | indent_string = ' ' 23 | # Add trailing newline at the end of the file if not present. 24 | trailing_newline = true 25 | # Alphabetically reorder keys that are not separated by empty lines. 26 | reorder_keys = true 27 | # Maximum amount of allowed consecutive blank lines. This does not affect the whitespace at the end of the document, as it is always stripped. 28 | allowed_blank_lines = 1 29 | # Use CRLF for line endings. 30 | crlf = false 31 | -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- 1 | #![doc = include_str!("../README.md")] 2 | 3 | use fastrace::prelude::*; 4 | use reqwest::header::HeaderMap; 5 | use reqwest::header::HeaderName; 6 | use reqwest::header::HeaderValue; 7 | 8 | /// The standard [W3C Trace Context](https://www.w3.org/TR/trace-context/) header name for passing trace information. 9 | /// 10 | /// This is the header key used to propagate trace context between services according to 11 | /// the W3C Trace Context specification. 12 | pub const TRACEPARENT_HEADER: &str = "traceparent"; 13 | 14 | /// Creates a [`HeaderMap`] containing trace context headers from the current span context. 15 | /// 16 | /// This function extracts the current span context from the local thread and formats it 17 | /// according to the W3C Trace Context specification as a `traceparent` header. 18 | /// 19 | /// # Returns 20 | /// 21 | /// * If a local parent span exists: A `HeaderMap` containing the traceparent header with the 22 | /// encoded span context 23 | /// * If no local parent span exists: An empty `HeaderMap` 24 | /// 25 | /// # Example 26 | /// 27 | /// ``` 28 | /// use fastrace::prelude::*; 29 | /// use fastrace_reqwest::traceparent_headers; 30 | /// use reqwest::Client; 31 | /// 32 | /// #[fastrace::trace] 33 | /// async fn send_request() { 34 | /// let client = Client::new(); 35 | /// let response = client 36 | /// .get("https://example.com") 37 | /// .headers(traceparent_headers()) 38 | /// .send() 39 | /// .await 40 | /// .unwrap(); 41 | /// } 42 | /// ``` 43 | pub fn traceparent_headers() -> HeaderMap { 44 | if let Some(parent) = SpanContext::current_local_parent() { 45 | let key = HeaderName::from_static(TRACEPARENT_HEADER); 46 | let value = HeaderValue::from_str(&parent.encode_w3c_traceparent()).unwrap(); 47 | [(key, value)].into_iter().collect() 48 | } else { 49 | HeaderMap::new() 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # fastrace-reqwest 2 | 3 | [![Crates.io](https://img.shields.io/crates/v/fastrace-reqwest.svg?style=flat-square&logo=rust)](https://crates.io/crates/fastrace-reqwest) 4 | [![Documentation](https://img.shields.io/docsrs/fastrace-reqwest?style=flat-square&logo=rust)](https://docs.rs/fastrace-reqwest/) 5 | [![MSRV 1.82.0](https://img.shields.io/badge/MSRV-1.82.0-green?style=flat-square&logo=rust)](https://www.whatrustisit.com) 6 | [![CI Status](https://img.shields.io/github/actions/workflow/status/fast/fastrace-reqwest/ci.yml?style=flat-square&logo=github)](https://github.com/fast/fastrace-reqwest/actions) 7 | [![License](https://img.shields.io/crates/l/fastrace-reqwest?style=flat-square)](https://github.com/fast/fastrace-reqwest/blob/main/LICENSE) 8 | 9 | Distributed tracing integration for [reqwest](https://crates.io/crates/reqwest) HTTP client requests with [fastrace](https://crates.io/crates/fastrace). 10 | 11 | ## Overview 12 | 13 | `fastrace-reqwest` provides automatic trace context propagation for HTTP requests made with the `reqwest` client. It works seamlessly with the `fastrace` library to extract and inject trace context into outgoing requests. 14 | 15 | ## What is Context Propagation? 16 | 17 | Context propagation is a fundamental concept in distributed tracing that enables the correlation of operations spanning multiple services. When a request moves from one service to another, trace context information needs to be passed along, ensuring that all operations are recorded as part of the same trace. 18 | 19 | `fastrace-reqwest` implements the [W3C Trace Context](https://www.w3.org/TR/trace-context/) standard for propagating trace information between services. This ensures compatibility with other tracing systems that follow the same standard. 20 | 21 | ## Features 22 | 23 | - 🔄 **Automatic Context Propagation**: Automatically inject trace context into outgoing HTTP requests. 24 | - 🌉 **Seamless Integration**: Works seamlessly with the `fastrace` library for complete distributed tracing. 25 | - 📊 **Full Compatibility**: Works with fastrace's collection and reporting capabilities. 26 | 27 | ## Installation 28 | 29 | Add to your `Cargo.toml`: 30 | 31 | ```toml 32 | [dependencies] 33 | fastrace = "0.7" 34 | fastrace-reqwest = "0.2" 35 | ``` 36 | 37 | ## Usage 38 | 39 | ### HTTP Client 40 | 41 | ```rust 42 | use fastrace::prelude::*; 43 | use fastrace_reqwest::traceparent_headers; 44 | use reqwest::Client; 45 | 46 | #[fastrace::trace] 47 | async fn send_request() { 48 | let client = Client::new(); 49 | 50 | // Add trace context headers to your request. 51 | let response = client 52 | .get("https://api.example.com/data") 53 | .headers(traceparent_headers()) 54 | .send() 55 | .await 56 | .unwrap(); 57 | 58 | // Process response... 59 | } 60 | ``` 61 | 62 | ## How It Works 63 | 64 | `fastrace-reqwest` enables automatic propagation of trace context between services by: 65 | 66 | 1. **Extracting** the current trace context from the calling function. 67 | 2. **Formatting** it according to the W3C Trace Context specification. 68 | 3. **Injecting** it into outgoing HTTP requests as headers 69 | 4. Working seamlessly with the companion `fastrace-poem` library (or other compatible frameworks) to extract the context on the receiving end. 70 | 71 | ### Complete Example 72 | 73 | Check out the [examples directory](https://github.com/fast/fastrace-reqwest/tree/main/examples) for complete working examples showing: 74 | 75 | - `client.rs` - How to send requests with trace context. 76 | - `server.rs` - How to receive and process trace context using `fastrace-poem`. 77 | 78 | To run the examples: 79 | 80 | ```bash 81 | # First start the server 82 | cargo run --example server 83 | 84 | # Then in another terminal, run the client 85 | cargo run --example client 86 | ``` 87 | 88 | ## How It Works 89 | 90 | 1. When making an HTTP request, `traceparent_headers()` checks for a current span context. 91 | 2. If found, it encodes the context as a `traceparent` HTTP header following the W3C standard. 92 | 3. The receiving service extracts this header and continues the trace. 93 | 94 | ## License 95 | 96 | This project is licensed under the [Apache-2.0](./LICENSE) license. 97 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 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 = "addr2line" 7 | version = "0.24.2" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" 10 | dependencies = [ 11 | "gimli", 12 | ] 13 | 14 | [[package]] 15 | name = "adler2" 16 | version = "2.0.0" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" 19 | 20 | [[package]] 21 | name = "autocfg" 22 | version = "1.4.0" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" 25 | 26 | [[package]] 27 | name = "axum" 28 | version = "0.8.4" 29 | source = "registry+https://github.com/rust-lang/crates.io-index" 30 | checksum = "021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5" 31 | dependencies = [ 32 | "axum-core", 33 | "bytes", 34 | "form_urlencoded", 35 | "futures-util", 36 | "http", 37 | "http-body", 38 | "http-body-util", 39 | "hyper", 40 | "hyper-util", 41 | "itoa", 42 | "matchit", 43 | "memchr", 44 | "mime", 45 | "percent-encoding", 46 | "pin-project-lite", 47 | "rustversion", 48 | "serde", 49 | "serde_json", 50 | "serde_path_to_error", 51 | "serde_urlencoded", 52 | "sync_wrapper", 53 | "tokio", 54 | "tower", 55 | "tower-layer", 56 | "tower-service", 57 | "tracing", 58 | ] 59 | 60 | [[package]] 61 | name = "axum-core" 62 | version = "0.5.2" 63 | source = "registry+https://github.com/rust-lang/crates.io-index" 64 | checksum = "68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6" 65 | dependencies = [ 66 | "bytes", 67 | "futures-core", 68 | "http", 69 | "http-body", 70 | "http-body-util", 71 | "mime", 72 | "pin-project-lite", 73 | "rustversion", 74 | "sync_wrapper", 75 | "tower-layer", 76 | "tower-service", 77 | "tracing", 78 | ] 79 | 80 | [[package]] 81 | name = "backtrace" 82 | version = "0.3.75" 83 | source = "registry+https://github.com/rust-lang/crates.io-index" 84 | checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" 85 | dependencies = [ 86 | "addr2line", 87 | "cfg-if", 88 | "libc", 89 | "miniz_oxide", 90 | "object", 91 | "rustc-demangle", 92 | "windows-targets 0.52.6", 93 | ] 94 | 95 | [[package]] 96 | name = "base64" 97 | version = "0.22.1" 98 | source = "registry+https://github.com/rust-lang/crates.io-index" 99 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 100 | 101 | [[package]] 102 | name = "bitflags" 103 | version = "2.9.0" 104 | source = "registry+https://github.com/rust-lang/crates.io-index" 105 | checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" 106 | 107 | [[package]] 108 | name = "bumpalo" 109 | version = "3.17.0" 110 | source = "registry+https://github.com/rust-lang/crates.io-index" 111 | checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" 112 | 113 | [[package]] 114 | name = "bytes" 115 | version = "1.10.1" 116 | source = "registry+https://github.com/rust-lang/crates.io-index" 117 | checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" 118 | 119 | [[package]] 120 | name = "cfg-if" 121 | version = "1.0.0" 122 | source = "registry+https://github.com/rust-lang/crates.io-index" 123 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 124 | 125 | [[package]] 126 | name = "displaydoc" 127 | version = "0.2.5" 128 | source = "registry+https://github.com/rust-lang/crates.io-index" 129 | checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 130 | dependencies = [ 131 | "proc-macro2", 132 | "quote", 133 | "syn", 134 | ] 135 | 136 | [[package]] 137 | name = "fastant" 138 | version = "0.1.10" 139 | source = "registry+https://github.com/rust-lang/crates.io-index" 140 | checksum = "62bf7fa928ce0c4a43bd6e7d1235318fc32ac3a3dea06a2208c44e729449471a" 141 | dependencies = [ 142 | "small_ctor", 143 | "web-time", 144 | ] 145 | 146 | [[package]] 147 | name = "fastrace" 148 | version = "0.7.9" 149 | source = "registry+https://github.com/rust-lang/crates.io-index" 150 | checksum = "0c5a9b2e56fac2bf32bca26fdc509f674d0f2bdd15404b629ccee9c642453bb7" 151 | dependencies = [ 152 | "fastant", 153 | "fastrace-macro", 154 | "parking_lot", 155 | "pin-project", 156 | "rand", 157 | "rtrb", 158 | "serde", 159 | ] 160 | 161 | [[package]] 162 | name = "fastrace-axum" 163 | version = "0.1.0" 164 | source = "git+https://github.com/fast/fastrace-axum#2b723707d2785a912b79ea21216ca85bde2545a4" 165 | dependencies = [ 166 | "fastrace", 167 | "http", 168 | "tower-layer", 169 | "tower-service", 170 | ] 171 | 172 | [[package]] 173 | name = "fastrace-macro" 174 | version = "0.7.9" 175 | source = "registry+https://github.com/rust-lang/crates.io-index" 176 | checksum = "a9cdabd2b113942d0f771c11a7baf0edd24098b923ac546fd39b9811c82b4220" 177 | dependencies = [ 178 | "proc-macro-error2", 179 | "proc-macro2", 180 | "quote", 181 | "syn", 182 | ] 183 | 184 | [[package]] 185 | name = "fastrace-reqwest" 186 | version = "0.2.0" 187 | dependencies = [ 188 | "axum", 189 | "fastrace", 190 | "fastrace-axum", 191 | "reqwest", 192 | "tokio", 193 | ] 194 | 195 | [[package]] 196 | name = "fnv" 197 | version = "1.0.7" 198 | source = "registry+https://github.com/rust-lang/crates.io-index" 199 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 200 | 201 | [[package]] 202 | name = "form_urlencoded" 203 | version = "1.2.1" 204 | source = "registry+https://github.com/rust-lang/crates.io-index" 205 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 206 | dependencies = [ 207 | "percent-encoding", 208 | ] 209 | 210 | [[package]] 211 | name = "futures-channel" 212 | version = "0.3.31" 213 | source = "registry+https://github.com/rust-lang/crates.io-index" 214 | checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 215 | dependencies = [ 216 | "futures-core", 217 | ] 218 | 219 | [[package]] 220 | name = "futures-core" 221 | version = "0.3.31" 222 | source = "registry+https://github.com/rust-lang/crates.io-index" 223 | checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 224 | 225 | [[package]] 226 | name = "futures-task" 227 | version = "0.3.31" 228 | source = "registry+https://github.com/rust-lang/crates.io-index" 229 | checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 230 | 231 | [[package]] 232 | name = "futures-util" 233 | version = "0.3.31" 234 | source = "registry+https://github.com/rust-lang/crates.io-index" 235 | checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 236 | dependencies = [ 237 | "futures-core", 238 | "futures-task", 239 | "pin-project-lite", 240 | "pin-utils", 241 | ] 242 | 243 | [[package]] 244 | name = "getrandom" 245 | version = "0.3.3" 246 | source = "registry+https://github.com/rust-lang/crates.io-index" 247 | checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" 248 | dependencies = [ 249 | "cfg-if", 250 | "libc", 251 | "r-efi", 252 | "wasi 0.14.2+wasi-0.2.4", 253 | ] 254 | 255 | [[package]] 256 | name = "gimli" 257 | version = "0.31.1" 258 | source = "registry+https://github.com/rust-lang/crates.io-index" 259 | checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" 260 | 261 | [[package]] 262 | name = "http" 263 | version = "1.3.1" 264 | source = "registry+https://github.com/rust-lang/crates.io-index" 265 | checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" 266 | dependencies = [ 267 | "bytes", 268 | "fnv", 269 | "itoa", 270 | ] 271 | 272 | [[package]] 273 | name = "http-body" 274 | version = "1.0.1" 275 | source = "registry+https://github.com/rust-lang/crates.io-index" 276 | checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" 277 | dependencies = [ 278 | "bytes", 279 | "http", 280 | ] 281 | 282 | [[package]] 283 | name = "http-body-util" 284 | version = "0.1.3" 285 | source = "registry+https://github.com/rust-lang/crates.io-index" 286 | checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" 287 | dependencies = [ 288 | "bytes", 289 | "futures-core", 290 | "http", 291 | "http-body", 292 | "pin-project-lite", 293 | ] 294 | 295 | [[package]] 296 | name = "httparse" 297 | version = "1.10.1" 298 | source = "registry+https://github.com/rust-lang/crates.io-index" 299 | checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" 300 | 301 | [[package]] 302 | name = "httpdate" 303 | version = "1.0.3" 304 | source = "registry+https://github.com/rust-lang/crates.io-index" 305 | checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 306 | 307 | [[package]] 308 | name = "hyper" 309 | version = "1.6.0" 310 | source = "registry+https://github.com/rust-lang/crates.io-index" 311 | checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" 312 | dependencies = [ 313 | "bytes", 314 | "futures-channel", 315 | "futures-util", 316 | "http", 317 | "http-body", 318 | "httparse", 319 | "httpdate", 320 | "itoa", 321 | "pin-project-lite", 322 | "smallvec", 323 | "tokio", 324 | "want", 325 | ] 326 | 327 | [[package]] 328 | name = "hyper-util" 329 | version = "0.1.11" 330 | source = "registry+https://github.com/rust-lang/crates.io-index" 331 | checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" 332 | dependencies = [ 333 | "bytes", 334 | "futures-channel", 335 | "futures-util", 336 | "http", 337 | "http-body", 338 | "hyper", 339 | "libc", 340 | "pin-project-lite", 341 | "socket2", 342 | "tokio", 343 | "tower-service", 344 | "tracing", 345 | ] 346 | 347 | [[package]] 348 | name = "icu_collections" 349 | version = "2.0.0" 350 | source = "registry+https://github.com/rust-lang/crates.io-index" 351 | checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" 352 | dependencies = [ 353 | "displaydoc", 354 | "potential_utf", 355 | "yoke", 356 | "zerofrom", 357 | "zerovec", 358 | ] 359 | 360 | [[package]] 361 | name = "icu_locale_core" 362 | version = "2.0.0" 363 | source = "registry+https://github.com/rust-lang/crates.io-index" 364 | checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" 365 | dependencies = [ 366 | "displaydoc", 367 | "litemap", 368 | "tinystr", 369 | "writeable", 370 | "zerovec", 371 | ] 372 | 373 | [[package]] 374 | name = "icu_normalizer" 375 | version = "2.0.0" 376 | source = "registry+https://github.com/rust-lang/crates.io-index" 377 | checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" 378 | dependencies = [ 379 | "displaydoc", 380 | "icu_collections", 381 | "icu_normalizer_data", 382 | "icu_properties", 383 | "icu_provider", 384 | "smallvec", 385 | "zerovec", 386 | ] 387 | 388 | [[package]] 389 | name = "icu_normalizer_data" 390 | version = "2.0.0" 391 | source = "registry+https://github.com/rust-lang/crates.io-index" 392 | checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" 393 | 394 | [[package]] 395 | name = "icu_properties" 396 | version = "2.0.0" 397 | source = "registry+https://github.com/rust-lang/crates.io-index" 398 | checksum = "2549ca8c7241c82f59c80ba2a6f415d931c5b58d24fb8412caa1a1f02c49139a" 399 | dependencies = [ 400 | "displaydoc", 401 | "icu_collections", 402 | "icu_locale_core", 403 | "icu_properties_data", 404 | "icu_provider", 405 | "potential_utf", 406 | "zerotrie", 407 | "zerovec", 408 | ] 409 | 410 | [[package]] 411 | name = "icu_properties_data" 412 | version = "2.0.0" 413 | source = "registry+https://github.com/rust-lang/crates.io-index" 414 | checksum = "8197e866e47b68f8f7d95249e172903bec06004b18b2937f1095d40a0c57de04" 415 | 416 | [[package]] 417 | name = "icu_provider" 418 | version = "2.0.0" 419 | source = "registry+https://github.com/rust-lang/crates.io-index" 420 | checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" 421 | dependencies = [ 422 | "displaydoc", 423 | "icu_locale_core", 424 | "stable_deref_trait", 425 | "tinystr", 426 | "writeable", 427 | "yoke", 428 | "zerofrom", 429 | "zerotrie", 430 | "zerovec", 431 | ] 432 | 433 | [[package]] 434 | name = "idna" 435 | version = "1.0.3" 436 | source = "registry+https://github.com/rust-lang/crates.io-index" 437 | checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" 438 | dependencies = [ 439 | "idna_adapter", 440 | "smallvec", 441 | "utf8_iter", 442 | ] 443 | 444 | [[package]] 445 | name = "idna_adapter" 446 | version = "1.2.1" 447 | source = "registry+https://github.com/rust-lang/crates.io-index" 448 | checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" 449 | dependencies = [ 450 | "icu_normalizer", 451 | "icu_properties", 452 | ] 453 | 454 | [[package]] 455 | name = "ipnet" 456 | version = "2.11.0" 457 | source = "registry+https://github.com/rust-lang/crates.io-index" 458 | checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" 459 | 460 | [[package]] 461 | name = "itoa" 462 | version = "1.0.15" 463 | source = "registry+https://github.com/rust-lang/crates.io-index" 464 | checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 465 | 466 | [[package]] 467 | name = "js-sys" 468 | version = "0.3.77" 469 | source = "registry+https://github.com/rust-lang/crates.io-index" 470 | checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" 471 | dependencies = [ 472 | "once_cell", 473 | "wasm-bindgen", 474 | ] 475 | 476 | [[package]] 477 | name = "libc" 478 | version = "0.2.172" 479 | source = "registry+https://github.com/rust-lang/crates.io-index" 480 | checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" 481 | 482 | [[package]] 483 | name = "litemap" 484 | version = "0.8.0" 485 | source = "registry+https://github.com/rust-lang/crates.io-index" 486 | checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" 487 | 488 | [[package]] 489 | name = "lock_api" 490 | version = "0.4.12" 491 | source = "registry+https://github.com/rust-lang/crates.io-index" 492 | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 493 | dependencies = [ 494 | "autocfg", 495 | "scopeguard", 496 | ] 497 | 498 | [[package]] 499 | name = "log" 500 | version = "0.4.27" 501 | source = "registry+https://github.com/rust-lang/crates.io-index" 502 | checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" 503 | 504 | [[package]] 505 | name = "matchit" 506 | version = "0.8.4" 507 | source = "registry+https://github.com/rust-lang/crates.io-index" 508 | checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" 509 | 510 | [[package]] 511 | name = "memchr" 512 | version = "2.7.4" 513 | source = "registry+https://github.com/rust-lang/crates.io-index" 514 | checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 515 | 516 | [[package]] 517 | name = "mime" 518 | version = "0.3.17" 519 | source = "registry+https://github.com/rust-lang/crates.io-index" 520 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 521 | 522 | [[package]] 523 | name = "miniz_oxide" 524 | version = "0.8.8" 525 | source = "registry+https://github.com/rust-lang/crates.io-index" 526 | checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" 527 | dependencies = [ 528 | "adler2", 529 | ] 530 | 531 | [[package]] 532 | name = "mio" 533 | version = "1.0.3" 534 | source = "registry+https://github.com/rust-lang/crates.io-index" 535 | checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" 536 | dependencies = [ 537 | "libc", 538 | "wasi 0.11.0+wasi-snapshot-preview1", 539 | "windows-sys", 540 | ] 541 | 542 | [[package]] 543 | name = "object" 544 | version = "0.36.7" 545 | source = "registry+https://github.com/rust-lang/crates.io-index" 546 | checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" 547 | dependencies = [ 548 | "memchr", 549 | ] 550 | 551 | [[package]] 552 | name = "once_cell" 553 | version = "1.21.3" 554 | source = "registry+https://github.com/rust-lang/crates.io-index" 555 | checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 556 | 557 | [[package]] 558 | name = "parking_lot" 559 | version = "0.12.3" 560 | source = "registry+https://github.com/rust-lang/crates.io-index" 561 | checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" 562 | dependencies = [ 563 | "lock_api", 564 | "parking_lot_core", 565 | ] 566 | 567 | [[package]] 568 | name = "parking_lot_core" 569 | version = "0.9.10" 570 | source = "registry+https://github.com/rust-lang/crates.io-index" 571 | checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 572 | dependencies = [ 573 | "cfg-if", 574 | "libc", 575 | "redox_syscall", 576 | "smallvec", 577 | "windows-targets 0.52.6", 578 | ] 579 | 580 | [[package]] 581 | name = "percent-encoding" 582 | version = "2.3.1" 583 | source = "registry+https://github.com/rust-lang/crates.io-index" 584 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 585 | 586 | [[package]] 587 | name = "pin-project" 588 | version = "1.1.10" 589 | source = "registry+https://github.com/rust-lang/crates.io-index" 590 | checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" 591 | dependencies = [ 592 | "pin-project-internal", 593 | ] 594 | 595 | [[package]] 596 | name = "pin-project-internal" 597 | version = "1.1.10" 598 | source = "registry+https://github.com/rust-lang/crates.io-index" 599 | checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" 600 | dependencies = [ 601 | "proc-macro2", 602 | "quote", 603 | "syn", 604 | ] 605 | 606 | [[package]] 607 | name = "pin-project-lite" 608 | version = "0.2.16" 609 | source = "registry+https://github.com/rust-lang/crates.io-index" 610 | checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" 611 | 612 | [[package]] 613 | name = "pin-utils" 614 | version = "0.1.0" 615 | source = "registry+https://github.com/rust-lang/crates.io-index" 616 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 617 | 618 | [[package]] 619 | name = "potential_utf" 620 | version = "0.1.2" 621 | source = "registry+https://github.com/rust-lang/crates.io-index" 622 | checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" 623 | dependencies = [ 624 | "zerovec", 625 | ] 626 | 627 | [[package]] 628 | name = "ppv-lite86" 629 | version = "0.2.21" 630 | source = "registry+https://github.com/rust-lang/crates.io-index" 631 | checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" 632 | dependencies = [ 633 | "zerocopy", 634 | ] 635 | 636 | [[package]] 637 | name = "proc-macro-error-attr2" 638 | version = "2.0.0" 639 | source = "registry+https://github.com/rust-lang/crates.io-index" 640 | checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" 641 | dependencies = [ 642 | "proc-macro2", 643 | "quote", 644 | ] 645 | 646 | [[package]] 647 | name = "proc-macro-error2" 648 | version = "2.0.1" 649 | source = "registry+https://github.com/rust-lang/crates.io-index" 650 | checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" 651 | dependencies = [ 652 | "proc-macro-error-attr2", 653 | "proc-macro2", 654 | "quote", 655 | "syn", 656 | ] 657 | 658 | [[package]] 659 | name = "proc-macro2" 660 | version = "1.0.95" 661 | source = "registry+https://github.com/rust-lang/crates.io-index" 662 | checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" 663 | dependencies = [ 664 | "unicode-ident", 665 | ] 666 | 667 | [[package]] 668 | name = "quote" 669 | version = "1.0.40" 670 | source = "registry+https://github.com/rust-lang/crates.io-index" 671 | checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" 672 | dependencies = [ 673 | "proc-macro2", 674 | ] 675 | 676 | [[package]] 677 | name = "r-efi" 678 | version = "5.2.0" 679 | source = "registry+https://github.com/rust-lang/crates.io-index" 680 | checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" 681 | 682 | [[package]] 683 | name = "rand" 684 | version = "0.9.1" 685 | source = "registry+https://github.com/rust-lang/crates.io-index" 686 | checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" 687 | dependencies = [ 688 | "rand_chacha", 689 | "rand_core", 690 | ] 691 | 692 | [[package]] 693 | name = "rand_chacha" 694 | version = "0.9.0" 695 | source = "registry+https://github.com/rust-lang/crates.io-index" 696 | checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" 697 | dependencies = [ 698 | "ppv-lite86", 699 | "rand_core", 700 | ] 701 | 702 | [[package]] 703 | name = "rand_core" 704 | version = "0.9.3" 705 | source = "registry+https://github.com/rust-lang/crates.io-index" 706 | checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" 707 | dependencies = [ 708 | "getrandom", 709 | ] 710 | 711 | [[package]] 712 | name = "redox_syscall" 713 | version = "0.5.12" 714 | source = "registry+https://github.com/rust-lang/crates.io-index" 715 | checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" 716 | dependencies = [ 717 | "bitflags", 718 | ] 719 | 720 | [[package]] 721 | name = "reqwest" 722 | version = "0.12.15" 723 | source = "registry+https://github.com/rust-lang/crates.io-index" 724 | checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" 725 | dependencies = [ 726 | "base64", 727 | "bytes", 728 | "futures-core", 729 | "futures-util", 730 | "http", 731 | "http-body", 732 | "http-body-util", 733 | "hyper", 734 | "hyper-util", 735 | "ipnet", 736 | "js-sys", 737 | "log", 738 | "mime", 739 | "once_cell", 740 | "percent-encoding", 741 | "pin-project-lite", 742 | "serde", 743 | "serde_json", 744 | "serde_urlencoded", 745 | "sync_wrapper", 746 | "tokio", 747 | "tower", 748 | "tower-service", 749 | "url", 750 | "wasm-bindgen", 751 | "wasm-bindgen-futures", 752 | "web-sys", 753 | "windows-registry", 754 | ] 755 | 756 | [[package]] 757 | name = "rtrb" 758 | version = "0.3.2" 759 | source = "registry+https://github.com/rust-lang/crates.io-index" 760 | checksum = "ad8388ea1a9e0ea807e442e8263a699e7edcb320ecbcd21b4fa8ff859acce3ba" 761 | 762 | [[package]] 763 | name = "rustc-demangle" 764 | version = "0.1.24" 765 | source = "registry+https://github.com/rust-lang/crates.io-index" 766 | checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" 767 | 768 | [[package]] 769 | name = "rustversion" 770 | version = "1.0.20" 771 | source = "registry+https://github.com/rust-lang/crates.io-index" 772 | checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" 773 | 774 | [[package]] 775 | name = "ryu" 776 | version = "1.0.20" 777 | source = "registry+https://github.com/rust-lang/crates.io-index" 778 | checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 779 | 780 | [[package]] 781 | name = "scopeguard" 782 | version = "1.2.0" 783 | source = "registry+https://github.com/rust-lang/crates.io-index" 784 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 785 | 786 | [[package]] 787 | name = "serde" 788 | version = "1.0.219" 789 | source = "registry+https://github.com/rust-lang/crates.io-index" 790 | checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" 791 | dependencies = [ 792 | "serde_derive", 793 | ] 794 | 795 | [[package]] 796 | name = "serde_derive" 797 | version = "1.0.219" 798 | source = "registry+https://github.com/rust-lang/crates.io-index" 799 | checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" 800 | dependencies = [ 801 | "proc-macro2", 802 | "quote", 803 | "syn", 804 | ] 805 | 806 | [[package]] 807 | name = "serde_json" 808 | version = "1.0.140" 809 | source = "registry+https://github.com/rust-lang/crates.io-index" 810 | checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" 811 | dependencies = [ 812 | "itoa", 813 | "memchr", 814 | "ryu", 815 | "serde", 816 | ] 817 | 818 | [[package]] 819 | name = "serde_path_to_error" 820 | version = "0.1.17" 821 | source = "registry+https://github.com/rust-lang/crates.io-index" 822 | checksum = "59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a" 823 | dependencies = [ 824 | "itoa", 825 | "serde", 826 | ] 827 | 828 | [[package]] 829 | name = "serde_urlencoded" 830 | version = "0.7.1" 831 | source = "registry+https://github.com/rust-lang/crates.io-index" 832 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 833 | dependencies = [ 834 | "form_urlencoded", 835 | "itoa", 836 | "ryu", 837 | "serde", 838 | ] 839 | 840 | [[package]] 841 | name = "signal-hook-registry" 842 | version = "1.4.5" 843 | source = "registry+https://github.com/rust-lang/crates.io-index" 844 | checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" 845 | dependencies = [ 846 | "libc", 847 | ] 848 | 849 | [[package]] 850 | name = "small_ctor" 851 | version = "0.1.2" 852 | source = "registry+https://github.com/rust-lang/crates.io-index" 853 | checksum = "88414a5ca1f85d82cc34471e975f0f74f6aa54c40f062efa42c0080e7f763f81" 854 | 855 | [[package]] 856 | name = "smallvec" 857 | version = "1.15.0" 858 | source = "registry+https://github.com/rust-lang/crates.io-index" 859 | checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" 860 | 861 | [[package]] 862 | name = "socket2" 863 | version = "0.5.9" 864 | source = "registry+https://github.com/rust-lang/crates.io-index" 865 | checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" 866 | dependencies = [ 867 | "libc", 868 | "windows-sys", 869 | ] 870 | 871 | [[package]] 872 | name = "stable_deref_trait" 873 | version = "1.2.0" 874 | source = "registry+https://github.com/rust-lang/crates.io-index" 875 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 876 | 877 | [[package]] 878 | name = "syn" 879 | version = "2.0.101" 880 | source = "registry+https://github.com/rust-lang/crates.io-index" 881 | checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" 882 | dependencies = [ 883 | "proc-macro2", 884 | "quote", 885 | "unicode-ident", 886 | ] 887 | 888 | [[package]] 889 | name = "sync_wrapper" 890 | version = "1.0.2" 891 | source = "registry+https://github.com/rust-lang/crates.io-index" 892 | checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" 893 | dependencies = [ 894 | "futures-core", 895 | ] 896 | 897 | [[package]] 898 | name = "synstructure" 899 | version = "0.13.2" 900 | source = "registry+https://github.com/rust-lang/crates.io-index" 901 | checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" 902 | dependencies = [ 903 | "proc-macro2", 904 | "quote", 905 | "syn", 906 | ] 907 | 908 | [[package]] 909 | name = "tinystr" 910 | version = "0.8.1" 911 | source = "registry+https://github.com/rust-lang/crates.io-index" 912 | checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" 913 | dependencies = [ 914 | "displaydoc", 915 | "zerovec", 916 | ] 917 | 918 | [[package]] 919 | name = "tokio" 920 | version = "1.45.0" 921 | source = "registry+https://github.com/rust-lang/crates.io-index" 922 | checksum = "2513ca694ef9ede0fb23fe71a4ee4107cb102b9dc1930f6d0fd77aae068ae165" 923 | dependencies = [ 924 | "backtrace", 925 | "bytes", 926 | "libc", 927 | "mio", 928 | "parking_lot", 929 | "pin-project-lite", 930 | "signal-hook-registry", 931 | "socket2", 932 | "tokio-macros", 933 | "windows-sys", 934 | ] 935 | 936 | [[package]] 937 | name = "tokio-macros" 938 | version = "2.5.0" 939 | source = "registry+https://github.com/rust-lang/crates.io-index" 940 | checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" 941 | dependencies = [ 942 | "proc-macro2", 943 | "quote", 944 | "syn", 945 | ] 946 | 947 | [[package]] 948 | name = "tower" 949 | version = "0.5.2" 950 | source = "registry+https://github.com/rust-lang/crates.io-index" 951 | checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" 952 | dependencies = [ 953 | "futures-core", 954 | "futures-util", 955 | "pin-project-lite", 956 | "sync_wrapper", 957 | "tokio", 958 | "tower-layer", 959 | "tower-service", 960 | "tracing", 961 | ] 962 | 963 | [[package]] 964 | name = "tower-layer" 965 | version = "0.3.3" 966 | source = "registry+https://github.com/rust-lang/crates.io-index" 967 | checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" 968 | 969 | [[package]] 970 | name = "tower-service" 971 | version = "0.3.3" 972 | source = "registry+https://github.com/rust-lang/crates.io-index" 973 | checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" 974 | 975 | [[package]] 976 | name = "tracing" 977 | version = "0.1.41" 978 | source = "registry+https://github.com/rust-lang/crates.io-index" 979 | checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" 980 | dependencies = [ 981 | "log", 982 | "pin-project-lite", 983 | "tracing-core", 984 | ] 985 | 986 | [[package]] 987 | name = "tracing-core" 988 | version = "0.1.33" 989 | source = "registry+https://github.com/rust-lang/crates.io-index" 990 | checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" 991 | dependencies = [ 992 | "once_cell", 993 | ] 994 | 995 | [[package]] 996 | name = "try-lock" 997 | version = "0.2.5" 998 | source = "registry+https://github.com/rust-lang/crates.io-index" 999 | checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 1000 | 1001 | [[package]] 1002 | name = "unicode-ident" 1003 | version = "1.0.18" 1004 | source = "registry+https://github.com/rust-lang/crates.io-index" 1005 | checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" 1006 | 1007 | [[package]] 1008 | name = "url" 1009 | version = "2.5.4" 1010 | source = "registry+https://github.com/rust-lang/crates.io-index" 1011 | checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" 1012 | dependencies = [ 1013 | "form_urlencoded", 1014 | "idna", 1015 | "percent-encoding", 1016 | ] 1017 | 1018 | [[package]] 1019 | name = "utf8_iter" 1020 | version = "1.0.4" 1021 | source = "registry+https://github.com/rust-lang/crates.io-index" 1022 | checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 1023 | 1024 | [[package]] 1025 | name = "want" 1026 | version = "0.3.1" 1027 | source = "registry+https://github.com/rust-lang/crates.io-index" 1028 | checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 1029 | dependencies = [ 1030 | "try-lock", 1031 | ] 1032 | 1033 | [[package]] 1034 | name = "wasi" 1035 | version = "0.11.0+wasi-snapshot-preview1" 1036 | source = "registry+https://github.com/rust-lang/crates.io-index" 1037 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 1038 | 1039 | [[package]] 1040 | name = "wasi" 1041 | version = "0.14.2+wasi-0.2.4" 1042 | source = "registry+https://github.com/rust-lang/crates.io-index" 1043 | checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" 1044 | dependencies = [ 1045 | "wit-bindgen-rt", 1046 | ] 1047 | 1048 | [[package]] 1049 | name = "wasm-bindgen" 1050 | version = "0.2.100" 1051 | source = "registry+https://github.com/rust-lang/crates.io-index" 1052 | checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" 1053 | dependencies = [ 1054 | "cfg-if", 1055 | "once_cell", 1056 | "rustversion", 1057 | "wasm-bindgen-macro", 1058 | ] 1059 | 1060 | [[package]] 1061 | name = "wasm-bindgen-backend" 1062 | version = "0.2.100" 1063 | source = "registry+https://github.com/rust-lang/crates.io-index" 1064 | checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" 1065 | dependencies = [ 1066 | "bumpalo", 1067 | "log", 1068 | "proc-macro2", 1069 | "quote", 1070 | "syn", 1071 | "wasm-bindgen-shared", 1072 | ] 1073 | 1074 | [[package]] 1075 | name = "wasm-bindgen-futures" 1076 | version = "0.4.50" 1077 | source = "registry+https://github.com/rust-lang/crates.io-index" 1078 | checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" 1079 | dependencies = [ 1080 | "cfg-if", 1081 | "js-sys", 1082 | "once_cell", 1083 | "wasm-bindgen", 1084 | "web-sys", 1085 | ] 1086 | 1087 | [[package]] 1088 | name = "wasm-bindgen-macro" 1089 | version = "0.2.100" 1090 | source = "registry+https://github.com/rust-lang/crates.io-index" 1091 | checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" 1092 | dependencies = [ 1093 | "quote", 1094 | "wasm-bindgen-macro-support", 1095 | ] 1096 | 1097 | [[package]] 1098 | name = "wasm-bindgen-macro-support" 1099 | version = "0.2.100" 1100 | source = "registry+https://github.com/rust-lang/crates.io-index" 1101 | checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" 1102 | dependencies = [ 1103 | "proc-macro2", 1104 | "quote", 1105 | "syn", 1106 | "wasm-bindgen-backend", 1107 | "wasm-bindgen-shared", 1108 | ] 1109 | 1110 | [[package]] 1111 | name = "wasm-bindgen-shared" 1112 | version = "0.2.100" 1113 | source = "registry+https://github.com/rust-lang/crates.io-index" 1114 | checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" 1115 | dependencies = [ 1116 | "unicode-ident", 1117 | ] 1118 | 1119 | [[package]] 1120 | name = "web-sys" 1121 | version = "0.3.77" 1122 | source = "registry+https://github.com/rust-lang/crates.io-index" 1123 | checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" 1124 | dependencies = [ 1125 | "js-sys", 1126 | "wasm-bindgen", 1127 | ] 1128 | 1129 | [[package]] 1130 | name = "web-time" 1131 | version = "1.1.0" 1132 | source = "registry+https://github.com/rust-lang/crates.io-index" 1133 | checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" 1134 | dependencies = [ 1135 | "js-sys", 1136 | "wasm-bindgen", 1137 | ] 1138 | 1139 | [[package]] 1140 | name = "windows-link" 1141 | version = "0.1.1" 1142 | source = "registry+https://github.com/rust-lang/crates.io-index" 1143 | checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" 1144 | 1145 | [[package]] 1146 | name = "windows-registry" 1147 | version = "0.4.0" 1148 | source = "registry+https://github.com/rust-lang/crates.io-index" 1149 | checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" 1150 | dependencies = [ 1151 | "windows-result", 1152 | "windows-strings", 1153 | "windows-targets 0.53.0", 1154 | ] 1155 | 1156 | [[package]] 1157 | name = "windows-result" 1158 | version = "0.3.2" 1159 | source = "registry+https://github.com/rust-lang/crates.io-index" 1160 | checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" 1161 | dependencies = [ 1162 | "windows-link", 1163 | ] 1164 | 1165 | [[package]] 1166 | name = "windows-strings" 1167 | version = "0.3.1" 1168 | source = "registry+https://github.com/rust-lang/crates.io-index" 1169 | checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" 1170 | dependencies = [ 1171 | "windows-link", 1172 | ] 1173 | 1174 | [[package]] 1175 | name = "windows-sys" 1176 | version = "0.52.0" 1177 | source = "registry+https://github.com/rust-lang/crates.io-index" 1178 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 1179 | dependencies = [ 1180 | "windows-targets 0.52.6", 1181 | ] 1182 | 1183 | [[package]] 1184 | name = "windows-targets" 1185 | version = "0.52.6" 1186 | source = "registry+https://github.com/rust-lang/crates.io-index" 1187 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 1188 | dependencies = [ 1189 | "windows_aarch64_gnullvm 0.52.6", 1190 | "windows_aarch64_msvc 0.52.6", 1191 | "windows_i686_gnu 0.52.6", 1192 | "windows_i686_gnullvm 0.52.6", 1193 | "windows_i686_msvc 0.52.6", 1194 | "windows_x86_64_gnu 0.52.6", 1195 | "windows_x86_64_gnullvm 0.52.6", 1196 | "windows_x86_64_msvc 0.52.6", 1197 | ] 1198 | 1199 | [[package]] 1200 | name = "windows-targets" 1201 | version = "0.53.0" 1202 | source = "registry+https://github.com/rust-lang/crates.io-index" 1203 | checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" 1204 | dependencies = [ 1205 | "windows_aarch64_gnullvm 0.53.0", 1206 | "windows_aarch64_msvc 0.53.0", 1207 | "windows_i686_gnu 0.53.0", 1208 | "windows_i686_gnullvm 0.53.0", 1209 | "windows_i686_msvc 0.53.0", 1210 | "windows_x86_64_gnu 0.53.0", 1211 | "windows_x86_64_gnullvm 0.53.0", 1212 | "windows_x86_64_msvc 0.53.0", 1213 | ] 1214 | 1215 | [[package]] 1216 | name = "windows_aarch64_gnullvm" 1217 | version = "0.52.6" 1218 | source = "registry+https://github.com/rust-lang/crates.io-index" 1219 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 1220 | 1221 | [[package]] 1222 | name = "windows_aarch64_gnullvm" 1223 | version = "0.53.0" 1224 | source = "registry+https://github.com/rust-lang/crates.io-index" 1225 | checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" 1226 | 1227 | [[package]] 1228 | name = "windows_aarch64_msvc" 1229 | version = "0.52.6" 1230 | source = "registry+https://github.com/rust-lang/crates.io-index" 1231 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 1232 | 1233 | [[package]] 1234 | name = "windows_aarch64_msvc" 1235 | version = "0.53.0" 1236 | source = "registry+https://github.com/rust-lang/crates.io-index" 1237 | checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" 1238 | 1239 | [[package]] 1240 | name = "windows_i686_gnu" 1241 | version = "0.52.6" 1242 | source = "registry+https://github.com/rust-lang/crates.io-index" 1243 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 1244 | 1245 | [[package]] 1246 | name = "windows_i686_gnu" 1247 | version = "0.53.0" 1248 | source = "registry+https://github.com/rust-lang/crates.io-index" 1249 | checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" 1250 | 1251 | [[package]] 1252 | name = "windows_i686_gnullvm" 1253 | version = "0.52.6" 1254 | source = "registry+https://github.com/rust-lang/crates.io-index" 1255 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 1256 | 1257 | [[package]] 1258 | name = "windows_i686_gnullvm" 1259 | version = "0.53.0" 1260 | source = "registry+https://github.com/rust-lang/crates.io-index" 1261 | checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" 1262 | 1263 | [[package]] 1264 | name = "windows_i686_msvc" 1265 | version = "0.52.6" 1266 | source = "registry+https://github.com/rust-lang/crates.io-index" 1267 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 1268 | 1269 | [[package]] 1270 | name = "windows_i686_msvc" 1271 | version = "0.53.0" 1272 | source = "registry+https://github.com/rust-lang/crates.io-index" 1273 | checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" 1274 | 1275 | [[package]] 1276 | name = "windows_x86_64_gnu" 1277 | version = "0.52.6" 1278 | source = "registry+https://github.com/rust-lang/crates.io-index" 1279 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 1280 | 1281 | [[package]] 1282 | name = "windows_x86_64_gnu" 1283 | version = "0.53.0" 1284 | source = "registry+https://github.com/rust-lang/crates.io-index" 1285 | checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" 1286 | 1287 | [[package]] 1288 | name = "windows_x86_64_gnullvm" 1289 | version = "0.52.6" 1290 | source = "registry+https://github.com/rust-lang/crates.io-index" 1291 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 1292 | 1293 | [[package]] 1294 | name = "windows_x86_64_gnullvm" 1295 | version = "0.53.0" 1296 | source = "registry+https://github.com/rust-lang/crates.io-index" 1297 | checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" 1298 | 1299 | [[package]] 1300 | name = "windows_x86_64_msvc" 1301 | version = "0.52.6" 1302 | source = "registry+https://github.com/rust-lang/crates.io-index" 1303 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 1304 | 1305 | [[package]] 1306 | name = "windows_x86_64_msvc" 1307 | version = "0.53.0" 1308 | source = "registry+https://github.com/rust-lang/crates.io-index" 1309 | checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" 1310 | 1311 | [[package]] 1312 | name = "wit-bindgen-rt" 1313 | version = "0.39.0" 1314 | source = "registry+https://github.com/rust-lang/crates.io-index" 1315 | checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" 1316 | dependencies = [ 1317 | "bitflags", 1318 | ] 1319 | 1320 | [[package]] 1321 | name = "writeable" 1322 | version = "0.6.1" 1323 | source = "registry+https://github.com/rust-lang/crates.io-index" 1324 | checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" 1325 | 1326 | [[package]] 1327 | name = "yoke" 1328 | version = "0.8.0" 1329 | source = "registry+https://github.com/rust-lang/crates.io-index" 1330 | checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" 1331 | dependencies = [ 1332 | "serde", 1333 | "stable_deref_trait", 1334 | "yoke-derive", 1335 | "zerofrom", 1336 | ] 1337 | 1338 | [[package]] 1339 | name = "yoke-derive" 1340 | version = "0.8.0" 1341 | source = "registry+https://github.com/rust-lang/crates.io-index" 1342 | checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" 1343 | dependencies = [ 1344 | "proc-macro2", 1345 | "quote", 1346 | "syn", 1347 | "synstructure", 1348 | ] 1349 | 1350 | [[package]] 1351 | name = "zerocopy" 1352 | version = "0.8.25" 1353 | source = "registry+https://github.com/rust-lang/crates.io-index" 1354 | checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" 1355 | dependencies = [ 1356 | "zerocopy-derive", 1357 | ] 1358 | 1359 | [[package]] 1360 | name = "zerocopy-derive" 1361 | version = "0.8.25" 1362 | source = "registry+https://github.com/rust-lang/crates.io-index" 1363 | checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" 1364 | dependencies = [ 1365 | "proc-macro2", 1366 | "quote", 1367 | "syn", 1368 | ] 1369 | 1370 | [[package]] 1371 | name = "zerofrom" 1372 | version = "0.1.6" 1373 | source = "registry+https://github.com/rust-lang/crates.io-index" 1374 | checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" 1375 | dependencies = [ 1376 | "zerofrom-derive", 1377 | ] 1378 | 1379 | [[package]] 1380 | name = "zerofrom-derive" 1381 | version = "0.1.6" 1382 | source = "registry+https://github.com/rust-lang/crates.io-index" 1383 | checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" 1384 | dependencies = [ 1385 | "proc-macro2", 1386 | "quote", 1387 | "syn", 1388 | "synstructure", 1389 | ] 1390 | 1391 | [[package]] 1392 | name = "zerotrie" 1393 | version = "0.2.2" 1394 | source = "registry+https://github.com/rust-lang/crates.io-index" 1395 | checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" 1396 | dependencies = [ 1397 | "displaydoc", 1398 | "yoke", 1399 | "zerofrom", 1400 | ] 1401 | 1402 | [[package]] 1403 | name = "zerovec" 1404 | version = "0.11.2" 1405 | source = "registry+https://github.com/rust-lang/crates.io-index" 1406 | checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" 1407 | dependencies = [ 1408 | "yoke", 1409 | "zerofrom", 1410 | "zerovec-derive", 1411 | ] 1412 | 1413 | [[package]] 1414 | name = "zerovec-derive" 1415 | version = "0.11.1" 1416 | source = "registry+https://github.com/rust-lang/crates.io-index" 1417 | checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" 1418 | dependencies = [ 1419 | "proc-macro2", 1420 | "quote", 1421 | "syn", 1422 | ] 1423 | --------------------------------------------------------------------------------