{{ post.posted_at }}
// 19 | {{ post.title }} 20 |├── .github └── ISSUE_TEMPLATE │ ├── rlog-bug-report.md │ └── rlog-feature-request.md ├── .gitignore ├── CODE_OF_CONDUCT.md ├── Cargo.lock ├── Cargo.toml ├── Dockerfile ├── LICENSE ├── README.md ├── SECURITY.md ├── docker-compose.yml ├── docs └── splash.png ├── posts └── sample-post │ ├── post.md │ └── post.toml ├── src ├── handlers │ ├── about_handler.rs │ ├── blog_handler.rs │ ├── contact_handler.rs │ ├── home_handler.rs │ ├── mod.rs │ ├── not_found_handler.rs │ └── post_handler.rs ├── lib.rs ├── main.rs └── utils │ ├── extract_content.rs │ ├── extract_meta.rs │ ├── get_html.rs │ └── mod.rs ├── static ├── assets │ └── .gitkeep ├── css │ ├── blog.css │ ├── global.css │ ├── markdown.css │ ├── navigation.css │ └── not_found.css ├── favicon.ico ├── robots.txt └── sitemap.txt └── templates ├── about ├── about.html ├── content.md └── meta.toml ├── base.html ├── blog ├── blog.html └── meta.toml ├── contact ├── contact.html ├── content.md └── meta.toml ├── home ├── content.md ├── home.html └── meta.toml ├── nav.html ├── not_found.html └── post.html /.github/ISSUE_TEMPLATE/rlog-bug-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: rlog Bug report 3 | about: Create a report to help us improve rlog 4 | title: "[BUG]" 5 | labels: '' 6 | assignees: tumpa02 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/rlog-feature-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: rlog Feature request 3 | about: Suggest an idea or feature for this project 4 | title: "[FEATURE]" 5 | labels: '' 6 | assignees: tumpa02 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | .DS_Store 3 | /.idea 4 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, religion, or sexual identity 10 | and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community include: 19 | 20 | * Demonstrating empathy and kindness toward other people 21 | * Being respectful of differing opinions, viewpoints, and experiences 22 | * Giving and gracefully accepting constructive feedback 23 | * Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | * Focusing on what is best not just for us as individuals, but for the 26 | overall community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | * The use of sexualized language or imagery, and sexual attention or 31 | advances of any kind 32 | * Trolling, insulting or derogatory comments, and personal or political attacks 33 | * Public or private harassment 34 | * Publishing others' private information, such as a physical or email 35 | address, without their explicit permission 36 | * Other conduct which could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Community leaders are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Community leaders have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## Scope 52 | 53 | This Code of Conduct applies within all community spaces, and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported to the community leaders responsible for enforcement at 63 | 72min@proton.me. 64 | All complaints will be reviewed and investigated promptly and fairly. 65 | 66 | All community leaders are obligated to respect the privacy and security of the 67 | reporter of any incident. 68 | 69 | ## Enforcement Guidelines 70 | 71 | Community leaders will follow these Community Impact Guidelines in determining 72 | the consequences for any action they deem in violation of this Code of Conduct: 73 | 74 | ### 1. Correction 75 | 76 | **Community Impact**: Use of inappropriate language or other behavior deemed 77 | unprofessional or unwelcome in the community. 78 | 79 | **Consequence**: A private, written warning from community leaders, providing 80 | clarity around the nature of the violation and an explanation of why the 81 | behavior was inappropriate. A public apology may be requested. 82 | 83 | ### 2. Warning 84 | 85 | **Community Impact**: A violation through a single incident or series 86 | of actions. 87 | 88 | **Consequence**: A warning with consequences for continued behavior. No 89 | interaction with the people involved, including unsolicited interaction with 90 | those enforcing the Code of Conduct, for a specified period of time. This 91 | includes avoiding interactions in community spaces as well as external channels 92 | like social media. Violating these terms may lead to a temporary or 93 | permanent ban. 94 | 95 | ### 3. Temporary Ban 96 | 97 | **Community Impact**: A serious violation of community standards, including 98 | sustained inappropriate behavior. 99 | 100 | **Consequence**: A temporary ban from any sort of interaction or public 101 | communication with the community for a specified period of time. No public or 102 | private interaction with the people involved, including unsolicited interaction 103 | with those enforcing the Code of Conduct, is allowed during this period. 104 | Violating these terms may lead to a permanent ban. 105 | 106 | ### 4. Permanent Ban 107 | 108 | **Community Impact**: Demonstrating a pattern of violation of community 109 | standards, including sustained inappropriate behavior, harassment of an 110 | individual, or aggression toward or disparagement of classes of individuals. 111 | 112 | **Consequence**: A permanent ban from any sort of public interaction within 113 | the community. 114 | 115 | ## Attribution 116 | 117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 | version 2.0, available at 119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 120 | 121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 122 | enforcement ladder](https://github.com/mozilla/diversity). 123 | 124 | [homepage]: https://www.contributor-covenant.org 125 | 126 | For answers to common questions about this code of conduct, see the FAQ at 127 | https://www.contributor-covenant.org/faq. Translations are available at 128 | https://www.contributor-covenant.org/translations. 129 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 4 4 | 5 | [[package]] 6 | name = "actix-codec" 7 | version = "0.5.2" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a" 10 | dependencies = [ 11 | "bitflags", 12 | "bytes", 13 | "futures-core", 14 | "futures-sink", 15 | "memchr", 16 | "pin-project-lite", 17 | "tokio", 18 | "tokio-util", 19 | "tracing", 20 | ] 21 | 22 | [[package]] 23 | name = "actix-files" 24 | version = "0.6.6" 25 | source = "registry+https://github.com/rust-lang/crates.io-index" 26 | checksum = "0773d59061dedb49a8aed04c67291b9d8cf2fe0b60130a381aab53c6dd86e9be" 27 | dependencies = [ 28 | "actix-http", 29 | "actix-service", 30 | "actix-utils", 31 | "actix-web", 32 | "bitflags", 33 | "bytes", 34 | "derive_more 0.99.19", 35 | "futures-core", 36 | "http-range", 37 | "log", 38 | "mime", 39 | "mime_guess", 40 | "percent-encoding", 41 | "pin-project-lite", 42 | "v_htmlescape", 43 | ] 44 | 45 | [[package]] 46 | name = "actix-http" 47 | version = "3.10.0" 48 | source = "registry+https://github.com/rust-lang/crates.io-index" 49 | checksum = "0fa882656b67966045e4152c634051e70346939fced7117d5f0b52146a7c74c9" 50 | dependencies = [ 51 | "actix-codec", 52 | "actix-rt", 53 | "actix-service", 54 | "actix-utils", 55 | "base64", 56 | "bitflags", 57 | "brotli", 58 | "bytes", 59 | "bytestring", 60 | "derive_more 2.0.1", 61 | "encoding_rs", 62 | "flate2", 63 | "foldhash", 64 | "futures-core", 65 | "h2", 66 | "http", 67 | "httparse", 68 | "httpdate", 69 | "itoa", 70 | "language-tags", 71 | "local-channel", 72 | "mime", 73 | "percent-encoding", 74 | "pin-project-lite", 75 | "rand 0.9.0", 76 | "sha1", 77 | "smallvec", 78 | "tokio", 79 | "tokio-util", 80 | "tracing", 81 | "zstd", 82 | ] 83 | 84 | [[package]] 85 | name = "actix-macros" 86 | version = "0.2.4" 87 | source = "registry+https://github.com/rust-lang/crates.io-index" 88 | checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" 89 | dependencies = [ 90 | "quote", 91 | "syn", 92 | ] 93 | 94 | [[package]] 95 | name = "actix-router" 96 | version = "0.5.3" 97 | source = "registry+https://github.com/rust-lang/crates.io-index" 98 | checksum = "13d324164c51f63867b57e73ba5936ea151b8a41a1d23d1031eeb9f70d0236f8" 99 | dependencies = [ 100 | "bytestring", 101 | "cfg-if", 102 | "http", 103 | "regex", 104 | "regex-lite", 105 | "serde", 106 | "tracing", 107 | ] 108 | 109 | [[package]] 110 | name = "actix-rt" 111 | version = "2.10.0" 112 | source = "registry+https://github.com/rust-lang/crates.io-index" 113 | checksum = "24eda4e2a6e042aa4e55ac438a2ae052d3b5da0ecf83d7411e1a368946925208" 114 | dependencies = [ 115 | "futures-core", 116 | "tokio", 117 | ] 118 | 119 | [[package]] 120 | name = "actix-server" 121 | version = "2.5.1" 122 | source = "registry+https://github.com/rust-lang/crates.io-index" 123 | checksum = "6398974fd4284f4768af07965701efbbb5fdc0616bff20cade1bb14b77675e24" 124 | dependencies = [ 125 | "actix-rt", 126 | "actix-service", 127 | "actix-utils", 128 | "futures-core", 129 | "futures-util", 130 | "mio", 131 | "socket2", 132 | "tokio", 133 | "tracing", 134 | ] 135 | 136 | [[package]] 137 | name = "actix-service" 138 | version = "2.0.3" 139 | source = "registry+https://github.com/rust-lang/crates.io-index" 140 | checksum = "9e46f36bf0e5af44bdc4bdb36fbbd421aa98c79a9bce724e1edeb3894e10dc7f" 141 | dependencies = [ 142 | "futures-core", 143 | "pin-project-lite", 144 | ] 145 | 146 | [[package]] 147 | name = "actix-utils" 148 | version = "3.0.1" 149 | source = "registry+https://github.com/rust-lang/crates.io-index" 150 | checksum = "88a1dcdff1466e3c2488e1cb5c36a71822750ad43839937f85d2f4d9f8b705d8" 151 | dependencies = [ 152 | "local-waker", 153 | "pin-project-lite", 154 | ] 155 | 156 | [[package]] 157 | name = "actix-web" 158 | version = "4.10.2" 159 | source = "registry+https://github.com/rust-lang/crates.io-index" 160 | checksum = "f2e3b15b3dc6c6ed996e4032389e9849d4ab002b1e92fbfe85b5f307d1479b4d" 161 | dependencies = [ 162 | "actix-codec", 163 | "actix-http", 164 | "actix-macros", 165 | "actix-router", 166 | "actix-rt", 167 | "actix-server", 168 | "actix-service", 169 | "actix-utils", 170 | "actix-web-codegen", 171 | "bytes", 172 | "bytestring", 173 | "cfg-if", 174 | "cookie", 175 | "derive_more 2.0.1", 176 | "encoding_rs", 177 | "foldhash", 178 | "futures-core", 179 | "futures-util", 180 | "impl-more", 181 | "itoa", 182 | "language-tags", 183 | "log", 184 | "mime", 185 | "once_cell", 186 | "pin-project-lite", 187 | "regex", 188 | "regex-lite", 189 | "serde", 190 | "serde_json", 191 | "serde_urlencoded", 192 | "smallvec", 193 | "socket2", 194 | "time", 195 | "tracing", 196 | "url", 197 | ] 198 | 199 | [[package]] 200 | name = "actix-web-codegen" 201 | version = "4.3.0" 202 | source = "registry+https://github.com/rust-lang/crates.io-index" 203 | checksum = "f591380e2e68490b5dfaf1dd1aa0ebe78d84ba7067078512b4ea6e4492d622b8" 204 | dependencies = [ 205 | "actix-router", 206 | "proc-macro2", 207 | "quote", 208 | "syn", 209 | ] 210 | 211 | [[package]] 212 | name = "addr2line" 213 | version = "0.24.2" 214 | source = "registry+https://github.com/rust-lang/crates.io-index" 215 | checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" 216 | dependencies = [ 217 | "gimli", 218 | ] 219 | 220 | [[package]] 221 | name = "adler2" 222 | version = "2.0.0" 223 | source = "registry+https://github.com/rust-lang/crates.io-index" 224 | checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" 225 | 226 | [[package]] 227 | name = "aho-corasick" 228 | version = "1.1.3" 229 | source = "registry+https://github.com/rust-lang/crates.io-index" 230 | checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 231 | dependencies = [ 232 | "memchr", 233 | ] 234 | 235 | [[package]] 236 | name = "alloc-no-stdlib" 237 | version = "2.0.4" 238 | source = "registry+https://github.com/rust-lang/crates.io-index" 239 | checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" 240 | 241 | [[package]] 242 | name = "alloc-stdlib" 243 | version = "0.2.2" 244 | source = "registry+https://github.com/rust-lang/crates.io-index" 245 | checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" 246 | dependencies = [ 247 | "alloc-no-stdlib", 248 | ] 249 | 250 | [[package]] 251 | name = "android-tzdata" 252 | version = "0.1.1" 253 | source = "registry+https://github.com/rust-lang/crates.io-index" 254 | checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" 255 | 256 | [[package]] 257 | name = "android_system_properties" 258 | version = "0.1.5" 259 | source = "registry+https://github.com/rust-lang/crates.io-index" 260 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 261 | dependencies = [ 262 | "libc", 263 | ] 264 | 265 | [[package]] 266 | name = "anstream" 267 | version = "0.6.18" 268 | source = "registry+https://github.com/rust-lang/crates.io-index" 269 | checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" 270 | dependencies = [ 271 | "anstyle", 272 | "anstyle-parse", 273 | "anstyle-query", 274 | "anstyle-wincon", 275 | "colorchoice", 276 | "is_terminal_polyfill", 277 | "utf8parse", 278 | ] 279 | 280 | [[package]] 281 | name = "anstyle" 282 | version = "1.0.10" 283 | source = "registry+https://github.com/rust-lang/crates.io-index" 284 | checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" 285 | 286 | [[package]] 287 | name = "anstyle-parse" 288 | version = "0.2.6" 289 | source = "registry+https://github.com/rust-lang/crates.io-index" 290 | checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" 291 | dependencies = [ 292 | "utf8parse", 293 | ] 294 | 295 | [[package]] 296 | name = "anstyle-query" 297 | version = "1.1.2" 298 | source = "registry+https://github.com/rust-lang/crates.io-index" 299 | checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" 300 | dependencies = [ 301 | "windows-sys 0.59.0", 302 | ] 303 | 304 | [[package]] 305 | name = "anstyle-wincon" 306 | version = "3.0.7" 307 | source = "registry+https://github.com/rust-lang/crates.io-index" 308 | checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" 309 | dependencies = [ 310 | "anstyle", 311 | "once_cell", 312 | "windows-sys 0.59.0", 313 | ] 314 | 315 | [[package]] 316 | name = "autocfg" 317 | version = "1.4.0" 318 | source = "registry+https://github.com/rust-lang/crates.io-index" 319 | checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" 320 | 321 | [[package]] 322 | name = "backtrace" 323 | version = "0.3.74" 324 | source = "registry+https://github.com/rust-lang/crates.io-index" 325 | checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" 326 | dependencies = [ 327 | "addr2line", 328 | "cfg-if", 329 | "libc", 330 | "miniz_oxide", 331 | "object", 332 | "rustc-demangle", 333 | "windows-targets", 334 | ] 335 | 336 | [[package]] 337 | name = "base64" 338 | version = "0.22.1" 339 | source = "registry+https://github.com/rust-lang/crates.io-index" 340 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 341 | 342 | [[package]] 343 | name = "bitflags" 344 | version = "2.9.0" 345 | source = "registry+https://github.com/rust-lang/crates.io-index" 346 | checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" 347 | 348 | [[package]] 349 | name = "block-buffer" 350 | version = "0.10.4" 351 | source = "registry+https://github.com/rust-lang/crates.io-index" 352 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 353 | dependencies = [ 354 | "generic-array", 355 | ] 356 | 357 | [[package]] 358 | name = "brotli" 359 | version = "7.0.0" 360 | source = "registry+https://github.com/rust-lang/crates.io-index" 361 | checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd" 362 | dependencies = [ 363 | "alloc-no-stdlib", 364 | "alloc-stdlib", 365 | "brotli-decompressor", 366 | ] 367 | 368 | [[package]] 369 | name = "brotli-decompressor" 370 | version = "4.0.2" 371 | source = "registry+https://github.com/rust-lang/crates.io-index" 372 | checksum = "74fa05ad7d803d413eb8380983b092cbbaf9a85f151b871360e7b00cd7060b37" 373 | dependencies = [ 374 | "alloc-no-stdlib", 375 | "alloc-stdlib", 376 | ] 377 | 378 | [[package]] 379 | name = "bstr" 380 | version = "1.11.3" 381 | source = "registry+https://github.com/rust-lang/crates.io-index" 382 | checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" 383 | dependencies = [ 384 | "memchr", 385 | "serde", 386 | ] 387 | 388 | [[package]] 389 | name = "bumpalo" 390 | version = "3.17.0" 391 | source = "registry+https://github.com/rust-lang/crates.io-index" 392 | checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" 393 | 394 | [[package]] 395 | name = "bytes" 396 | version = "1.10.1" 397 | source = "registry+https://github.com/rust-lang/crates.io-index" 398 | checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" 399 | 400 | [[package]] 401 | name = "bytestring" 402 | version = "1.4.0" 403 | source = "registry+https://github.com/rust-lang/crates.io-index" 404 | checksum = "e465647ae23b2823b0753f50decb2d5a86d2bb2cac04788fafd1f80e45378e5f" 405 | dependencies = [ 406 | "bytes", 407 | ] 408 | 409 | [[package]] 410 | name = "cc" 411 | version = "1.2.17" 412 | source = "registry+https://github.com/rust-lang/crates.io-index" 413 | checksum = "1fcb57c740ae1daf453ae85f16e37396f672b039e00d9d866e07ddb24e328e3a" 414 | dependencies = [ 415 | "jobserver", 416 | "libc", 417 | "shlex", 418 | ] 419 | 420 | [[package]] 421 | name = "cfg-if" 422 | version = "1.0.0" 423 | source = "registry+https://github.com/rust-lang/crates.io-index" 424 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 425 | 426 | [[package]] 427 | name = "chrono" 428 | version = "0.4.40" 429 | source = "registry+https://github.com/rust-lang/crates.io-index" 430 | checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" 431 | dependencies = [ 432 | "android-tzdata", 433 | "iana-time-zone", 434 | "num-traits", 435 | "windows-link", 436 | ] 437 | 438 | [[package]] 439 | name = "chrono-tz" 440 | version = "0.9.0" 441 | source = "registry+https://github.com/rust-lang/crates.io-index" 442 | checksum = "93698b29de5e97ad0ae26447b344c482a7284c737d9ddc5f9e52b74a336671bb" 443 | dependencies = [ 444 | "chrono", 445 | "chrono-tz-build", 446 | "phf", 447 | ] 448 | 449 | [[package]] 450 | name = "chrono-tz-build" 451 | version = "0.3.0" 452 | source = "registry+https://github.com/rust-lang/crates.io-index" 453 | checksum = "0c088aee841df9c3041febbb73934cfc39708749bf96dc827e3359cd39ef11b1" 454 | dependencies = [ 455 | "parse-zoneinfo", 456 | "phf", 457 | "phf_codegen", 458 | ] 459 | 460 | [[package]] 461 | name = "colorchoice" 462 | version = "1.0.3" 463 | source = "registry+https://github.com/rust-lang/crates.io-index" 464 | checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" 465 | 466 | [[package]] 467 | name = "convert_case" 468 | version = "0.4.0" 469 | source = "registry+https://github.com/rust-lang/crates.io-index" 470 | checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" 471 | 472 | [[package]] 473 | name = "cookie" 474 | version = "0.16.2" 475 | source = "registry+https://github.com/rust-lang/crates.io-index" 476 | checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" 477 | dependencies = [ 478 | "percent-encoding", 479 | "time", 480 | "version_check", 481 | ] 482 | 483 | [[package]] 484 | name = "core-foundation-sys" 485 | version = "0.8.7" 486 | source = "registry+https://github.com/rust-lang/crates.io-index" 487 | checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 488 | 489 | [[package]] 490 | name = "cpufeatures" 491 | version = "0.2.17" 492 | source = "registry+https://github.com/rust-lang/crates.io-index" 493 | checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" 494 | dependencies = [ 495 | "libc", 496 | ] 497 | 498 | [[package]] 499 | name = "crc32fast" 500 | version = "1.4.2" 501 | source = "registry+https://github.com/rust-lang/crates.io-index" 502 | checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" 503 | dependencies = [ 504 | "cfg-if", 505 | ] 506 | 507 | [[package]] 508 | name = "crossbeam-deque" 509 | version = "0.8.6" 510 | source = "registry+https://github.com/rust-lang/crates.io-index" 511 | checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" 512 | dependencies = [ 513 | "crossbeam-epoch", 514 | "crossbeam-utils", 515 | ] 516 | 517 | [[package]] 518 | name = "crossbeam-epoch" 519 | version = "0.9.18" 520 | source = "registry+https://github.com/rust-lang/crates.io-index" 521 | checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 522 | dependencies = [ 523 | "crossbeam-utils", 524 | ] 525 | 526 | [[package]] 527 | name = "crossbeam-utils" 528 | version = "0.8.21" 529 | source = "registry+https://github.com/rust-lang/crates.io-index" 530 | checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 531 | 532 | [[package]] 533 | name = "crypto-common" 534 | version = "0.1.6" 535 | source = "registry+https://github.com/rust-lang/crates.io-index" 536 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 537 | dependencies = [ 538 | "generic-array", 539 | "typenum", 540 | ] 541 | 542 | [[package]] 543 | name = "deranged" 544 | version = "0.4.1" 545 | source = "registry+https://github.com/rust-lang/crates.io-index" 546 | checksum = "28cfac68e08048ae1883171632c2aef3ebc555621ae56fbccce1cbf22dd7f058" 547 | dependencies = [ 548 | "powerfmt", 549 | ] 550 | 551 | [[package]] 552 | name = "derive_more" 553 | version = "0.99.19" 554 | source = "registry+https://github.com/rust-lang/crates.io-index" 555 | checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f" 556 | dependencies = [ 557 | "convert_case", 558 | "proc-macro2", 559 | "quote", 560 | "rustc_version", 561 | "syn", 562 | ] 563 | 564 | [[package]] 565 | name = "derive_more" 566 | version = "2.0.1" 567 | source = "registry+https://github.com/rust-lang/crates.io-index" 568 | checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" 569 | dependencies = [ 570 | "derive_more-impl", 571 | ] 572 | 573 | [[package]] 574 | name = "derive_more-impl" 575 | version = "2.0.1" 576 | source = "registry+https://github.com/rust-lang/crates.io-index" 577 | checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" 578 | dependencies = [ 579 | "proc-macro2", 580 | "quote", 581 | "syn", 582 | "unicode-xid", 583 | ] 584 | 585 | [[package]] 586 | name = "deunicode" 587 | version = "1.6.1" 588 | source = "registry+https://github.com/rust-lang/crates.io-index" 589 | checksum = "dc55fe0d1f6c107595572ec8b107c0999bb1a2e0b75e37429a4fb0d6474a0e7d" 590 | 591 | [[package]] 592 | name = "digest" 593 | version = "0.10.7" 594 | source = "registry+https://github.com/rust-lang/crates.io-index" 595 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 596 | dependencies = [ 597 | "block-buffer", 598 | "crypto-common", 599 | ] 600 | 601 | [[package]] 602 | name = "displaydoc" 603 | version = "0.2.5" 604 | source = "registry+https://github.com/rust-lang/crates.io-index" 605 | checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 606 | dependencies = [ 607 | "proc-macro2", 608 | "quote", 609 | "syn", 610 | ] 611 | 612 | [[package]] 613 | name = "encoding_rs" 614 | version = "0.8.35" 615 | source = "registry+https://github.com/rust-lang/crates.io-index" 616 | checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" 617 | dependencies = [ 618 | "cfg-if", 619 | ] 620 | 621 | [[package]] 622 | name = "env_filter" 623 | version = "0.1.3" 624 | source = "registry+https://github.com/rust-lang/crates.io-index" 625 | checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" 626 | dependencies = [ 627 | "log", 628 | "regex", 629 | ] 630 | 631 | [[package]] 632 | name = "env_logger" 633 | version = "0.11.7" 634 | source = "registry+https://github.com/rust-lang/crates.io-index" 635 | checksum = "c3716d7a920fb4fac5d84e9d4bce8ceb321e9414b4409da61b07b75c1e3d0697" 636 | dependencies = [ 637 | "anstream", 638 | "anstyle", 639 | "env_filter", 640 | "jiff", 641 | "log", 642 | ] 643 | 644 | [[package]] 645 | name = "equivalent" 646 | version = "1.0.2" 647 | source = "registry+https://github.com/rust-lang/crates.io-index" 648 | checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 649 | 650 | [[package]] 651 | name = "flate2" 652 | version = "1.1.0" 653 | source = "registry+https://github.com/rust-lang/crates.io-index" 654 | checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" 655 | dependencies = [ 656 | "crc32fast", 657 | "miniz_oxide", 658 | ] 659 | 660 | [[package]] 661 | name = "fnv" 662 | version = "1.0.7" 663 | source = "registry+https://github.com/rust-lang/crates.io-index" 664 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 665 | 666 | [[package]] 667 | name = "foldhash" 668 | version = "0.1.5" 669 | source = "registry+https://github.com/rust-lang/crates.io-index" 670 | checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 671 | 672 | [[package]] 673 | name = "form_urlencoded" 674 | version = "1.2.1" 675 | source = "registry+https://github.com/rust-lang/crates.io-index" 676 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 677 | dependencies = [ 678 | "percent-encoding", 679 | ] 680 | 681 | [[package]] 682 | name = "futures-core" 683 | version = "0.3.31" 684 | source = "registry+https://github.com/rust-lang/crates.io-index" 685 | checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 686 | 687 | [[package]] 688 | name = "futures-sink" 689 | version = "0.3.31" 690 | source = "registry+https://github.com/rust-lang/crates.io-index" 691 | checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 692 | 693 | [[package]] 694 | name = "futures-task" 695 | version = "0.3.31" 696 | source = "registry+https://github.com/rust-lang/crates.io-index" 697 | checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 698 | 699 | [[package]] 700 | name = "futures-util" 701 | version = "0.3.31" 702 | source = "registry+https://github.com/rust-lang/crates.io-index" 703 | checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 704 | dependencies = [ 705 | "futures-core", 706 | "futures-task", 707 | "pin-project-lite", 708 | "pin-utils", 709 | ] 710 | 711 | [[package]] 712 | name = "generic-array" 713 | version = "0.14.7" 714 | source = "registry+https://github.com/rust-lang/crates.io-index" 715 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 716 | dependencies = [ 717 | "typenum", 718 | "version_check", 719 | ] 720 | 721 | [[package]] 722 | name = "getrandom" 723 | version = "0.2.15" 724 | source = "registry+https://github.com/rust-lang/crates.io-index" 725 | checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 726 | dependencies = [ 727 | "cfg-if", 728 | "libc", 729 | "wasi 0.11.0+wasi-snapshot-preview1", 730 | ] 731 | 732 | [[package]] 733 | name = "getrandom" 734 | version = "0.3.2" 735 | source = "registry+https://github.com/rust-lang/crates.io-index" 736 | checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" 737 | dependencies = [ 738 | "cfg-if", 739 | "libc", 740 | "r-efi", 741 | "wasi 0.14.2+wasi-0.2.4", 742 | ] 743 | 744 | [[package]] 745 | name = "gimli" 746 | version = "0.31.1" 747 | source = "registry+https://github.com/rust-lang/crates.io-index" 748 | checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" 749 | 750 | [[package]] 751 | name = "globset" 752 | version = "0.4.16" 753 | source = "registry+https://github.com/rust-lang/crates.io-index" 754 | checksum = "54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5" 755 | dependencies = [ 756 | "aho-corasick", 757 | "bstr", 758 | "log", 759 | "regex-automata", 760 | "regex-syntax", 761 | ] 762 | 763 | [[package]] 764 | name = "globwalk" 765 | version = "0.9.1" 766 | source = "registry+https://github.com/rust-lang/crates.io-index" 767 | checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757" 768 | dependencies = [ 769 | "bitflags", 770 | "ignore", 771 | "walkdir", 772 | ] 773 | 774 | [[package]] 775 | name = "h2" 776 | version = "0.3.26" 777 | source = "registry+https://github.com/rust-lang/crates.io-index" 778 | checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" 779 | dependencies = [ 780 | "bytes", 781 | "fnv", 782 | "futures-core", 783 | "futures-sink", 784 | "futures-util", 785 | "http", 786 | "indexmap", 787 | "slab", 788 | "tokio", 789 | "tokio-util", 790 | "tracing", 791 | ] 792 | 793 | [[package]] 794 | name = "hashbrown" 795 | version = "0.15.2" 796 | source = "registry+https://github.com/rust-lang/crates.io-index" 797 | checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" 798 | 799 | [[package]] 800 | name = "http" 801 | version = "0.2.12" 802 | source = "registry+https://github.com/rust-lang/crates.io-index" 803 | checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" 804 | dependencies = [ 805 | "bytes", 806 | "fnv", 807 | "itoa", 808 | ] 809 | 810 | [[package]] 811 | name = "http-range" 812 | version = "0.1.5" 813 | source = "registry+https://github.com/rust-lang/crates.io-index" 814 | checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" 815 | 816 | [[package]] 817 | name = "httparse" 818 | version = "1.10.1" 819 | source = "registry+https://github.com/rust-lang/crates.io-index" 820 | checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" 821 | 822 | [[package]] 823 | name = "httpdate" 824 | version = "1.0.3" 825 | source = "registry+https://github.com/rust-lang/crates.io-index" 826 | checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 827 | 828 | [[package]] 829 | name = "humansize" 830 | version = "2.1.3" 831 | source = "registry+https://github.com/rust-lang/crates.io-index" 832 | checksum = "6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7" 833 | dependencies = [ 834 | "libm", 835 | ] 836 | 837 | [[package]] 838 | name = "iana-time-zone" 839 | version = "0.1.62" 840 | source = "registry+https://github.com/rust-lang/crates.io-index" 841 | checksum = "b2fd658b06e56721792c5df4475705b6cda790e9298d19d2f8af083457bcd127" 842 | dependencies = [ 843 | "android_system_properties", 844 | "core-foundation-sys", 845 | "iana-time-zone-haiku", 846 | "js-sys", 847 | "log", 848 | "wasm-bindgen", 849 | "windows-core", 850 | ] 851 | 852 | [[package]] 853 | name = "iana-time-zone-haiku" 854 | version = "0.1.2" 855 | source = "registry+https://github.com/rust-lang/crates.io-index" 856 | checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 857 | dependencies = [ 858 | "cc", 859 | ] 860 | 861 | [[package]] 862 | name = "icu_collections" 863 | version = "1.5.0" 864 | source = "registry+https://github.com/rust-lang/crates.io-index" 865 | checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" 866 | dependencies = [ 867 | "displaydoc", 868 | "yoke", 869 | "zerofrom", 870 | "zerovec", 871 | ] 872 | 873 | [[package]] 874 | name = "icu_locid" 875 | version = "1.5.0" 876 | source = "registry+https://github.com/rust-lang/crates.io-index" 877 | checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" 878 | dependencies = [ 879 | "displaydoc", 880 | "litemap", 881 | "tinystr", 882 | "writeable", 883 | "zerovec", 884 | ] 885 | 886 | [[package]] 887 | name = "icu_locid_transform" 888 | version = "1.5.0" 889 | source = "registry+https://github.com/rust-lang/crates.io-index" 890 | checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" 891 | dependencies = [ 892 | "displaydoc", 893 | "icu_locid", 894 | "icu_locid_transform_data", 895 | "icu_provider", 896 | "tinystr", 897 | "zerovec", 898 | ] 899 | 900 | [[package]] 901 | name = "icu_locid_transform_data" 902 | version = "1.5.1" 903 | source = "registry+https://github.com/rust-lang/crates.io-index" 904 | checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" 905 | 906 | [[package]] 907 | name = "icu_normalizer" 908 | version = "1.5.0" 909 | source = "registry+https://github.com/rust-lang/crates.io-index" 910 | checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" 911 | dependencies = [ 912 | "displaydoc", 913 | "icu_collections", 914 | "icu_normalizer_data", 915 | "icu_properties", 916 | "icu_provider", 917 | "smallvec", 918 | "utf16_iter", 919 | "utf8_iter", 920 | "write16", 921 | "zerovec", 922 | ] 923 | 924 | [[package]] 925 | name = "icu_normalizer_data" 926 | version = "1.5.1" 927 | source = "registry+https://github.com/rust-lang/crates.io-index" 928 | checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" 929 | 930 | [[package]] 931 | name = "icu_properties" 932 | version = "1.5.1" 933 | source = "registry+https://github.com/rust-lang/crates.io-index" 934 | checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" 935 | dependencies = [ 936 | "displaydoc", 937 | "icu_collections", 938 | "icu_locid_transform", 939 | "icu_properties_data", 940 | "icu_provider", 941 | "tinystr", 942 | "zerovec", 943 | ] 944 | 945 | [[package]] 946 | name = "icu_properties_data" 947 | version = "1.5.1" 948 | source = "registry+https://github.com/rust-lang/crates.io-index" 949 | checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" 950 | 951 | [[package]] 952 | name = "icu_provider" 953 | version = "1.5.0" 954 | source = "registry+https://github.com/rust-lang/crates.io-index" 955 | checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" 956 | dependencies = [ 957 | "displaydoc", 958 | "icu_locid", 959 | "icu_provider_macros", 960 | "stable_deref_trait", 961 | "tinystr", 962 | "writeable", 963 | "yoke", 964 | "zerofrom", 965 | "zerovec", 966 | ] 967 | 968 | [[package]] 969 | name = "icu_provider_macros" 970 | version = "1.5.0" 971 | source = "registry+https://github.com/rust-lang/crates.io-index" 972 | checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" 973 | dependencies = [ 974 | "proc-macro2", 975 | "quote", 976 | "syn", 977 | ] 978 | 979 | [[package]] 980 | name = "idna" 981 | version = "1.0.3" 982 | source = "registry+https://github.com/rust-lang/crates.io-index" 983 | checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" 984 | dependencies = [ 985 | "idna_adapter", 986 | "smallvec", 987 | "utf8_iter", 988 | ] 989 | 990 | [[package]] 991 | name = "idna_adapter" 992 | version = "1.2.0" 993 | source = "registry+https://github.com/rust-lang/crates.io-index" 994 | checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" 995 | dependencies = [ 996 | "icu_normalizer", 997 | "icu_properties", 998 | ] 999 | 1000 | [[package]] 1001 | name = "ignore" 1002 | version = "0.4.23" 1003 | source = "registry+https://github.com/rust-lang/crates.io-index" 1004 | checksum = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b" 1005 | dependencies = [ 1006 | "crossbeam-deque", 1007 | "globset", 1008 | "log", 1009 | "memchr", 1010 | "regex-automata", 1011 | "same-file", 1012 | "walkdir", 1013 | "winapi-util", 1014 | ] 1015 | 1016 | [[package]] 1017 | name = "impl-more" 1018 | version = "0.1.9" 1019 | source = "registry+https://github.com/rust-lang/crates.io-index" 1020 | checksum = "e8a5a9a0ff0086c7a148acb942baaabeadf9504d10400b5a05645853729b9cd2" 1021 | 1022 | [[package]] 1023 | name = "indexmap" 1024 | version = "2.8.0" 1025 | source = "registry+https://github.com/rust-lang/crates.io-index" 1026 | checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" 1027 | dependencies = [ 1028 | "equivalent", 1029 | "hashbrown", 1030 | ] 1031 | 1032 | [[package]] 1033 | name = "is_terminal_polyfill" 1034 | version = "1.70.1" 1035 | source = "registry+https://github.com/rust-lang/crates.io-index" 1036 | checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" 1037 | 1038 | [[package]] 1039 | name = "itoa" 1040 | version = "1.0.15" 1041 | source = "registry+https://github.com/rust-lang/crates.io-index" 1042 | checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 1043 | 1044 | [[package]] 1045 | name = "jiff" 1046 | version = "0.2.5" 1047 | source = "registry+https://github.com/rust-lang/crates.io-index" 1048 | checksum = "c102670231191d07d37a35af3eb77f1f0dbf7a71be51a962dcd57ea607be7260" 1049 | dependencies = [ 1050 | "jiff-static", 1051 | "log", 1052 | "portable-atomic", 1053 | "portable-atomic-util", 1054 | "serde", 1055 | ] 1056 | 1057 | [[package]] 1058 | name = "jiff-static" 1059 | version = "0.2.5" 1060 | source = "registry+https://github.com/rust-lang/crates.io-index" 1061 | checksum = "4cdde31a9d349f1b1f51a0b3714a5940ac022976f4b49485fc04be052b183b4c" 1062 | dependencies = [ 1063 | "proc-macro2", 1064 | "quote", 1065 | "syn", 1066 | ] 1067 | 1068 | [[package]] 1069 | name = "jobserver" 1070 | version = "0.1.32" 1071 | source = "registry+https://github.com/rust-lang/crates.io-index" 1072 | checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" 1073 | dependencies = [ 1074 | "libc", 1075 | ] 1076 | 1077 | [[package]] 1078 | name = "js-sys" 1079 | version = "0.3.77" 1080 | source = "registry+https://github.com/rust-lang/crates.io-index" 1081 | checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" 1082 | dependencies = [ 1083 | "once_cell", 1084 | "wasm-bindgen", 1085 | ] 1086 | 1087 | [[package]] 1088 | name = "language-tags" 1089 | version = "0.3.2" 1090 | source = "registry+https://github.com/rust-lang/crates.io-index" 1091 | checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388" 1092 | 1093 | [[package]] 1094 | name = "lazy_static" 1095 | version = "1.5.0" 1096 | source = "registry+https://github.com/rust-lang/crates.io-index" 1097 | checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 1098 | 1099 | [[package]] 1100 | name = "libc" 1101 | version = "0.2.171" 1102 | source = "registry+https://github.com/rust-lang/crates.io-index" 1103 | checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" 1104 | 1105 | [[package]] 1106 | name = "libm" 1107 | version = "0.2.11" 1108 | source = "registry+https://github.com/rust-lang/crates.io-index" 1109 | checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" 1110 | 1111 | [[package]] 1112 | name = "litemap" 1113 | version = "0.7.5" 1114 | source = "registry+https://github.com/rust-lang/crates.io-index" 1115 | checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" 1116 | 1117 | [[package]] 1118 | name = "local-channel" 1119 | version = "0.1.5" 1120 | source = "registry+https://github.com/rust-lang/crates.io-index" 1121 | checksum = "b6cbc85e69b8df4b8bb8b89ec634e7189099cea8927a276b7384ce5488e53ec8" 1122 | dependencies = [ 1123 | "futures-core", 1124 | "futures-sink", 1125 | "local-waker", 1126 | ] 1127 | 1128 | [[package]] 1129 | name = "local-waker" 1130 | version = "0.1.4" 1131 | source = "registry+https://github.com/rust-lang/crates.io-index" 1132 | checksum = "4d873d7c67ce09b42110d801813efbc9364414e356be9935700d368351657487" 1133 | 1134 | [[package]] 1135 | name = "lock_api" 1136 | version = "0.4.12" 1137 | source = "registry+https://github.com/rust-lang/crates.io-index" 1138 | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 1139 | dependencies = [ 1140 | "autocfg", 1141 | "scopeguard", 1142 | ] 1143 | 1144 | [[package]] 1145 | name = "log" 1146 | version = "0.4.27" 1147 | source = "registry+https://github.com/rust-lang/crates.io-index" 1148 | checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" 1149 | 1150 | [[package]] 1151 | name = "memchr" 1152 | version = "2.7.4" 1153 | source = "registry+https://github.com/rust-lang/crates.io-index" 1154 | checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 1155 | 1156 | [[package]] 1157 | name = "mime" 1158 | version = "0.3.17" 1159 | source = "registry+https://github.com/rust-lang/crates.io-index" 1160 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 1161 | 1162 | [[package]] 1163 | name = "mime_guess" 1164 | version = "2.0.5" 1165 | source = "registry+https://github.com/rust-lang/crates.io-index" 1166 | checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" 1167 | dependencies = [ 1168 | "mime", 1169 | "unicase", 1170 | ] 1171 | 1172 | [[package]] 1173 | name = "miniz_oxide" 1174 | version = "0.8.5" 1175 | source = "registry+https://github.com/rust-lang/crates.io-index" 1176 | checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" 1177 | dependencies = [ 1178 | "adler2", 1179 | ] 1180 | 1181 | [[package]] 1182 | name = "mio" 1183 | version = "1.0.3" 1184 | source = "registry+https://github.com/rust-lang/crates.io-index" 1185 | checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" 1186 | dependencies = [ 1187 | "libc", 1188 | "log", 1189 | "wasi 0.11.0+wasi-snapshot-preview1", 1190 | "windows-sys 0.52.0", 1191 | ] 1192 | 1193 | [[package]] 1194 | name = "num-conv" 1195 | version = "0.1.0" 1196 | source = "registry+https://github.com/rust-lang/crates.io-index" 1197 | checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" 1198 | 1199 | [[package]] 1200 | name = "num-traits" 1201 | version = "0.2.19" 1202 | source = "registry+https://github.com/rust-lang/crates.io-index" 1203 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 1204 | dependencies = [ 1205 | "autocfg", 1206 | ] 1207 | 1208 | [[package]] 1209 | name = "object" 1210 | version = "0.36.7" 1211 | source = "registry+https://github.com/rust-lang/crates.io-index" 1212 | checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" 1213 | dependencies = [ 1214 | "memchr", 1215 | ] 1216 | 1217 | [[package]] 1218 | name = "once_cell" 1219 | version = "1.21.3" 1220 | source = "registry+https://github.com/rust-lang/crates.io-index" 1221 | checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 1222 | 1223 | [[package]] 1224 | name = "parking_lot" 1225 | version = "0.12.3" 1226 | source = "registry+https://github.com/rust-lang/crates.io-index" 1227 | checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" 1228 | dependencies = [ 1229 | "lock_api", 1230 | "parking_lot_core", 1231 | ] 1232 | 1233 | [[package]] 1234 | name = "parking_lot_core" 1235 | version = "0.9.10" 1236 | source = "registry+https://github.com/rust-lang/crates.io-index" 1237 | checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 1238 | dependencies = [ 1239 | "cfg-if", 1240 | "libc", 1241 | "redox_syscall", 1242 | "smallvec", 1243 | "windows-targets", 1244 | ] 1245 | 1246 | [[package]] 1247 | name = "parse-zoneinfo" 1248 | version = "0.3.1" 1249 | source = "registry+https://github.com/rust-lang/crates.io-index" 1250 | checksum = "1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24" 1251 | dependencies = [ 1252 | "regex", 1253 | ] 1254 | 1255 | [[package]] 1256 | name = "percent-encoding" 1257 | version = "2.3.1" 1258 | source = "registry+https://github.com/rust-lang/crates.io-index" 1259 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 1260 | 1261 | [[package]] 1262 | name = "pest" 1263 | version = "2.8.0" 1264 | source = "registry+https://github.com/rust-lang/crates.io-index" 1265 | checksum = "198db74531d58c70a361c42201efde7e2591e976d518caf7662a47dc5720e7b6" 1266 | dependencies = [ 1267 | "memchr", 1268 | "thiserror", 1269 | "ucd-trie", 1270 | ] 1271 | 1272 | [[package]] 1273 | name = "pest_derive" 1274 | version = "2.8.0" 1275 | source = "registry+https://github.com/rust-lang/crates.io-index" 1276 | checksum = "d725d9cfd79e87dccc9341a2ef39d1b6f6353d68c4b33c177febbe1a402c97c5" 1277 | dependencies = [ 1278 | "pest", 1279 | "pest_generator", 1280 | ] 1281 | 1282 | [[package]] 1283 | name = "pest_generator" 1284 | version = "2.8.0" 1285 | source = "registry+https://github.com/rust-lang/crates.io-index" 1286 | checksum = "db7d01726be8ab66ab32f9df467ae8b1148906685bbe75c82d1e65d7f5b3f841" 1287 | dependencies = [ 1288 | "pest", 1289 | "pest_meta", 1290 | "proc-macro2", 1291 | "quote", 1292 | "syn", 1293 | ] 1294 | 1295 | [[package]] 1296 | name = "pest_meta" 1297 | version = "2.8.0" 1298 | source = "registry+https://github.com/rust-lang/crates.io-index" 1299 | checksum = "7f9f832470494906d1fca5329f8ab5791cc60beb230c74815dff541cbd2b5ca0" 1300 | dependencies = [ 1301 | "once_cell", 1302 | "pest", 1303 | "sha2", 1304 | ] 1305 | 1306 | [[package]] 1307 | name = "phf" 1308 | version = "0.11.3" 1309 | source = "registry+https://github.com/rust-lang/crates.io-index" 1310 | checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" 1311 | dependencies = [ 1312 | "phf_shared", 1313 | ] 1314 | 1315 | [[package]] 1316 | name = "phf_codegen" 1317 | version = "0.11.3" 1318 | source = "registry+https://github.com/rust-lang/crates.io-index" 1319 | checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" 1320 | dependencies = [ 1321 | "phf_generator", 1322 | "phf_shared", 1323 | ] 1324 | 1325 | [[package]] 1326 | name = "phf_generator" 1327 | version = "0.11.3" 1328 | source = "registry+https://github.com/rust-lang/crates.io-index" 1329 | checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" 1330 | dependencies = [ 1331 | "phf_shared", 1332 | "rand 0.8.5", 1333 | ] 1334 | 1335 | [[package]] 1336 | name = "phf_shared" 1337 | version = "0.11.3" 1338 | source = "registry+https://github.com/rust-lang/crates.io-index" 1339 | checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" 1340 | dependencies = [ 1341 | "siphasher", 1342 | ] 1343 | 1344 | [[package]] 1345 | name = "pin-project-lite" 1346 | version = "0.2.16" 1347 | source = "registry+https://github.com/rust-lang/crates.io-index" 1348 | checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" 1349 | 1350 | [[package]] 1351 | name = "pin-utils" 1352 | version = "0.1.0" 1353 | source = "registry+https://github.com/rust-lang/crates.io-index" 1354 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 1355 | 1356 | [[package]] 1357 | name = "pkg-config" 1358 | version = "0.3.32" 1359 | source = "registry+https://github.com/rust-lang/crates.io-index" 1360 | checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" 1361 | 1362 | [[package]] 1363 | name = "portable-atomic" 1364 | version = "1.11.0" 1365 | source = "registry+https://github.com/rust-lang/crates.io-index" 1366 | checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" 1367 | 1368 | [[package]] 1369 | name = "portable-atomic-util" 1370 | version = "0.2.4" 1371 | source = "registry+https://github.com/rust-lang/crates.io-index" 1372 | checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" 1373 | dependencies = [ 1374 | "portable-atomic", 1375 | ] 1376 | 1377 | [[package]] 1378 | name = "powerfmt" 1379 | version = "0.2.0" 1380 | source = "registry+https://github.com/rust-lang/crates.io-index" 1381 | checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 1382 | 1383 | [[package]] 1384 | name = "ppv-lite86" 1385 | version = "0.2.21" 1386 | source = "registry+https://github.com/rust-lang/crates.io-index" 1387 | checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" 1388 | dependencies = [ 1389 | "zerocopy", 1390 | ] 1391 | 1392 | [[package]] 1393 | name = "proc-macro2" 1394 | version = "1.0.94" 1395 | source = "registry+https://github.com/rust-lang/crates.io-index" 1396 | checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" 1397 | dependencies = [ 1398 | "unicode-ident", 1399 | ] 1400 | 1401 | [[package]] 1402 | name = "pulldown-cmark" 1403 | version = "0.11.3" 1404 | source = "registry+https://github.com/rust-lang/crates.io-index" 1405 | checksum = "679341d22c78c6c649893cbd6c3278dcbe9fc4faa62fea3a9296ae2b50c14625" 1406 | dependencies = [ 1407 | "bitflags", 1408 | "memchr", 1409 | "pulldown-cmark-escape", 1410 | "unicase", 1411 | ] 1412 | 1413 | [[package]] 1414 | name = "pulldown-cmark-escape" 1415 | version = "0.11.0" 1416 | source = "registry+https://github.com/rust-lang/crates.io-index" 1417 | checksum = "007d8adb5ddab6f8e3f491ac63566a7d5002cc7ed73901f72057943fa71ae1ae" 1418 | 1419 | [[package]] 1420 | name = "quote" 1421 | version = "1.0.40" 1422 | source = "registry+https://github.com/rust-lang/crates.io-index" 1423 | checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" 1424 | dependencies = [ 1425 | "proc-macro2", 1426 | ] 1427 | 1428 | [[package]] 1429 | name = "r-efi" 1430 | version = "5.2.0" 1431 | source = "registry+https://github.com/rust-lang/crates.io-index" 1432 | checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" 1433 | 1434 | [[package]] 1435 | name = "rand" 1436 | version = "0.8.5" 1437 | source = "registry+https://github.com/rust-lang/crates.io-index" 1438 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 1439 | dependencies = [ 1440 | "libc", 1441 | "rand_chacha 0.3.1", 1442 | "rand_core 0.6.4", 1443 | ] 1444 | 1445 | [[package]] 1446 | name = "rand" 1447 | version = "0.9.0" 1448 | source = "registry+https://github.com/rust-lang/crates.io-index" 1449 | checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" 1450 | dependencies = [ 1451 | "rand_chacha 0.9.0", 1452 | "rand_core 0.9.3", 1453 | "zerocopy", 1454 | ] 1455 | 1456 | [[package]] 1457 | name = "rand_chacha" 1458 | version = "0.3.1" 1459 | source = "registry+https://github.com/rust-lang/crates.io-index" 1460 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 1461 | dependencies = [ 1462 | "ppv-lite86", 1463 | "rand_core 0.6.4", 1464 | ] 1465 | 1466 | [[package]] 1467 | name = "rand_chacha" 1468 | version = "0.9.0" 1469 | source = "registry+https://github.com/rust-lang/crates.io-index" 1470 | checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" 1471 | dependencies = [ 1472 | "ppv-lite86", 1473 | "rand_core 0.9.3", 1474 | ] 1475 | 1476 | [[package]] 1477 | name = "rand_core" 1478 | version = "0.6.4" 1479 | source = "registry+https://github.com/rust-lang/crates.io-index" 1480 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 1481 | dependencies = [ 1482 | "getrandom 0.2.15", 1483 | ] 1484 | 1485 | [[package]] 1486 | name = "rand_core" 1487 | version = "0.9.3" 1488 | source = "registry+https://github.com/rust-lang/crates.io-index" 1489 | checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" 1490 | dependencies = [ 1491 | "getrandom 0.3.2", 1492 | ] 1493 | 1494 | [[package]] 1495 | name = "redox_syscall" 1496 | version = "0.5.10" 1497 | source = "registry+https://github.com/rust-lang/crates.io-index" 1498 | checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" 1499 | dependencies = [ 1500 | "bitflags", 1501 | ] 1502 | 1503 | [[package]] 1504 | name = "regex" 1505 | version = "1.11.1" 1506 | source = "registry+https://github.com/rust-lang/crates.io-index" 1507 | checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" 1508 | dependencies = [ 1509 | "aho-corasick", 1510 | "memchr", 1511 | "regex-automata", 1512 | "regex-syntax", 1513 | ] 1514 | 1515 | [[package]] 1516 | name = "regex-automata" 1517 | version = "0.4.9" 1518 | source = "registry+https://github.com/rust-lang/crates.io-index" 1519 | checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" 1520 | dependencies = [ 1521 | "aho-corasick", 1522 | "memchr", 1523 | "regex-syntax", 1524 | ] 1525 | 1526 | [[package]] 1527 | name = "regex-lite" 1528 | version = "0.1.6" 1529 | source = "registry+https://github.com/rust-lang/crates.io-index" 1530 | checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" 1531 | 1532 | [[package]] 1533 | name = "regex-syntax" 1534 | version = "0.8.5" 1535 | source = "registry+https://github.com/rust-lang/crates.io-index" 1536 | checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" 1537 | 1538 | [[package]] 1539 | name = "rlog" 1540 | version = "1.2.0" 1541 | dependencies = [ 1542 | "actix-files", 1543 | "actix-web", 1544 | "env_logger", 1545 | "ignore", 1546 | "lazy_static", 1547 | "pulldown-cmark", 1548 | "serde", 1549 | "serde_json", 1550 | "tera", 1551 | "toml", 1552 | ] 1553 | 1554 | [[package]] 1555 | name = "rustc-demangle" 1556 | version = "0.1.24" 1557 | source = "registry+https://github.com/rust-lang/crates.io-index" 1558 | checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" 1559 | 1560 | [[package]] 1561 | name = "rustc_version" 1562 | version = "0.4.1" 1563 | source = "registry+https://github.com/rust-lang/crates.io-index" 1564 | checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" 1565 | dependencies = [ 1566 | "semver", 1567 | ] 1568 | 1569 | [[package]] 1570 | name = "rustversion" 1571 | version = "1.0.20" 1572 | source = "registry+https://github.com/rust-lang/crates.io-index" 1573 | checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" 1574 | 1575 | [[package]] 1576 | name = "ryu" 1577 | version = "1.0.20" 1578 | source = "registry+https://github.com/rust-lang/crates.io-index" 1579 | checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 1580 | 1581 | [[package]] 1582 | name = "same-file" 1583 | version = "1.0.6" 1584 | source = "registry+https://github.com/rust-lang/crates.io-index" 1585 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 1586 | dependencies = [ 1587 | "winapi-util", 1588 | ] 1589 | 1590 | [[package]] 1591 | name = "scopeguard" 1592 | version = "1.2.0" 1593 | source = "registry+https://github.com/rust-lang/crates.io-index" 1594 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1595 | 1596 | [[package]] 1597 | name = "semver" 1598 | version = "1.0.26" 1599 | source = "registry+https://github.com/rust-lang/crates.io-index" 1600 | checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" 1601 | 1602 | [[package]] 1603 | name = "serde" 1604 | version = "1.0.219" 1605 | source = "registry+https://github.com/rust-lang/crates.io-index" 1606 | checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" 1607 | dependencies = [ 1608 | "serde_derive", 1609 | ] 1610 | 1611 | [[package]] 1612 | name = "serde_derive" 1613 | version = "1.0.219" 1614 | source = "registry+https://github.com/rust-lang/crates.io-index" 1615 | checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" 1616 | dependencies = [ 1617 | "proc-macro2", 1618 | "quote", 1619 | "syn", 1620 | ] 1621 | 1622 | [[package]] 1623 | name = "serde_json" 1624 | version = "1.0.140" 1625 | source = "registry+https://github.com/rust-lang/crates.io-index" 1626 | checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" 1627 | dependencies = [ 1628 | "itoa", 1629 | "memchr", 1630 | "ryu", 1631 | "serde", 1632 | ] 1633 | 1634 | [[package]] 1635 | name = "serde_spanned" 1636 | version = "0.6.8" 1637 | source = "registry+https://github.com/rust-lang/crates.io-index" 1638 | checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" 1639 | dependencies = [ 1640 | "serde", 1641 | ] 1642 | 1643 | [[package]] 1644 | name = "serde_urlencoded" 1645 | version = "0.7.1" 1646 | source = "registry+https://github.com/rust-lang/crates.io-index" 1647 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 1648 | dependencies = [ 1649 | "form_urlencoded", 1650 | "itoa", 1651 | "ryu", 1652 | "serde", 1653 | ] 1654 | 1655 | [[package]] 1656 | name = "sha1" 1657 | version = "0.10.6" 1658 | source = "registry+https://github.com/rust-lang/crates.io-index" 1659 | checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 1660 | dependencies = [ 1661 | "cfg-if", 1662 | "cpufeatures", 1663 | "digest", 1664 | ] 1665 | 1666 | [[package]] 1667 | name = "sha2" 1668 | version = "0.10.8" 1669 | source = "registry+https://github.com/rust-lang/crates.io-index" 1670 | checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" 1671 | dependencies = [ 1672 | "cfg-if", 1673 | "cpufeatures", 1674 | "digest", 1675 | ] 1676 | 1677 | [[package]] 1678 | name = "shlex" 1679 | version = "1.3.0" 1680 | source = "registry+https://github.com/rust-lang/crates.io-index" 1681 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1682 | 1683 | [[package]] 1684 | name = "signal-hook-registry" 1685 | version = "1.4.2" 1686 | source = "registry+https://github.com/rust-lang/crates.io-index" 1687 | checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" 1688 | dependencies = [ 1689 | "libc", 1690 | ] 1691 | 1692 | [[package]] 1693 | name = "siphasher" 1694 | version = "1.0.1" 1695 | source = "registry+https://github.com/rust-lang/crates.io-index" 1696 | checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" 1697 | 1698 | [[package]] 1699 | name = "slab" 1700 | version = "0.4.9" 1701 | source = "registry+https://github.com/rust-lang/crates.io-index" 1702 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 1703 | dependencies = [ 1704 | "autocfg", 1705 | ] 1706 | 1707 | [[package]] 1708 | name = "slug" 1709 | version = "0.1.6" 1710 | source = "registry+https://github.com/rust-lang/crates.io-index" 1711 | checksum = "882a80f72ee45de3cc9a5afeb2da0331d58df69e4e7d8eeb5d3c7784ae67e724" 1712 | dependencies = [ 1713 | "deunicode", 1714 | "wasm-bindgen", 1715 | ] 1716 | 1717 | [[package]] 1718 | name = "smallvec" 1719 | version = "1.14.0" 1720 | source = "registry+https://github.com/rust-lang/crates.io-index" 1721 | checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" 1722 | 1723 | [[package]] 1724 | name = "socket2" 1725 | version = "0.5.9" 1726 | source = "registry+https://github.com/rust-lang/crates.io-index" 1727 | checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" 1728 | dependencies = [ 1729 | "libc", 1730 | "windows-sys 0.52.0", 1731 | ] 1732 | 1733 | [[package]] 1734 | name = "stable_deref_trait" 1735 | version = "1.2.0" 1736 | source = "registry+https://github.com/rust-lang/crates.io-index" 1737 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 1738 | 1739 | [[package]] 1740 | name = "syn" 1741 | version = "2.0.100" 1742 | source = "registry+https://github.com/rust-lang/crates.io-index" 1743 | checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" 1744 | dependencies = [ 1745 | "proc-macro2", 1746 | "quote", 1747 | "unicode-ident", 1748 | ] 1749 | 1750 | [[package]] 1751 | name = "synstructure" 1752 | version = "0.13.1" 1753 | source = "registry+https://github.com/rust-lang/crates.io-index" 1754 | checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" 1755 | dependencies = [ 1756 | "proc-macro2", 1757 | "quote", 1758 | "syn", 1759 | ] 1760 | 1761 | [[package]] 1762 | name = "tera" 1763 | version = "1.20.0" 1764 | source = "registry+https://github.com/rust-lang/crates.io-index" 1765 | checksum = "ab9d851b45e865f178319da0abdbfe6acbc4328759ff18dafc3a41c16b4cd2ee" 1766 | dependencies = [ 1767 | "chrono", 1768 | "chrono-tz", 1769 | "globwalk", 1770 | "humansize", 1771 | "lazy_static", 1772 | "percent-encoding", 1773 | "pest", 1774 | "pest_derive", 1775 | "rand 0.8.5", 1776 | "regex", 1777 | "serde", 1778 | "serde_json", 1779 | "slug", 1780 | "unic-segment", 1781 | ] 1782 | 1783 | [[package]] 1784 | name = "thiserror" 1785 | version = "2.0.12" 1786 | source = "registry+https://github.com/rust-lang/crates.io-index" 1787 | checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" 1788 | dependencies = [ 1789 | "thiserror-impl", 1790 | ] 1791 | 1792 | [[package]] 1793 | name = "thiserror-impl" 1794 | version = "2.0.12" 1795 | source = "registry+https://github.com/rust-lang/crates.io-index" 1796 | checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" 1797 | dependencies = [ 1798 | "proc-macro2", 1799 | "quote", 1800 | "syn", 1801 | ] 1802 | 1803 | [[package]] 1804 | name = "time" 1805 | version = "0.3.41" 1806 | source = "registry+https://github.com/rust-lang/crates.io-index" 1807 | checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" 1808 | dependencies = [ 1809 | "deranged", 1810 | "itoa", 1811 | "num-conv", 1812 | "powerfmt", 1813 | "serde", 1814 | "time-core", 1815 | "time-macros", 1816 | ] 1817 | 1818 | [[package]] 1819 | name = "time-core" 1820 | version = "0.1.4" 1821 | source = "registry+https://github.com/rust-lang/crates.io-index" 1822 | checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" 1823 | 1824 | [[package]] 1825 | name = "time-macros" 1826 | version = "0.2.22" 1827 | source = "registry+https://github.com/rust-lang/crates.io-index" 1828 | checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" 1829 | dependencies = [ 1830 | "num-conv", 1831 | "time-core", 1832 | ] 1833 | 1834 | [[package]] 1835 | name = "tinystr" 1836 | version = "0.7.6" 1837 | source = "registry+https://github.com/rust-lang/crates.io-index" 1838 | checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" 1839 | dependencies = [ 1840 | "displaydoc", 1841 | "zerovec", 1842 | ] 1843 | 1844 | [[package]] 1845 | name = "tokio" 1846 | version = "1.44.1" 1847 | source = "registry+https://github.com/rust-lang/crates.io-index" 1848 | checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" 1849 | dependencies = [ 1850 | "backtrace", 1851 | "bytes", 1852 | "libc", 1853 | "mio", 1854 | "parking_lot", 1855 | "pin-project-lite", 1856 | "signal-hook-registry", 1857 | "socket2", 1858 | "windows-sys 0.52.0", 1859 | ] 1860 | 1861 | [[package]] 1862 | name = "tokio-util" 1863 | version = "0.7.14" 1864 | source = "registry+https://github.com/rust-lang/crates.io-index" 1865 | checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" 1866 | dependencies = [ 1867 | "bytes", 1868 | "futures-core", 1869 | "futures-sink", 1870 | "pin-project-lite", 1871 | "tokio", 1872 | ] 1873 | 1874 | [[package]] 1875 | name = "toml" 1876 | version = "0.8.20" 1877 | source = "registry+https://github.com/rust-lang/crates.io-index" 1878 | checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" 1879 | dependencies = [ 1880 | "serde", 1881 | "serde_spanned", 1882 | "toml_datetime", 1883 | "toml_edit", 1884 | ] 1885 | 1886 | [[package]] 1887 | name = "toml_datetime" 1888 | version = "0.6.8" 1889 | source = "registry+https://github.com/rust-lang/crates.io-index" 1890 | checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" 1891 | dependencies = [ 1892 | "serde", 1893 | ] 1894 | 1895 | [[package]] 1896 | name = "toml_edit" 1897 | version = "0.22.24" 1898 | source = "registry+https://github.com/rust-lang/crates.io-index" 1899 | checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" 1900 | dependencies = [ 1901 | "indexmap", 1902 | "serde", 1903 | "serde_spanned", 1904 | "toml_datetime", 1905 | "winnow", 1906 | ] 1907 | 1908 | [[package]] 1909 | name = "tracing" 1910 | version = "0.1.41" 1911 | source = "registry+https://github.com/rust-lang/crates.io-index" 1912 | checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" 1913 | dependencies = [ 1914 | "log", 1915 | "pin-project-lite", 1916 | "tracing-attributes", 1917 | "tracing-core", 1918 | ] 1919 | 1920 | [[package]] 1921 | name = "tracing-attributes" 1922 | version = "0.1.28" 1923 | source = "registry+https://github.com/rust-lang/crates.io-index" 1924 | checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" 1925 | dependencies = [ 1926 | "proc-macro2", 1927 | "quote", 1928 | "syn", 1929 | ] 1930 | 1931 | [[package]] 1932 | name = "tracing-core" 1933 | version = "0.1.33" 1934 | source = "registry+https://github.com/rust-lang/crates.io-index" 1935 | checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" 1936 | dependencies = [ 1937 | "once_cell", 1938 | ] 1939 | 1940 | [[package]] 1941 | name = "typenum" 1942 | version = "1.18.0" 1943 | source = "registry+https://github.com/rust-lang/crates.io-index" 1944 | checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" 1945 | 1946 | [[package]] 1947 | name = "ucd-trie" 1948 | version = "0.1.7" 1949 | source = "registry+https://github.com/rust-lang/crates.io-index" 1950 | checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" 1951 | 1952 | [[package]] 1953 | name = "unic-char-property" 1954 | version = "0.9.0" 1955 | source = "registry+https://github.com/rust-lang/crates.io-index" 1956 | checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" 1957 | dependencies = [ 1958 | "unic-char-range", 1959 | ] 1960 | 1961 | [[package]] 1962 | name = "unic-char-range" 1963 | version = "0.9.0" 1964 | source = "registry+https://github.com/rust-lang/crates.io-index" 1965 | checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" 1966 | 1967 | [[package]] 1968 | name = "unic-common" 1969 | version = "0.9.0" 1970 | source = "registry+https://github.com/rust-lang/crates.io-index" 1971 | checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" 1972 | 1973 | [[package]] 1974 | name = "unic-segment" 1975 | version = "0.9.0" 1976 | source = "registry+https://github.com/rust-lang/crates.io-index" 1977 | checksum = "e4ed5d26be57f84f176157270c112ef57b86debac9cd21daaabbe56db0f88f23" 1978 | dependencies = [ 1979 | "unic-ucd-segment", 1980 | ] 1981 | 1982 | [[package]] 1983 | name = "unic-ucd-segment" 1984 | version = "0.9.0" 1985 | source = "registry+https://github.com/rust-lang/crates.io-index" 1986 | checksum = "2079c122a62205b421f499da10f3ee0f7697f012f55b675e002483c73ea34700" 1987 | dependencies = [ 1988 | "unic-char-property", 1989 | "unic-char-range", 1990 | "unic-ucd-version", 1991 | ] 1992 | 1993 | [[package]] 1994 | name = "unic-ucd-version" 1995 | version = "0.9.0" 1996 | source = "registry+https://github.com/rust-lang/crates.io-index" 1997 | checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" 1998 | dependencies = [ 1999 | "unic-common", 2000 | ] 2001 | 2002 | [[package]] 2003 | name = "unicase" 2004 | version = "2.8.1" 2005 | source = "registry+https://github.com/rust-lang/crates.io-index" 2006 | checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" 2007 | 2008 | [[package]] 2009 | name = "unicode-ident" 2010 | version = "1.0.18" 2011 | source = "registry+https://github.com/rust-lang/crates.io-index" 2012 | checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" 2013 | 2014 | [[package]] 2015 | name = "unicode-xid" 2016 | version = "0.2.6" 2017 | source = "registry+https://github.com/rust-lang/crates.io-index" 2018 | checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" 2019 | 2020 | [[package]] 2021 | name = "url" 2022 | version = "2.5.4" 2023 | source = "registry+https://github.com/rust-lang/crates.io-index" 2024 | checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" 2025 | dependencies = [ 2026 | "form_urlencoded", 2027 | "idna", 2028 | "percent-encoding", 2029 | ] 2030 | 2031 | [[package]] 2032 | name = "utf16_iter" 2033 | version = "1.0.5" 2034 | source = "registry+https://github.com/rust-lang/crates.io-index" 2035 | checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" 2036 | 2037 | [[package]] 2038 | name = "utf8_iter" 2039 | version = "1.0.4" 2040 | source = "registry+https://github.com/rust-lang/crates.io-index" 2041 | checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 2042 | 2043 | [[package]] 2044 | name = "utf8parse" 2045 | version = "0.2.2" 2046 | source = "registry+https://github.com/rust-lang/crates.io-index" 2047 | checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" 2048 | 2049 | [[package]] 2050 | name = "v_htmlescape" 2051 | version = "0.15.8" 2052 | source = "registry+https://github.com/rust-lang/crates.io-index" 2053 | checksum = "4e8257fbc510f0a46eb602c10215901938b5c2a7d5e70fc11483b1d3c9b5b18c" 2054 | 2055 | [[package]] 2056 | name = "version_check" 2057 | version = "0.9.5" 2058 | source = "registry+https://github.com/rust-lang/crates.io-index" 2059 | checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 2060 | 2061 | [[package]] 2062 | name = "walkdir" 2063 | version = "2.5.0" 2064 | source = "registry+https://github.com/rust-lang/crates.io-index" 2065 | checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 2066 | dependencies = [ 2067 | "same-file", 2068 | "winapi-util", 2069 | ] 2070 | 2071 | [[package]] 2072 | name = "wasi" 2073 | version = "0.11.0+wasi-snapshot-preview1" 2074 | source = "registry+https://github.com/rust-lang/crates.io-index" 2075 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 2076 | 2077 | [[package]] 2078 | name = "wasi" 2079 | version = "0.14.2+wasi-0.2.4" 2080 | source = "registry+https://github.com/rust-lang/crates.io-index" 2081 | checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" 2082 | dependencies = [ 2083 | "wit-bindgen-rt", 2084 | ] 2085 | 2086 | [[package]] 2087 | name = "wasm-bindgen" 2088 | version = "0.2.100" 2089 | source = "registry+https://github.com/rust-lang/crates.io-index" 2090 | checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" 2091 | dependencies = [ 2092 | "cfg-if", 2093 | "once_cell", 2094 | "rustversion", 2095 | "wasm-bindgen-macro", 2096 | ] 2097 | 2098 | [[package]] 2099 | name = "wasm-bindgen-backend" 2100 | version = "0.2.100" 2101 | source = "registry+https://github.com/rust-lang/crates.io-index" 2102 | checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" 2103 | dependencies = [ 2104 | "bumpalo", 2105 | "log", 2106 | "proc-macro2", 2107 | "quote", 2108 | "syn", 2109 | "wasm-bindgen-shared", 2110 | ] 2111 | 2112 | [[package]] 2113 | name = "wasm-bindgen-macro" 2114 | version = "0.2.100" 2115 | source = "registry+https://github.com/rust-lang/crates.io-index" 2116 | checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" 2117 | dependencies = [ 2118 | "quote", 2119 | "wasm-bindgen-macro-support", 2120 | ] 2121 | 2122 | [[package]] 2123 | name = "wasm-bindgen-macro-support" 2124 | version = "0.2.100" 2125 | source = "registry+https://github.com/rust-lang/crates.io-index" 2126 | checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" 2127 | dependencies = [ 2128 | "proc-macro2", 2129 | "quote", 2130 | "syn", 2131 | "wasm-bindgen-backend", 2132 | "wasm-bindgen-shared", 2133 | ] 2134 | 2135 | [[package]] 2136 | name = "wasm-bindgen-shared" 2137 | version = "0.2.100" 2138 | source = "registry+https://github.com/rust-lang/crates.io-index" 2139 | checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" 2140 | dependencies = [ 2141 | "unicode-ident", 2142 | ] 2143 | 2144 | [[package]] 2145 | name = "winapi-util" 2146 | version = "0.1.9" 2147 | source = "registry+https://github.com/rust-lang/crates.io-index" 2148 | checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" 2149 | dependencies = [ 2150 | "windows-sys 0.59.0", 2151 | ] 2152 | 2153 | [[package]] 2154 | name = "windows-core" 2155 | version = "0.52.0" 2156 | source = "registry+https://github.com/rust-lang/crates.io-index" 2157 | checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" 2158 | dependencies = [ 2159 | "windows-targets", 2160 | ] 2161 | 2162 | [[package]] 2163 | name = "windows-link" 2164 | version = "0.1.1" 2165 | source = "registry+https://github.com/rust-lang/crates.io-index" 2166 | checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" 2167 | 2168 | [[package]] 2169 | name = "windows-sys" 2170 | version = "0.52.0" 2171 | source = "registry+https://github.com/rust-lang/crates.io-index" 2172 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 2173 | dependencies = [ 2174 | "windows-targets", 2175 | ] 2176 | 2177 | [[package]] 2178 | name = "windows-sys" 2179 | version = "0.59.0" 2180 | source = "registry+https://github.com/rust-lang/crates.io-index" 2181 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 2182 | dependencies = [ 2183 | "windows-targets", 2184 | ] 2185 | 2186 | [[package]] 2187 | name = "windows-targets" 2188 | version = "0.52.6" 2189 | source = "registry+https://github.com/rust-lang/crates.io-index" 2190 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 2191 | dependencies = [ 2192 | "windows_aarch64_gnullvm", 2193 | "windows_aarch64_msvc", 2194 | "windows_i686_gnu", 2195 | "windows_i686_gnullvm", 2196 | "windows_i686_msvc", 2197 | "windows_x86_64_gnu", 2198 | "windows_x86_64_gnullvm", 2199 | "windows_x86_64_msvc", 2200 | ] 2201 | 2202 | [[package]] 2203 | name = "windows_aarch64_gnullvm" 2204 | version = "0.52.6" 2205 | source = "registry+https://github.com/rust-lang/crates.io-index" 2206 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 2207 | 2208 | [[package]] 2209 | name = "windows_aarch64_msvc" 2210 | version = "0.52.6" 2211 | source = "registry+https://github.com/rust-lang/crates.io-index" 2212 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 2213 | 2214 | [[package]] 2215 | name = "windows_i686_gnu" 2216 | version = "0.52.6" 2217 | source = "registry+https://github.com/rust-lang/crates.io-index" 2218 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 2219 | 2220 | [[package]] 2221 | name = "windows_i686_gnullvm" 2222 | version = "0.52.6" 2223 | source = "registry+https://github.com/rust-lang/crates.io-index" 2224 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 2225 | 2226 | [[package]] 2227 | name = "windows_i686_msvc" 2228 | version = "0.52.6" 2229 | source = "registry+https://github.com/rust-lang/crates.io-index" 2230 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 2231 | 2232 | [[package]] 2233 | name = "windows_x86_64_gnu" 2234 | version = "0.52.6" 2235 | source = "registry+https://github.com/rust-lang/crates.io-index" 2236 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 2237 | 2238 | [[package]] 2239 | name = "windows_x86_64_gnullvm" 2240 | version = "0.52.6" 2241 | source = "registry+https://github.com/rust-lang/crates.io-index" 2242 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 2243 | 2244 | [[package]] 2245 | name = "windows_x86_64_msvc" 2246 | version = "0.52.6" 2247 | source = "registry+https://github.com/rust-lang/crates.io-index" 2248 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 2249 | 2250 | [[package]] 2251 | name = "winnow" 2252 | version = "0.7.4" 2253 | source = "registry+https://github.com/rust-lang/crates.io-index" 2254 | checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36" 2255 | dependencies = [ 2256 | "memchr", 2257 | ] 2258 | 2259 | [[package]] 2260 | name = "wit-bindgen-rt" 2261 | version = "0.39.0" 2262 | source = "registry+https://github.com/rust-lang/crates.io-index" 2263 | checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" 2264 | dependencies = [ 2265 | "bitflags", 2266 | ] 2267 | 2268 | [[package]] 2269 | name = "write16" 2270 | version = "1.0.0" 2271 | source = "registry+https://github.com/rust-lang/crates.io-index" 2272 | checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" 2273 | 2274 | [[package]] 2275 | name = "writeable" 2276 | version = "0.5.5" 2277 | source = "registry+https://github.com/rust-lang/crates.io-index" 2278 | checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" 2279 | 2280 | [[package]] 2281 | name = "yoke" 2282 | version = "0.7.5" 2283 | source = "registry+https://github.com/rust-lang/crates.io-index" 2284 | checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" 2285 | dependencies = [ 2286 | "serde", 2287 | "stable_deref_trait", 2288 | "yoke-derive", 2289 | "zerofrom", 2290 | ] 2291 | 2292 | [[package]] 2293 | name = "yoke-derive" 2294 | version = "0.7.5" 2295 | source = "registry+https://github.com/rust-lang/crates.io-index" 2296 | checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" 2297 | dependencies = [ 2298 | "proc-macro2", 2299 | "quote", 2300 | "syn", 2301 | "synstructure", 2302 | ] 2303 | 2304 | [[package]] 2305 | name = "zerocopy" 2306 | version = "0.8.24" 2307 | source = "registry+https://github.com/rust-lang/crates.io-index" 2308 | checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" 2309 | dependencies = [ 2310 | "zerocopy-derive", 2311 | ] 2312 | 2313 | [[package]] 2314 | name = "zerocopy-derive" 2315 | version = "0.8.24" 2316 | source = "registry+https://github.com/rust-lang/crates.io-index" 2317 | checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" 2318 | dependencies = [ 2319 | "proc-macro2", 2320 | "quote", 2321 | "syn", 2322 | ] 2323 | 2324 | [[package]] 2325 | name = "zerofrom" 2326 | version = "0.1.6" 2327 | source = "registry+https://github.com/rust-lang/crates.io-index" 2328 | checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" 2329 | dependencies = [ 2330 | "zerofrom-derive", 2331 | ] 2332 | 2333 | [[package]] 2334 | name = "zerofrom-derive" 2335 | version = "0.1.6" 2336 | source = "registry+https://github.com/rust-lang/crates.io-index" 2337 | checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" 2338 | dependencies = [ 2339 | "proc-macro2", 2340 | "quote", 2341 | "syn", 2342 | "synstructure", 2343 | ] 2344 | 2345 | [[package]] 2346 | name = "zerovec" 2347 | version = "0.10.4" 2348 | source = "registry+https://github.com/rust-lang/crates.io-index" 2349 | checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" 2350 | dependencies = [ 2351 | "yoke", 2352 | "zerofrom", 2353 | "zerovec-derive", 2354 | ] 2355 | 2356 | [[package]] 2357 | name = "zerovec-derive" 2358 | version = "0.10.3" 2359 | source = "registry+https://github.com/rust-lang/crates.io-index" 2360 | checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" 2361 | dependencies = [ 2362 | "proc-macro2", 2363 | "quote", 2364 | "syn", 2365 | ] 2366 | 2367 | [[package]] 2368 | name = "zstd" 2369 | version = "0.13.3" 2370 | source = "registry+https://github.com/rust-lang/crates.io-index" 2371 | checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" 2372 | dependencies = [ 2373 | "zstd-safe", 2374 | ] 2375 | 2376 | [[package]] 2377 | name = "zstd-safe" 2378 | version = "7.2.4" 2379 | source = "registry+https://github.com/rust-lang/crates.io-index" 2380 | checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" 2381 | dependencies = [ 2382 | "zstd-sys", 2383 | ] 2384 | 2385 | [[package]] 2386 | name = "zstd-sys" 2387 | version = "2.0.15+zstd.1.5.7" 2388 | source = "registry+https://github.com/rust-lang/crates.io-index" 2389 | checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" 2390 | dependencies = [ 2391 | "cc", 2392 | "pkg-config", 2393 | ] 2394 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "rlog" 3 | version = "1.2.1" 4 | edition = "2021" 5 | 6 | [profile.release] 7 | strip = true 8 | opt-level = "z" 9 | lto = true 10 | codegen-units = 1 11 | panic = "abort" 12 | 13 | [dependencies] 14 | actix-files = "0.6.6" 15 | actix-web = "4" 16 | env_logger = "0.11.5" 17 | ignore = "0.4.22" 18 | lazy_static = "1.5.0" 19 | pulldown-cmark = { version = "0.11.0", default-features = false, features=["html"] } 20 | serde = { version = "1.0.204", features = ["derive"] } 21 | serde_json = "1.0.121" 22 | tera = "1" 23 | toml = "0.8.19" 24 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rust:slim-bookworm 2 | 3 | WORKDIR /usr/src/app 4 | 5 | COPY . . 6 | 7 | RUN cargo build --release 8 | 9 | RUN mv target/release/rlog . 10 | 11 | CMD ["./rlog"] 12 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 72mins 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
Something went wrong!
"); 16 | } 17 | }; 18 | 19 | let meta = match extract_meta("templates/about/meta.toml") { 20 | Ok(m) => m, 21 | Err(e) => { 22 | println!("{:?}", e); 23 | 24 | return HttpResponse::InternalServerError() 25 | .content_type("text/html") 26 | .body("Something went wrong!
"); 27 | } 28 | }; 29 | 30 | let html_output = get_html(&content); 31 | 32 | let mut context = tera::Context::new(); 33 | context.insert("content", &html_output); 34 | context.insert("meta", &meta); 35 | 36 | match templates.render("about/about.html", &context) { 37 | Ok(s) => HttpResponse::Ok().content_type("text/html").body(s), 38 | Err(e) => { 39 | println!("{:?}", e); 40 | HttpResponse::InternalServerError() 41 | .content_type("text/html") 42 | .body("Something went wrong!")
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/handlers/blog_handler.rs:
--------------------------------------------------------------------------------
1 | use actix_web::{get, web, HttpResponse, Responder};
2 | use ignore::WalkBuilder;
3 | use serde::{Deserialize, Serialize};
4 | use std::{fs, io::Error};
5 |
6 | use crate::utils::extract_meta::extract_meta;
7 |
8 | #[derive(Serialize, Deserialize, Debug)]
9 | pub struct Post {
10 | title: String,
11 | description: String,
12 | file_name: String,
13 | posted_at: String,
14 | }
15 |
16 | fn find_posts() -> Result Something went wrong! Something went wrong! Something went wrong!")
100 | }
101 | }
102 | }
103 |
--------------------------------------------------------------------------------
/src/handlers/contact_handler.rs:
--------------------------------------------------------------------------------
1 | use actix_web::{get, web, HttpResponse, Responder};
2 | use crate::utils::extract_content::extract_content;
3 | use crate::utils::extract_meta::extract_meta;
4 | use crate::utils::get_html::get_html;
5 |
6 | #[get("/contact")]
7 | pub async fn contact(templates: web::Data Something went wrong! Something went wrong! Something went wrong! Something went wrong! Something went wrong! Something went wrong! Something went wrong! Something went wrong! Something went wrong! Something went wrong! {{ post.posted_at }} Oops, the page you are looking for doesn't exist.{{ meta.navtitle }}
10 | {% endblock header %}
11 |
12 | {% block content %}
13 | {{ content | safe }}
14 | {% endblock content %}
15 |
--------------------------------------------------------------------------------
/templates/about/content.md:
--------------------------------------------------------------------------------
1 | This is the part where you would write a little more about yourself.
2 |
3 | This can be another block.
4 |
5 | Each block can be separated by using another paragraph.
6 |
--------------------------------------------------------------------------------
/templates/about/meta.toml:
--------------------------------------------------------------------------------
1 | title='About'
2 | navtitle='about'
3 | description='The about page meta description'
4 |
--------------------------------------------------------------------------------
/templates/base.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | {% block head %}{% endblock head %}
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
26 |
27 | {{ meta.navtitle }}
11 | {% endblock header %}
12 |
13 | {% block content %}
14 |
15 | {{ meta.navtitle }}
10 | {% endblock header %}
11 |
12 | {% block content %}
13 | {{ content | safe }}
14 | {% endblock content %}
15 |
--------------------------------------------------------------------------------
/templates/contact/content.md:
--------------------------------------------------------------------------------
1 | This is where you would put your contact information. It can be an email address, links to social media, etc..
2 |
--------------------------------------------------------------------------------
/templates/contact/meta.toml:
--------------------------------------------------------------------------------
1 | title = 'Contact'
2 | navtitle = 'contact'
3 | description = 'The contact page meta description'
4 |
--------------------------------------------------------------------------------
/templates/home/content.md:
--------------------------------------------------------------------------------
1 | Welcome to [rlog](https://github.com/72mins/rlog), a minimalistic blog/portfolio starter.
2 |
3 | The vision for this project is to provide a simple, fast, bloat-less and optimized starting point for a blog/portfolio website.
4 |
5 | Everything is open source and anyone can take/modify the code to their liking. This includes the design, the code, the content, etc..
6 |
7 | All of it is provided completely free of charge. All I ask is to leave the 'made with rlog' link in the footer. That's it.
8 |
9 | rlog is built with only Rust and HTML/CSS. This decision was made to keep the project as lightweight and performant as possible.
10 |
11 | This project was inspired by [bearblog](https://bearblog.dev/), a similar project written in Django. Credit where credit is due.
12 |
--------------------------------------------------------------------------------
/templates/home/home.html:
--------------------------------------------------------------------------------
1 | {% extends "base.html" %}
2 |
3 | {% block head %}
4 | {{ meta.navtitle }}
10 | {% endblock header %}
11 |
12 | {% block content %}
13 | {{ content | safe }}
14 | {% endblock content %}
15 |
--------------------------------------------------------------------------------
/templates/home/meta.toml:
--------------------------------------------------------------------------------
1 | title='Home'
2 | navtitle='home'
3 | description='Home page meta description'
4 |
--------------------------------------------------------------------------------
/templates/nav.html:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/templates/not_found.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | 404 | Not found
19 | {{ meta.title }}
10 | {% endblock header %}
11 |
12 | {% block content %}
13 | {{ post | safe }}
14 | {% endblock content %}
15 |
--------------------------------------------------------------------------------