├── src ├── mod.rs ├── state.rs ├── main.rs ├── middleware.rs └── handlers.rs ├── content └── home.md ├── static └── css │ └── index.css ├── templates └── base.html ├── Cargo.toml └── Cargo.lock /src/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod handlers; 2 | pub mod middleware; 3 | pub mod state; -------------------------------------------------------------------------------- /content/home.md: -------------------------------------------------------------------------------- 1 | # Introduction 2 | 3 | ```js 4 | function main() { 5 | console.log("yoooo") 6 | } 7 | ``` -------------------------------------------------------------------------------- /static/css/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | background-color: #f0f0f0; 3 | font-family: Arial, sans-serif; 4 | margin: 0; 5 | padding: 0; 6 | } -------------------------------------------------------------------------------- /templates/base.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {{ title }} 7 | 8 | 9 |
10 |
{{ content|safe }}
11 |
12 | 13 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "axum-quickstart" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [dependencies] 7 | tokio = { version = "1.37.0", features = ["full"]} 8 | axum = { version = "0.7.5" } 9 | tower = { version = "0.4.13" } 10 | futures-util = { version = "0.3.30" } 11 | tower-http = { version = "0.5.2", features = ["full"] } 12 | askama = "0.12.1" 13 | markdown = "1.0.0-alpha.17" 14 | syntect = "5.0" 15 | -------------------------------------------------------------------------------- /src/state.rs: -------------------------------------------------------------------------------- 1 | 2 | use syntect::highlighting::ThemeSet; 3 | use syntect::parsing::SyntaxSet; 4 | pub struct AppState { 5 | pub syntax_set: SyntaxSet, 6 | pub theme_set: ThemeSet, 7 | } 8 | 9 | pub fn new_app_state() -> AppState { 10 | let ps = SyntaxSet::load_defaults_newlines(); 11 | let ts = ThemeSet::load_defaults(); 12 | AppState { 13 | syntax_set: ps, 14 | theme_set: ts, 15 | } 16 | } -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | 2 | mod handlers; 3 | mod middleware; 4 | mod state; 5 | 6 | use std::{env, process::exit}; 7 | use std::sync::Arc; 8 | use axum::Extension; 9 | use axum::{ 10 | routing::get, 11 | Router, 12 | }; 13 | use tower_http::services::ServeDir; 14 | 15 | 16 | #[tokio::main] 17 | async fn main() { 18 | 19 | // selecting port 20 | let args: Vec = env::args().collect(); 21 | let mut port: &str = "8080"; 22 | if args.len() > 2 { 23 | let arg = &args[2]; 24 | let arg_port: Result = arg.parse(); 25 | match arg_port { 26 | Ok(_val) => { 27 | port = arg; 28 | }, 29 | Err(_err) => { 30 | println!("Port is not a number..."); 31 | exit(1); 32 | } 33 | }; 34 | } 35 | 36 | // getting hostname 37 | let host = "0.0.0.0"; 38 | let addr = format!("{}:{}", host, port); 39 | 40 | // setting up shared state 41 | let shared_state = Arc::new(state::new_app_state()); 42 | 43 | // building router 44 | let app = Router::new() 45 | .route("/", get(handlers::home)) 46 | .nest_service("/static", ServeDir::new("static")) 47 | .layer(middleware::TimingMiddleware) 48 | .layer(Extension(shared_state)) 49 | .fallback(get(handlers::not_found)); 50 | 51 | // binding and serving 52 | println!("development server running on {}", addr); 53 | let listener = tokio::net::TcpListener::bind(addr).await.unwrap(); 54 | axum::serve(listener, app).await.unwrap() 55 | 56 | 57 | } 58 | -------------------------------------------------------------------------------- /src/middleware.rs: -------------------------------------------------------------------------------- 1 | 2 | use tower::{Layer, Service}; 3 | use std::convert::Infallible; 4 | use std::task::{Context, Poll}; 5 | use std::time::Instant; 6 | use std::future::Future; 7 | use std::pin::Pin; 8 | use axum::http::{Request, Response}; 9 | 10 | 11 | // middleware layer 12 | #[derive(Clone)] 13 | pub struct TimingMiddleware; 14 | 15 | impl Layer for TimingMiddleware { 16 | type Service = TimingService; 17 | 18 | fn layer(&self, service: S) -> Self::Service { 19 | TimingService { service } 20 | } 21 | } 22 | 23 | 24 | // Define the middleware service 25 | #[derive(Clone)] 26 | pub struct TimingService { 27 | service: S, 28 | } 29 | 30 | // Implement the Service trait for the middleware 31 | impl Service> for TimingService 32 | where 33 | S: Service, Response = Response, Error = Infallible> + Clone + Send + 'static, 34 | S::Future: Send + 'static, 35 | B: Send + 'static, 36 | { 37 | type Response = S::Response; 38 | type Error = S::Error; 39 | type Future = Pin> + Send>>; 40 | 41 | fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll> { 42 | self.service.poll_ready(cx) 43 | } 44 | 45 | fn call(&mut self, req: Request) -> Self::Future { 46 | let start = Instant::now(); 47 | let uri = req.uri().clone(); 48 | let method = req.method().clone(); 49 | let fut = self.service.call(req); 50 | 51 | Box::pin(async move { 52 | let res = fut.await; 53 | let micro_seconds = start.elapsed().as_micros(); 54 | if micro_seconds < 1000 { 55 | println!("[{}]-[{}]-[{}µ]", method, uri, micro_seconds); 56 | return res; 57 | } 58 | println!("[{}]-[{}]-[{}ms]", method, uri, start.elapsed().as_millis()); 59 | return res; 60 | }) 61 | } 62 | } -------------------------------------------------------------------------------- /src/handlers.rs: -------------------------------------------------------------------------------- 1 | use crate::state; 2 | use std::fs; 3 | use std::sync::Arc; 4 | 5 | use axum::{response::{Html, IntoResponse}, Extension}; 6 | use askama::Template; 7 | use syntect::{easy::HighlightLines, highlighting::{Style, ThemeSet}, html::{styled_line_to_highlighted_html, IncludeBackground}, parsing::SyntaxSet, util::{as_24_bit_terminal_escaped, LinesWithEndings}}; 8 | 9 | 10 | #[derive(Template)] 11 | #[template(path = "base.html")] 12 | struct BaseTemplate<'a> { 13 | title: &'a str, 14 | content: &'a str, 15 | } 16 | 17 | #[derive(Debug)] 18 | struct CodeBlock { 19 | start: usize, 20 | end: usize, 21 | html_content: String, 22 | inner_content: String, 23 | language: String, 24 | language_extension: String, 25 | } 26 | 27 | impl CodeBlock { 28 | 29 | fn set_language_extension (&mut self) { 30 | // values on the left are what markdown places as class names 31 | // values on the right are the file extensions 32 | let lang_ext = match self.language.as_str() { 33 | "rust" => "rs", 34 | "python" => "py", 35 | "js" => "js", 36 | "typescript" => "ts", 37 | "html" => "html", 38 | "css" => "css", 39 | "scss" => "scss", 40 | "json" => "json", 41 | "yaml" => "yaml", 42 | "toml" => "toml", 43 | "markdown" => "md", 44 | _ => "txt", 45 | }; 46 | self.language_extension = lang_ext.to_string(); 47 | } 48 | 49 | fn set_inner_content(&mut self) { 50 | let start_index = self.html_content.find("").unwrap(); 52 | let sub_string = &self.html_content[start_index..end_index]; 53 | let start_index = sub_string.find(">").unwrap(); 54 | let sub_string = &sub_string[start_index+1..]; 55 | self.inner_content = sub_string.to_string(); 56 | } 57 | 58 | fn highlight(&self, syntax_set: &SyntaxSet, theme_set: &ThemeSet) -> String { 59 | let syntax = syntax_set.find_syntax_by_extension(&self.language).unwrap(); 60 | let mut h = HighlightLines::new(syntax, &theme_set.themes["base16-ocean.dark"]); 61 | let mut highlighted_html = String::new(); 62 | for line in LinesWithEndings::from(&self.inner_content) { 63 | let ranges = h.highlight_line(line, &syntax_set).unwrap(); 64 | let html_for_line = styled_line_to_highlighted_html(&ranges, IncludeBackground::Yes).unwrap(); 65 | highlighted_html.push_str(&html_for_line); 66 | } 67 | highlighted_html 68 | } 69 | } 70 | 71 | pub async fn home(Extension(shared_state): Extension>) -> impl IntoResponse { 72 | 73 | // getting markdown content 74 | let md_str = fs::read_to_string("./content/home.md").unwrap(); 75 | let mut md_content = markdown::to_html(&md_str); 76 | 77 | // collecting pre start and end indexes 78 | let mut pre_start_indexes = Vec::new(); 79 | let mut pre_end_indexes = Vec::new(); 80 | for (index, _) in md_content.char_indices() { 81 | let chunk_length = 4; 82 | if index + chunk_length > md_content.len() { 83 | continue; 84 | } 85 | let chunck = &md_content[index..index+chunk_length]; 86 | if chunck == " impl IntoResponse { 139 | "Not Found!" 140 | } 141 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "addr2line" 7 | version = "0.21.0" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" 10 | dependencies = [ 11 | "gimli", 12 | ] 13 | 14 | [[package]] 15 | name = "adler" 16 | version = "1.0.2" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 19 | 20 | [[package]] 21 | name = "alloc-no-stdlib" 22 | version = "2.0.4" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" 25 | 26 | [[package]] 27 | name = "alloc-stdlib" 28 | version = "0.2.2" 29 | source = "registry+https://github.com/rust-lang/crates.io-index" 30 | checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" 31 | dependencies = [ 32 | "alloc-no-stdlib", 33 | ] 34 | 35 | [[package]] 36 | name = "askama" 37 | version = "0.12.1" 38 | source = "registry+https://github.com/rust-lang/crates.io-index" 39 | checksum = "b79091df18a97caea757e28cd2d5fda49c6cd4bd01ddffd7ff01ace0c0ad2c28" 40 | dependencies = [ 41 | "askama_derive", 42 | "askama_escape", 43 | "humansize", 44 | "num-traits", 45 | "percent-encoding", 46 | ] 47 | 48 | [[package]] 49 | name = "askama_derive" 50 | version = "0.12.5" 51 | source = "registry+https://github.com/rust-lang/crates.io-index" 52 | checksum = "19fe8d6cb13c4714962c072ea496f3392015f0989b1a2847bb4b2d9effd71d83" 53 | dependencies = [ 54 | "askama_parser", 55 | "basic-toml", 56 | "mime", 57 | "mime_guess", 58 | "proc-macro2", 59 | "quote", 60 | "serde", 61 | "syn", 62 | ] 63 | 64 | [[package]] 65 | name = "askama_escape" 66 | version = "0.10.3" 67 | source = "registry+https://github.com/rust-lang/crates.io-index" 68 | checksum = "619743e34b5ba4e9703bba34deac3427c72507c7159f5fd030aea8cac0cfe341" 69 | 70 | [[package]] 71 | name = "askama_parser" 72 | version = "0.2.1" 73 | source = "registry+https://github.com/rust-lang/crates.io-index" 74 | checksum = "acb1161c6b64d1c3d83108213c2a2533a342ac225aabd0bda218278c2ddb00c0" 75 | dependencies = [ 76 | "nom", 77 | ] 78 | 79 | [[package]] 80 | name = "async-compression" 81 | version = "0.4.9" 82 | source = "registry+https://github.com/rust-lang/crates.io-index" 83 | checksum = "4e9eabd7a98fe442131a17c316bd9349c43695e49e730c3c8e12cfb5f4da2693" 84 | dependencies = [ 85 | "brotli", 86 | "flate2", 87 | "futures-core", 88 | "memchr", 89 | "pin-project-lite", 90 | "tokio", 91 | "zstd", 92 | "zstd-safe", 93 | ] 94 | 95 | [[package]] 96 | name = "async-trait" 97 | version = "0.1.80" 98 | source = "registry+https://github.com/rust-lang/crates.io-index" 99 | checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" 100 | dependencies = [ 101 | "proc-macro2", 102 | "quote", 103 | "syn", 104 | ] 105 | 106 | [[package]] 107 | name = "autocfg" 108 | version = "1.3.0" 109 | source = "registry+https://github.com/rust-lang/crates.io-index" 110 | checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" 111 | 112 | [[package]] 113 | name = "axum" 114 | version = "0.7.5" 115 | source = "registry+https://github.com/rust-lang/crates.io-index" 116 | checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf" 117 | dependencies = [ 118 | "async-trait", 119 | "axum-core", 120 | "bytes", 121 | "futures-util", 122 | "http", 123 | "http-body", 124 | "http-body-util", 125 | "hyper", 126 | "hyper-util", 127 | "itoa", 128 | "matchit", 129 | "memchr", 130 | "mime", 131 | "percent-encoding", 132 | "pin-project-lite", 133 | "rustversion", 134 | "serde", 135 | "serde_json", 136 | "serde_path_to_error", 137 | "serde_urlencoded", 138 | "sync_wrapper 1.0.1", 139 | "tokio", 140 | "tower", 141 | "tower-layer", 142 | "tower-service", 143 | "tracing", 144 | ] 145 | 146 | [[package]] 147 | name = "axum-core" 148 | version = "0.4.3" 149 | source = "registry+https://github.com/rust-lang/crates.io-index" 150 | checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3" 151 | dependencies = [ 152 | "async-trait", 153 | "bytes", 154 | "futures-util", 155 | "http", 156 | "http-body", 157 | "http-body-util", 158 | "mime", 159 | "pin-project-lite", 160 | "rustversion", 161 | "sync_wrapper 0.1.2", 162 | "tower-layer", 163 | "tower-service", 164 | "tracing", 165 | ] 166 | 167 | [[package]] 168 | name = "axum-quickstart" 169 | version = "0.1.0" 170 | dependencies = [ 171 | "askama", 172 | "axum", 173 | "futures-util", 174 | "markdown", 175 | "syntect", 176 | "tokio", 177 | "tower", 178 | "tower-http", 179 | ] 180 | 181 | [[package]] 182 | name = "backtrace" 183 | version = "0.3.71" 184 | source = "registry+https://github.com/rust-lang/crates.io-index" 185 | checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" 186 | dependencies = [ 187 | "addr2line", 188 | "cc", 189 | "cfg-if", 190 | "libc", 191 | "miniz_oxide", 192 | "object", 193 | "rustc-demangle", 194 | ] 195 | 196 | [[package]] 197 | name = "base64" 198 | version = "0.21.7" 199 | source = "registry+https://github.com/rust-lang/crates.io-index" 200 | checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 201 | 202 | [[package]] 203 | name = "basic-toml" 204 | version = "0.1.9" 205 | source = "registry+https://github.com/rust-lang/crates.io-index" 206 | checksum = "823388e228f614e9558c6804262db37960ec8821856535f5c3f59913140558f8" 207 | dependencies = [ 208 | "serde", 209 | ] 210 | 211 | [[package]] 212 | name = "bincode" 213 | version = "1.3.3" 214 | source = "registry+https://github.com/rust-lang/crates.io-index" 215 | checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" 216 | dependencies = [ 217 | "serde", 218 | ] 219 | 220 | [[package]] 221 | name = "bitflags" 222 | version = "1.3.2" 223 | source = "registry+https://github.com/rust-lang/crates.io-index" 224 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 225 | 226 | [[package]] 227 | name = "bitflags" 228 | version = "2.5.0" 229 | source = "registry+https://github.com/rust-lang/crates.io-index" 230 | checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" 231 | 232 | [[package]] 233 | name = "brotli" 234 | version = "5.0.0" 235 | source = "registry+https://github.com/rust-lang/crates.io-index" 236 | checksum = "19483b140a7ac7174d34b5a581b406c64f84da5409d3e09cf4fff604f9270e67" 237 | dependencies = [ 238 | "alloc-no-stdlib", 239 | "alloc-stdlib", 240 | "brotli-decompressor", 241 | ] 242 | 243 | [[package]] 244 | name = "brotli-decompressor" 245 | version = "4.0.0" 246 | source = "registry+https://github.com/rust-lang/crates.io-index" 247 | checksum = "e6221fe77a248b9117d431ad93761222e1cf8ff282d9d1d5d9f53d6299a1cf76" 248 | dependencies = [ 249 | "alloc-no-stdlib", 250 | "alloc-stdlib", 251 | ] 252 | 253 | [[package]] 254 | name = "bytes" 255 | version = "1.6.0" 256 | source = "registry+https://github.com/rust-lang/crates.io-index" 257 | checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" 258 | 259 | [[package]] 260 | name = "cc" 261 | version = "1.0.96" 262 | source = "registry+https://github.com/rust-lang/crates.io-index" 263 | checksum = "065a29261d53ba54260972629f9ca6bffa69bac13cd1fed61420f7fa68b9f8bd" 264 | dependencies = [ 265 | "jobserver", 266 | "libc", 267 | "once_cell", 268 | ] 269 | 270 | [[package]] 271 | name = "cfg-if" 272 | version = "1.0.0" 273 | source = "registry+https://github.com/rust-lang/crates.io-index" 274 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 275 | 276 | [[package]] 277 | name = "crc32fast" 278 | version = "1.4.0" 279 | source = "registry+https://github.com/rust-lang/crates.io-index" 280 | checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" 281 | dependencies = [ 282 | "cfg-if", 283 | ] 284 | 285 | [[package]] 286 | name = "deranged" 287 | version = "0.3.11" 288 | source = "registry+https://github.com/rust-lang/crates.io-index" 289 | checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" 290 | dependencies = [ 291 | "powerfmt", 292 | ] 293 | 294 | [[package]] 295 | name = "equivalent" 296 | version = "1.0.1" 297 | source = "registry+https://github.com/rust-lang/crates.io-index" 298 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 299 | 300 | [[package]] 301 | name = "flate2" 302 | version = "1.0.30" 303 | source = "registry+https://github.com/rust-lang/crates.io-index" 304 | checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" 305 | dependencies = [ 306 | "crc32fast", 307 | "miniz_oxide", 308 | ] 309 | 310 | [[package]] 311 | name = "fnv" 312 | version = "1.0.7" 313 | source = "registry+https://github.com/rust-lang/crates.io-index" 314 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 315 | 316 | [[package]] 317 | name = "form_urlencoded" 318 | version = "1.2.1" 319 | source = "registry+https://github.com/rust-lang/crates.io-index" 320 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 321 | dependencies = [ 322 | "percent-encoding", 323 | ] 324 | 325 | [[package]] 326 | name = "futures-channel" 327 | version = "0.3.30" 328 | source = "registry+https://github.com/rust-lang/crates.io-index" 329 | checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" 330 | dependencies = [ 331 | "futures-core", 332 | ] 333 | 334 | [[package]] 335 | name = "futures-core" 336 | version = "0.3.30" 337 | source = "registry+https://github.com/rust-lang/crates.io-index" 338 | checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" 339 | 340 | [[package]] 341 | name = "futures-macro" 342 | version = "0.3.30" 343 | source = "registry+https://github.com/rust-lang/crates.io-index" 344 | checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" 345 | dependencies = [ 346 | "proc-macro2", 347 | "quote", 348 | "syn", 349 | ] 350 | 351 | [[package]] 352 | name = "futures-sink" 353 | version = "0.3.30" 354 | source = "registry+https://github.com/rust-lang/crates.io-index" 355 | checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" 356 | 357 | [[package]] 358 | name = "futures-task" 359 | version = "0.3.30" 360 | source = "registry+https://github.com/rust-lang/crates.io-index" 361 | checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" 362 | 363 | [[package]] 364 | name = "futures-util" 365 | version = "0.3.30" 366 | source = "registry+https://github.com/rust-lang/crates.io-index" 367 | checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" 368 | dependencies = [ 369 | "futures-core", 370 | "futures-macro", 371 | "futures-task", 372 | "pin-project-lite", 373 | "pin-utils", 374 | "slab", 375 | ] 376 | 377 | [[package]] 378 | name = "getrandom" 379 | version = "0.2.14" 380 | source = "registry+https://github.com/rust-lang/crates.io-index" 381 | checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" 382 | dependencies = [ 383 | "cfg-if", 384 | "libc", 385 | "wasi", 386 | ] 387 | 388 | [[package]] 389 | name = "gimli" 390 | version = "0.28.1" 391 | source = "registry+https://github.com/rust-lang/crates.io-index" 392 | checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" 393 | 394 | [[package]] 395 | name = "hashbrown" 396 | version = "0.14.5" 397 | source = "registry+https://github.com/rust-lang/crates.io-index" 398 | checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 399 | 400 | [[package]] 401 | name = "hermit-abi" 402 | version = "0.3.9" 403 | source = "registry+https://github.com/rust-lang/crates.io-index" 404 | checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" 405 | 406 | [[package]] 407 | name = "http" 408 | version = "1.1.0" 409 | source = "registry+https://github.com/rust-lang/crates.io-index" 410 | checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" 411 | dependencies = [ 412 | "bytes", 413 | "fnv", 414 | "itoa", 415 | ] 416 | 417 | [[package]] 418 | name = "http-body" 419 | version = "1.0.0" 420 | source = "registry+https://github.com/rust-lang/crates.io-index" 421 | checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" 422 | dependencies = [ 423 | "bytes", 424 | "http", 425 | ] 426 | 427 | [[package]] 428 | name = "http-body-util" 429 | version = "0.1.1" 430 | source = "registry+https://github.com/rust-lang/crates.io-index" 431 | checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d" 432 | dependencies = [ 433 | "bytes", 434 | "futures-core", 435 | "http", 436 | "http-body", 437 | "pin-project-lite", 438 | ] 439 | 440 | [[package]] 441 | name = "http-range-header" 442 | version = "0.4.1" 443 | source = "registry+https://github.com/rust-lang/crates.io-index" 444 | checksum = "08a397c49fec283e3d6211adbe480be95aae5f304cfb923e9970e08956d5168a" 445 | 446 | [[package]] 447 | name = "httparse" 448 | version = "1.8.0" 449 | source = "registry+https://github.com/rust-lang/crates.io-index" 450 | checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" 451 | 452 | [[package]] 453 | name = "httpdate" 454 | version = "1.0.3" 455 | source = "registry+https://github.com/rust-lang/crates.io-index" 456 | checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 457 | 458 | [[package]] 459 | name = "humansize" 460 | version = "2.1.3" 461 | source = "registry+https://github.com/rust-lang/crates.io-index" 462 | checksum = "6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7" 463 | dependencies = [ 464 | "libm", 465 | ] 466 | 467 | [[package]] 468 | name = "hyper" 469 | version = "1.3.1" 470 | source = "registry+https://github.com/rust-lang/crates.io-index" 471 | checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" 472 | dependencies = [ 473 | "bytes", 474 | "futures-channel", 475 | "futures-util", 476 | "http", 477 | "http-body", 478 | "httparse", 479 | "httpdate", 480 | "itoa", 481 | "pin-project-lite", 482 | "smallvec", 483 | "tokio", 484 | ] 485 | 486 | [[package]] 487 | name = "hyper-util" 488 | version = "0.1.3" 489 | source = "registry+https://github.com/rust-lang/crates.io-index" 490 | checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa" 491 | dependencies = [ 492 | "bytes", 493 | "futures-util", 494 | "http", 495 | "http-body", 496 | "hyper", 497 | "pin-project-lite", 498 | "socket2", 499 | "tokio", 500 | ] 501 | 502 | [[package]] 503 | name = "indexmap" 504 | version = "2.2.6" 505 | source = "registry+https://github.com/rust-lang/crates.io-index" 506 | checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" 507 | dependencies = [ 508 | "equivalent", 509 | "hashbrown", 510 | ] 511 | 512 | [[package]] 513 | name = "iri-string" 514 | version = "0.7.2" 515 | source = "registry+https://github.com/rust-lang/crates.io-index" 516 | checksum = "7f5f6c2df22c009ac44f6f1499308e7a3ac7ba42cd2378475cc691510e1eef1b" 517 | dependencies = [ 518 | "memchr", 519 | "serde", 520 | ] 521 | 522 | [[package]] 523 | name = "itoa" 524 | version = "1.0.11" 525 | source = "registry+https://github.com/rust-lang/crates.io-index" 526 | checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" 527 | 528 | [[package]] 529 | name = "jobserver" 530 | version = "0.1.31" 531 | source = "registry+https://github.com/rust-lang/crates.io-index" 532 | checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" 533 | dependencies = [ 534 | "libc", 535 | ] 536 | 537 | [[package]] 538 | name = "libc" 539 | version = "0.2.154" 540 | source = "registry+https://github.com/rust-lang/crates.io-index" 541 | checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346" 542 | 543 | [[package]] 544 | name = "libm" 545 | version = "0.2.8" 546 | source = "registry+https://github.com/rust-lang/crates.io-index" 547 | checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" 548 | 549 | [[package]] 550 | name = "line-wrap" 551 | version = "0.2.0" 552 | source = "registry+https://github.com/rust-lang/crates.io-index" 553 | checksum = "dd1bc4d24ad230d21fb898d1116b1801d7adfc449d42026475862ab48b11e70e" 554 | 555 | [[package]] 556 | name = "linked-hash-map" 557 | version = "0.5.6" 558 | source = "registry+https://github.com/rust-lang/crates.io-index" 559 | checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" 560 | 561 | [[package]] 562 | name = "lock_api" 563 | version = "0.4.12" 564 | source = "registry+https://github.com/rust-lang/crates.io-index" 565 | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 566 | dependencies = [ 567 | "autocfg", 568 | "scopeguard", 569 | ] 570 | 571 | [[package]] 572 | name = "log" 573 | version = "0.4.21" 574 | source = "registry+https://github.com/rust-lang/crates.io-index" 575 | checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" 576 | 577 | [[package]] 578 | name = "markdown" 579 | version = "1.0.0-alpha.17" 580 | source = "registry+https://github.com/rust-lang/crates.io-index" 581 | checksum = "21e27d6220ce21f80ce5c4201f23a37c6f1ad037c72c9d1ff215c2919605a5d6" 582 | dependencies = [ 583 | "unicode-id", 584 | ] 585 | 586 | [[package]] 587 | name = "matchit" 588 | version = "0.7.3" 589 | source = "registry+https://github.com/rust-lang/crates.io-index" 590 | checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" 591 | 592 | [[package]] 593 | name = "memchr" 594 | version = "2.7.2" 595 | source = "registry+https://github.com/rust-lang/crates.io-index" 596 | checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" 597 | 598 | [[package]] 599 | name = "mime" 600 | version = "0.3.17" 601 | source = "registry+https://github.com/rust-lang/crates.io-index" 602 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 603 | 604 | [[package]] 605 | name = "mime_guess" 606 | version = "2.0.4" 607 | source = "registry+https://github.com/rust-lang/crates.io-index" 608 | checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" 609 | dependencies = [ 610 | "mime", 611 | "unicase", 612 | ] 613 | 614 | [[package]] 615 | name = "minimal-lexical" 616 | version = "0.2.1" 617 | source = "registry+https://github.com/rust-lang/crates.io-index" 618 | checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 619 | 620 | [[package]] 621 | name = "miniz_oxide" 622 | version = "0.7.2" 623 | source = "registry+https://github.com/rust-lang/crates.io-index" 624 | checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" 625 | dependencies = [ 626 | "adler", 627 | ] 628 | 629 | [[package]] 630 | name = "mio" 631 | version = "0.8.11" 632 | source = "registry+https://github.com/rust-lang/crates.io-index" 633 | checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" 634 | dependencies = [ 635 | "libc", 636 | "wasi", 637 | "windows-sys 0.48.0", 638 | ] 639 | 640 | [[package]] 641 | name = "nom" 642 | version = "7.1.3" 643 | source = "registry+https://github.com/rust-lang/crates.io-index" 644 | checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 645 | dependencies = [ 646 | "memchr", 647 | "minimal-lexical", 648 | ] 649 | 650 | [[package]] 651 | name = "num-conv" 652 | version = "0.1.0" 653 | source = "registry+https://github.com/rust-lang/crates.io-index" 654 | checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" 655 | 656 | [[package]] 657 | name = "num-traits" 658 | version = "0.2.19" 659 | source = "registry+https://github.com/rust-lang/crates.io-index" 660 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 661 | dependencies = [ 662 | "autocfg", 663 | ] 664 | 665 | [[package]] 666 | name = "num_cpus" 667 | version = "1.16.0" 668 | source = "registry+https://github.com/rust-lang/crates.io-index" 669 | checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" 670 | dependencies = [ 671 | "hermit-abi", 672 | "libc", 673 | ] 674 | 675 | [[package]] 676 | name = "object" 677 | version = "0.32.2" 678 | source = "registry+https://github.com/rust-lang/crates.io-index" 679 | checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" 680 | dependencies = [ 681 | "memchr", 682 | ] 683 | 684 | [[package]] 685 | name = "once_cell" 686 | version = "1.19.0" 687 | source = "registry+https://github.com/rust-lang/crates.io-index" 688 | checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" 689 | 690 | [[package]] 691 | name = "onig" 692 | version = "6.4.0" 693 | source = "registry+https://github.com/rust-lang/crates.io-index" 694 | checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f" 695 | dependencies = [ 696 | "bitflags 1.3.2", 697 | "libc", 698 | "once_cell", 699 | "onig_sys", 700 | ] 701 | 702 | [[package]] 703 | name = "onig_sys" 704 | version = "69.8.1" 705 | source = "registry+https://github.com/rust-lang/crates.io-index" 706 | checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7" 707 | dependencies = [ 708 | "cc", 709 | "pkg-config", 710 | ] 711 | 712 | [[package]] 713 | name = "parking_lot" 714 | version = "0.12.2" 715 | source = "registry+https://github.com/rust-lang/crates.io-index" 716 | checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb" 717 | dependencies = [ 718 | "lock_api", 719 | "parking_lot_core", 720 | ] 721 | 722 | [[package]] 723 | name = "parking_lot_core" 724 | version = "0.9.10" 725 | source = "registry+https://github.com/rust-lang/crates.io-index" 726 | checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 727 | dependencies = [ 728 | "cfg-if", 729 | "libc", 730 | "redox_syscall", 731 | "smallvec", 732 | "windows-targets 0.52.5", 733 | ] 734 | 735 | [[package]] 736 | name = "percent-encoding" 737 | version = "2.3.1" 738 | source = "registry+https://github.com/rust-lang/crates.io-index" 739 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 740 | 741 | [[package]] 742 | name = "pin-project" 743 | version = "1.1.5" 744 | source = "registry+https://github.com/rust-lang/crates.io-index" 745 | checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" 746 | dependencies = [ 747 | "pin-project-internal", 748 | ] 749 | 750 | [[package]] 751 | name = "pin-project-internal" 752 | version = "1.1.5" 753 | source = "registry+https://github.com/rust-lang/crates.io-index" 754 | checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" 755 | dependencies = [ 756 | "proc-macro2", 757 | "quote", 758 | "syn", 759 | ] 760 | 761 | [[package]] 762 | name = "pin-project-lite" 763 | version = "0.2.14" 764 | source = "registry+https://github.com/rust-lang/crates.io-index" 765 | checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" 766 | 767 | [[package]] 768 | name = "pin-utils" 769 | version = "0.1.0" 770 | source = "registry+https://github.com/rust-lang/crates.io-index" 771 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 772 | 773 | [[package]] 774 | name = "pkg-config" 775 | version = "0.3.30" 776 | source = "registry+https://github.com/rust-lang/crates.io-index" 777 | checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" 778 | 779 | [[package]] 780 | name = "plist" 781 | version = "1.6.1" 782 | source = "registry+https://github.com/rust-lang/crates.io-index" 783 | checksum = "d9d34169e64b3c7a80c8621a48adaf44e0cf62c78a9b25dd9dd35f1881a17cf9" 784 | dependencies = [ 785 | "base64", 786 | "indexmap", 787 | "line-wrap", 788 | "quick-xml", 789 | "serde", 790 | "time", 791 | ] 792 | 793 | [[package]] 794 | name = "powerfmt" 795 | version = "0.2.0" 796 | source = "registry+https://github.com/rust-lang/crates.io-index" 797 | checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 798 | 799 | [[package]] 800 | name = "proc-macro2" 801 | version = "1.0.81" 802 | source = "registry+https://github.com/rust-lang/crates.io-index" 803 | checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" 804 | dependencies = [ 805 | "unicode-ident", 806 | ] 807 | 808 | [[package]] 809 | name = "quick-xml" 810 | version = "0.31.0" 811 | source = "registry+https://github.com/rust-lang/crates.io-index" 812 | checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" 813 | dependencies = [ 814 | "memchr", 815 | ] 816 | 817 | [[package]] 818 | name = "quote" 819 | version = "1.0.36" 820 | source = "registry+https://github.com/rust-lang/crates.io-index" 821 | checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" 822 | dependencies = [ 823 | "proc-macro2", 824 | ] 825 | 826 | [[package]] 827 | name = "redox_syscall" 828 | version = "0.5.1" 829 | source = "registry+https://github.com/rust-lang/crates.io-index" 830 | checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" 831 | dependencies = [ 832 | "bitflags 2.5.0", 833 | ] 834 | 835 | [[package]] 836 | name = "regex-syntax" 837 | version = "0.8.3" 838 | source = "registry+https://github.com/rust-lang/crates.io-index" 839 | checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" 840 | 841 | [[package]] 842 | name = "rustc-demangle" 843 | version = "0.1.23" 844 | source = "registry+https://github.com/rust-lang/crates.io-index" 845 | checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" 846 | 847 | [[package]] 848 | name = "rustversion" 849 | version = "1.0.15" 850 | source = "registry+https://github.com/rust-lang/crates.io-index" 851 | checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47" 852 | 853 | [[package]] 854 | name = "ryu" 855 | version = "1.0.17" 856 | source = "registry+https://github.com/rust-lang/crates.io-index" 857 | checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" 858 | 859 | [[package]] 860 | name = "same-file" 861 | version = "1.0.6" 862 | source = "registry+https://github.com/rust-lang/crates.io-index" 863 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 864 | dependencies = [ 865 | "winapi-util", 866 | ] 867 | 868 | [[package]] 869 | name = "scopeguard" 870 | version = "1.2.0" 871 | source = "registry+https://github.com/rust-lang/crates.io-index" 872 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 873 | 874 | [[package]] 875 | name = "serde" 876 | version = "1.0.200" 877 | source = "registry+https://github.com/rust-lang/crates.io-index" 878 | checksum = "ddc6f9cc94d67c0e21aaf7eda3a010fd3af78ebf6e096aa6e2e13c79749cce4f" 879 | dependencies = [ 880 | "serde_derive", 881 | ] 882 | 883 | [[package]] 884 | name = "serde_derive" 885 | version = "1.0.200" 886 | source = "registry+https://github.com/rust-lang/crates.io-index" 887 | checksum = "856f046b9400cee3c8c94ed572ecdb752444c24528c035cd35882aad6f492bcb" 888 | dependencies = [ 889 | "proc-macro2", 890 | "quote", 891 | "syn", 892 | ] 893 | 894 | [[package]] 895 | name = "serde_json" 896 | version = "1.0.116" 897 | source = "registry+https://github.com/rust-lang/crates.io-index" 898 | checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" 899 | dependencies = [ 900 | "itoa", 901 | "ryu", 902 | "serde", 903 | ] 904 | 905 | [[package]] 906 | name = "serde_path_to_error" 907 | version = "0.1.16" 908 | source = "registry+https://github.com/rust-lang/crates.io-index" 909 | checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" 910 | dependencies = [ 911 | "itoa", 912 | "serde", 913 | ] 914 | 915 | [[package]] 916 | name = "serde_urlencoded" 917 | version = "0.7.1" 918 | source = "registry+https://github.com/rust-lang/crates.io-index" 919 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 920 | dependencies = [ 921 | "form_urlencoded", 922 | "itoa", 923 | "ryu", 924 | "serde", 925 | ] 926 | 927 | [[package]] 928 | name = "signal-hook-registry" 929 | version = "1.4.2" 930 | source = "registry+https://github.com/rust-lang/crates.io-index" 931 | checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" 932 | dependencies = [ 933 | "libc", 934 | ] 935 | 936 | [[package]] 937 | name = "slab" 938 | version = "0.4.9" 939 | source = "registry+https://github.com/rust-lang/crates.io-index" 940 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 941 | dependencies = [ 942 | "autocfg", 943 | ] 944 | 945 | [[package]] 946 | name = "smallvec" 947 | version = "1.13.2" 948 | source = "registry+https://github.com/rust-lang/crates.io-index" 949 | checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" 950 | 951 | [[package]] 952 | name = "socket2" 953 | version = "0.5.7" 954 | source = "registry+https://github.com/rust-lang/crates.io-index" 955 | checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" 956 | dependencies = [ 957 | "libc", 958 | "windows-sys 0.52.0", 959 | ] 960 | 961 | [[package]] 962 | name = "syn" 963 | version = "2.0.60" 964 | source = "registry+https://github.com/rust-lang/crates.io-index" 965 | checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3" 966 | dependencies = [ 967 | "proc-macro2", 968 | "quote", 969 | "unicode-ident", 970 | ] 971 | 972 | [[package]] 973 | name = "sync_wrapper" 974 | version = "0.1.2" 975 | source = "registry+https://github.com/rust-lang/crates.io-index" 976 | checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" 977 | 978 | [[package]] 979 | name = "sync_wrapper" 980 | version = "1.0.1" 981 | source = "registry+https://github.com/rust-lang/crates.io-index" 982 | checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" 983 | 984 | [[package]] 985 | name = "syntect" 986 | version = "5.2.0" 987 | source = "registry+https://github.com/rust-lang/crates.io-index" 988 | checksum = "874dcfa363995604333cf947ae9f751ca3af4522c60886774c4963943b4746b1" 989 | dependencies = [ 990 | "bincode", 991 | "bitflags 1.3.2", 992 | "flate2", 993 | "fnv", 994 | "once_cell", 995 | "onig", 996 | "plist", 997 | "regex-syntax", 998 | "serde", 999 | "serde_derive", 1000 | "serde_json", 1001 | "thiserror", 1002 | "walkdir", 1003 | "yaml-rust", 1004 | ] 1005 | 1006 | [[package]] 1007 | name = "thiserror" 1008 | version = "1.0.59" 1009 | source = "registry+https://github.com/rust-lang/crates.io-index" 1010 | checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa" 1011 | dependencies = [ 1012 | "thiserror-impl", 1013 | ] 1014 | 1015 | [[package]] 1016 | name = "thiserror-impl" 1017 | version = "1.0.59" 1018 | source = "registry+https://github.com/rust-lang/crates.io-index" 1019 | checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66" 1020 | dependencies = [ 1021 | "proc-macro2", 1022 | "quote", 1023 | "syn", 1024 | ] 1025 | 1026 | [[package]] 1027 | name = "time" 1028 | version = "0.3.36" 1029 | source = "registry+https://github.com/rust-lang/crates.io-index" 1030 | checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" 1031 | dependencies = [ 1032 | "deranged", 1033 | "itoa", 1034 | "num-conv", 1035 | "powerfmt", 1036 | "serde", 1037 | "time-core", 1038 | "time-macros", 1039 | ] 1040 | 1041 | [[package]] 1042 | name = "time-core" 1043 | version = "0.1.2" 1044 | source = "registry+https://github.com/rust-lang/crates.io-index" 1045 | checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" 1046 | 1047 | [[package]] 1048 | name = "time-macros" 1049 | version = "0.2.18" 1050 | source = "registry+https://github.com/rust-lang/crates.io-index" 1051 | checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" 1052 | dependencies = [ 1053 | "num-conv", 1054 | "time-core", 1055 | ] 1056 | 1057 | [[package]] 1058 | name = "tokio" 1059 | version = "1.37.0" 1060 | source = "registry+https://github.com/rust-lang/crates.io-index" 1061 | checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" 1062 | dependencies = [ 1063 | "backtrace", 1064 | "bytes", 1065 | "libc", 1066 | "mio", 1067 | "num_cpus", 1068 | "parking_lot", 1069 | "pin-project-lite", 1070 | "signal-hook-registry", 1071 | "socket2", 1072 | "tokio-macros", 1073 | "windows-sys 0.48.0", 1074 | ] 1075 | 1076 | [[package]] 1077 | name = "tokio-macros" 1078 | version = "2.2.0" 1079 | source = "registry+https://github.com/rust-lang/crates.io-index" 1080 | checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" 1081 | dependencies = [ 1082 | "proc-macro2", 1083 | "quote", 1084 | "syn", 1085 | ] 1086 | 1087 | [[package]] 1088 | name = "tokio-util" 1089 | version = "0.7.10" 1090 | source = "registry+https://github.com/rust-lang/crates.io-index" 1091 | checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" 1092 | dependencies = [ 1093 | "bytes", 1094 | "futures-core", 1095 | "futures-sink", 1096 | "pin-project-lite", 1097 | "tokio", 1098 | ] 1099 | 1100 | [[package]] 1101 | name = "tower" 1102 | version = "0.4.13" 1103 | source = "registry+https://github.com/rust-lang/crates.io-index" 1104 | checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" 1105 | dependencies = [ 1106 | "futures-core", 1107 | "futures-util", 1108 | "pin-project", 1109 | "pin-project-lite", 1110 | "tokio", 1111 | "tower-layer", 1112 | "tower-service", 1113 | "tracing", 1114 | ] 1115 | 1116 | [[package]] 1117 | name = "tower-http" 1118 | version = "0.5.2" 1119 | source = "registry+https://github.com/rust-lang/crates.io-index" 1120 | checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" 1121 | dependencies = [ 1122 | "async-compression", 1123 | "base64", 1124 | "bitflags 2.5.0", 1125 | "bytes", 1126 | "futures-core", 1127 | "futures-util", 1128 | "http", 1129 | "http-body", 1130 | "http-body-util", 1131 | "http-range-header", 1132 | "httpdate", 1133 | "iri-string", 1134 | "mime", 1135 | "mime_guess", 1136 | "percent-encoding", 1137 | "pin-project-lite", 1138 | "tokio", 1139 | "tokio-util", 1140 | "tower", 1141 | "tower-layer", 1142 | "tower-service", 1143 | "tracing", 1144 | "uuid", 1145 | ] 1146 | 1147 | [[package]] 1148 | name = "tower-layer" 1149 | version = "0.3.2" 1150 | source = "registry+https://github.com/rust-lang/crates.io-index" 1151 | checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" 1152 | 1153 | [[package]] 1154 | name = "tower-service" 1155 | version = "0.3.2" 1156 | source = "registry+https://github.com/rust-lang/crates.io-index" 1157 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 1158 | 1159 | [[package]] 1160 | name = "tracing" 1161 | version = "0.1.40" 1162 | source = "registry+https://github.com/rust-lang/crates.io-index" 1163 | checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 1164 | dependencies = [ 1165 | "log", 1166 | "pin-project-lite", 1167 | "tracing-core", 1168 | ] 1169 | 1170 | [[package]] 1171 | name = "tracing-core" 1172 | version = "0.1.32" 1173 | source = "registry+https://github.com/rust-lang/crates.io-index" 1174 | checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" 1175 | dependencies = [ 1176 | "once_cell", 1177 | ] 1178 | 1179 | [[package]] 1180 | name = "unicase" 1181 | version = "2.7.0" 1182 | source = "registry+https://github.com/rust-lang/crates.io-index" 1183 | checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" 1184 | dependencies = [ 1185 | "version_check", 1186 | ] 1187 | 1188 | [[package]] 1189 | name = "unicode-id" 1190 | version = "0.3.4" 1191 | source = "registry+https://github.com/rust-lang/crates.io-index" 1192 | checksum = "b1b6def86329695390197b82c1e244a54a131ceb66c996f2088a3876e2ae083f" 1193 | 1194 | [[package]] 1195 | name = "unicode-ident" 1196 | version = "1.0.12" 1197 | source = "registry+https://github.com/rust-lang/crates.io-index" 1198 | checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" 1199 | 1200 | [[package]] 1201 | name = "uuid" 1202 | version = "1.8.0" 1203 | source = "registry+https://github.com/rust-lang/crates.io-index" 1204 | checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" 1205 | dependencies = [ 1206 | "getrandom", 1207 | ] 1208 | 1209 | [[package]] 1210 | name = "version_check" 1211 | version = "0.9.4" 1212 | source = "registry+https://github.com/rust-lang/crates.io-index" 1213 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 1214 | 1215 | [[package]] 1216 | name = "walkdir" 1217 | version = "2.5.0" 1218 | source = "registry+https://github.com/rust-lang/crates.io-index" 1219 | checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 1220 | dependencies = [ 1221 | "same-file", 1222 | "winapi-util", 1223 | ] 1224 | 1225 | [[package]] 1226 | name = "wasi" 1227 | version = "0.11.0+wasi-snapshot-preview1" 1228 | source = "registry+https://github.com/rust-lang/crates.io-index" 1229 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 1230 | 1231 | [[package]] 1232 | name = "winapi-util" 1233 | version = "0.1.8" 1234 | source = "registry+https://github.com/rust-lang/crates.io-index" 1235 | checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" 1236 | dependencies = [ 1237 | "windows-sys 0.52.0", 1238 | ] 1239 | 1240 | [[package]] 1241 | name = "windows-sys" 1242 | version = "0.48.0" 1243 | source = "registry+https://github.com/rust-lang/crates.io-index" 1244 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 1245 | dependencies = [ 1246 | "windows-targets 0.48.5", 1247 | ] 1248 | 1249 | [[package]] 1250 | name = "windows-sys" 1251 | version = "0.52.0" 1252 | source = "registry+https://github.com/rust-lang/crates.io-index" 1253 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 1254 | dependencies = [ 1255 | "windows-targets 0.52.5", 1256 | ] 1257 | 1258 | [[package]] 1259 | name = "windows-targets" 1260 | version = "0.48.5" 1261 | source = "registry+https://github.com/rust-lang/crates.io-index" 1262 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 1263 | dependencies = [ 1264 | "windows_aarch64_gnullvm 0.48.5", 1265 | "windows_aarch64_msvc 0.48.5", 1266 | "windows_i686_gnu 0.48.5", 1267 | "windows_i686_msvc 0.48.5", 1268 | "windows_x86_64_gnu 0.48.5", 1269 | "windows_x86_64_gnullvm 0.48.5", 1270 | "windows_x86_64_msvc 0.48.5", 1271 | ] 1272 | 1273 | [[package]] 1274 | name = "windows-targets" 1275 | version = "0.52.5" 1276 | source = "registry+https://github.com/rust-lang/crates.io-index" 1277 | checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" 1278 | dependencies = [ 1279 | "windows_aarch64_gnullvm 0.52.5", 1280 | "windows_aarch64_msvc 0.52.5", 1281 | "windows_i686_gnu 0.52.5", 1282 | "windows_i686_gnullvm", 1283 | "windows_i686_msvc 0.52.5", 1284 | "windows_x86_64_gnu 0.52.5", 1285 | "windows_x86_64_gnullvm 0.52.5", 1286 | "windows_x86_64_msvc 0.52.5", 1287 | ] 1288 | 1289 | [[package]] 1290 | name = "windows_aarch64_gnullvm" 1291 | version = "0.48.5" 1292 | source = "registry+https://github.com/rust-lang/crates.io-index" 1293 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 1294 | 1295 | [[package]] 1296 | name = "windows_aarch64_gnullvm" 1297 | version = "0.52.5" 1298 | source = "registry+https://github.com/rust-lang/crates.io-index" 1299 | checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" 1300 | 1301 | [[package]] 1302 | name = "windows_aarch64_msvc" 1303 | version = "0.48.5" 1304 | source = "registry+https://github.com/rust-lang/crates.io-index" 1305 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 1306 | 1307 | [[package]] 1308 | name = "windows_aarch64_msvc" 1309 | version = "0.52.5" 1310 | source = "registry+https://github.com/rust-lang/crates.io-index" 1311 | checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" 1312 | 1313 | [[package]] 1314 | name = "windows_i686_gnu" 1315 | version = "0.48.5" 1316 | source = "registry+https://github.com/rust-lang/crates.io-index" 1317 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 1318 | 1319 | [[package]] 1320 | name = "windows_i686_gnu" 1321 | version = "0.52.5" 1322 | source = "registry+https://github.com/rust-lang/crates.io-index" 1323 | checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" 1324 | 1325 | [[package]] 1326 | name = "windows_i686_gnullvm" 1327 | version = "0.52.5" 1328 | source = "registry+https://github.com/rust-lang/crates.io-index" 1329 | checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" 1330 | 1331 | [[package]] 1332 | name = "windows_i686_msvc" 1333 | version = "0.48.5" 1334 | source = "registry+https://github.com/rust-lang/crates.io-index" 1335 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 1336 | 1337 | [[package]] 1338 | name = "windows_i686_msvc" 1339 | version = "0.52.5" 1340 | source = "registry+https://github.com/rust-lang/crates.io-index" 1341 | checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" 1342 | 1343 | [[package]] 1344 | name = "windows_x86_64_gnu" 1345 | version = "0.48.5" 1346 | source = "registry+https://github.com/rust-lang/crates.io-index" 1347 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 1348 | 1349 | [[package]] 1350 | name = "windows_x86_64_gnu" 1351 | version = "0.52.5" 1352 | source = "registry+https://github.com/rust-lang/crates.io-index" 1353 | checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" 1354 | 1355 | [[package]] 1356 | name = "windows_x86_64_gnullvm" 1357 | version = "0.48.5" 1358 | source = "registry+https://github.com/rust-lang/crates.io-index" 1359 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 1360 | 1361 | [[package]] 1362 | name = "windows_x86_64_gnullvm" 1363 | version = "0.52.5" 1364 | source = "registry+https://github.com/rust-lang/crates.io-index" 1365 | checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" 1366 | 1367 | [[package]] 1368 | name = "windows_x86_64_msvc" 1369 | version = "0.48.5" 1370 | source = "registry+https://github.com/rust-lang/crates.io-index" 1371 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 1372 | 1373 | [[package]] 1374 | name = "windows_x86_64_msvc" 1375 | version = "0.52.5" 1376 | source = "registry+https://github.com/rust-lang/crates.io-index" 1377 | checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" 1378 | 1379 | [[package]] 1380 | name = "yaml-rust" 1381 | version = "0.4.5" 1382 | source = "registry+https://github.com/rust-lang/crates.io-index" 1383 | checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" 1384 | dependencies = [ 1385 | "linked-hash-map", 1386 | ] 1387 | 1388 | [[package]] 1389 | name = "zstd" 1390 | version = "0.13.1" 1391 | source = "registry+https://github.com/rust-lang/crates.io-index" 1392 | checksum = "2d789b1514203a1120ad2429eae43a7bd32b90976a7bb8a05f7ec02fa88cc23a" 1393 | dependencies = [ 1394 | "zstd-safe", 1395 | ] 1396 | 1397 | [[package]] 1398 | name = "zstd-safe" 1399 | version = "7.1.0" 1400 | source = "registry+https://github.com/rust-lang/crates.io-index" 1401 | checksum = "1cd99b45c6bc03a018c8b8a86025678c87e55526064e38f9df301989dce7ec0a" 1402 | dependencies = [ 1403 | "zstd-sys", 1404 | ] 1405 | 1406 | [[package]] 1407 | name = "zstd-sys" 1408 | version = "2.0.10+zstd.1.5.6" 1409 | source = "registry+https://github.com/rust-lang/crates.io-index" 1410 | checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" 1411 | dependencies = [ 1412 | "cc", 1413 | "pkg-config", 1414 | ] 1415 | --------------------------------------------------------------------------------