From 269f9b8a8d0772098aa6b1303e87afca95f9bc87 Mon Sep 17 00:00:00 2001 From: CatAClock Date: Tue, 1 Jul 2025 05:56:13 +0000 Subject: [PATCH] Backend (#3) Reviewed-on: http://git.crowdedgames.group/CatAClock/CrowdedGames.Group/pulls/3 Co-authored-by: CatAClock Co-committed-by: CatAClock --- .gitignore | 1 + Cargo.lock | 1818 +++++++++++++++++ Cargo.toml | 8 + {Audio => src/HTTP/Audio}/Glow.mp3 | Bin {Audio => src/HTTP/Audio}/KeyboardTyping.mp3 | Bin {Audio => src/HTTP/Audio}/Meow.mp3 | Bin Animations.css => src/HTTP/CSS/Animations.css | 0 style.css => src/HTTP/CSS/style.css | 0 404.html => src/HTTP/HTML/404.html | 4 +- index.html => src/HTTP/HTML/index.html | 4 +- .../HTTP/Images/Buttons}/BoyKissNow3.gif | Bin .../HTTP/Images/Buttons}/Catboys.webp | Bin .../HTTP/Images/Buttons}/CatscapeMeow3.gif | Bin .../Images/Buttons}/CrowdedGamesGroup.gif | Bin .../HTTP/Images/Buttons}/FontsNowGo.gif | Bin .../HTTP/Images/Buttons}/NekkoScape98Nyan.gif | Bin .../HTTP/Images/Buttons}/NetscapeNow3.gif | Bin .../HTTP/Images/CatPolygon.svg | 0 .../HTTP/Images/Icons}/BlueskyIcon.svg | 0 .../HTTP/Images/Icons}/BoostyIcon.svg | 0 .../HTTP/Images/Icons}/CodebergIcon.svg | 0 {Icons => src/HTTP/Images/Icons}/DogeIcon.png | Bin .../HTTP/Images/Icons}/EmailIcon.svg | 0 .../HTTP/Images/Icons}/Favicon32.png | Bin src/HTTP/Images/Icons/FediverseIcon.png | Bin 0 -> 15483 bytes .../HTTP/Images/Icons}/ForgejoIcon.png | Bin .../HTTP/Images/Icons}/ItchIOIcon.svg | 0 src/HTTP/Images/Icons/KnowledgeIcon.png | Bin 0 -> 10109 bytes .../HTTP/Images/Icons}/MastodonIcon.svg | 0 .../HTTP/Images/Icons}/SteamIcon.svg | 0 .../HTTP/Images/Icons}/TiktokIcon.svg | 0 .../HTTP/Images/Icons}/YoutubeIcon.png | Bin script.js => src/HTTP/JS/script.js | 0 .../HTTP/Perfect DOS VGA 437.woff | Bin robots.txt => src/HTTP/robots.txt | 0 src/main.rs | 116 ++ 36 files changed, 1947 insertions(+), 4 deletions(-) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml rename {Audio => src/HTTP/Audio}/Glow.mp3 (100%) rename {Audio => src/HTTP/Audio}/KeyboardTyping.mp3 (100%) rename {Audio => src/HTTP/Audio}/Meow.mp3 (100%) rename Animations.css => src/HTTP/CSS/Animations.css (100%) rename style.css => src/HTTP/CSS/style.css (100%) rename 404.html => src/HTTP/HTML/404.html (90%) rename index.html => src/HTTP/HTML/index.html (97%) rename {Buttons => src/HTTP/Images/Buttons}/BoyKissNow3.gif (100%) rename {Buttons => src/HTTP/Images/Buttons}/Catboys.webp (100%) rename {Buttons => src/HTTP/Images/Buttons}/CatscapeMeow3.gif (100%) rename {Buttons => src/HTTP/Images/Buttons}/CrowdedGamesGroup.gif (100%) rename {Buttons => src/HTTP/Images/Buttons}/FontsNowGo.gif (100%) rename {Buttons => src/HTTP/Images/Buttons}/NekkoScape98Nyan.gif (100%) rename {Buttons => src/HTTP/Images/Buttons}/NetscapeNow3.gif (100%) rename CatPolygon.svg => src/HTTP/Images/CatPolygon.svg (100%) rename {Icons => src/HTTP/Images/Icons}/BlueskyIcon.svg (100%) rename {Icons => src/HTTP/Images/Icons}/BoostyIcon.svg (100%) rename {Icons => src/HTTP/Images/Icons}/CodebergIcon.svg (100%) rename {Icons => src/HTTP/Images/Icons}/DogeIcon.png (100%) rename {Icons => src/HTTP/Images/Icons}/EmailIcon.svg (100%) rename {Icons => src/HTTP/Images/Icons}/Favicon32.png (100%) create mode 100644 src/HTTP/Images/Icons/FediverseIcon.png rename {Icons => src/HTTP/Images/Icons}/ForgejoIcon.png (100%) rename {Icons => src/HTTP/Images/Icons}/ItchIOIcon.svg (100%) create mode 100644 src/HTTP/Images/Icons/KnowledgeIcon.png rename {Icons => src/HTTP/Images/Icons}/MastodonIcon.svg (100%) rename {Icons => src/HTTP/Images/Icons}/SteamIcon.svg (100%) rename {Icons => src/HTTP/Images/Icons}/TiktokIcon.svg (100%) rename {Icons => src/HTTP/Images/Icons}/YoutubeIcon.png (100%) rename script.js => src/HTTP/JS/script.js (100%) rename Perfect DOS VGA 437.woff => src/HTTP/Perfect DOS VGA 437.woff (100%) rename robots.txt => src/HTTP/robots.txt (100%) create mode 100644 src/main.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..9a74de9 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,1818 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "CrowdedGames" +version = "1.1.0" +dependencies = [ + "postgres", + "rouille", +] + +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "ascii" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" + +[[package]] +name = "async-trait" +version = "0.1.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "backtrace" +version = "0.3.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bitflags" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "brotli" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "buf_redux" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b953a6887648bb07a535631f2bc00fbdb2a2216f135552cb3f534ed136b9c07f" +dependencies = [ + "memchr", + "safemem", +] + +[[package]] +name = "bumpalo" +version = "3.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" + +[[package]] +name = "cc" +version = "1.2.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d487aa071b5f64da6f19a3e848e3578944b726ee5a4854b82172f02aa876bfdc" +dependencies = [ + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" + +[[package]] +name = "chrono" +version = "0.4.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "num-traits", + "windows-link", +] + +[[package]] +name = "chunked_transfer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e4de3bc4ea267985becf712dc6d9eed8b04c953b3fcfb339ebc87acd9804901" + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "deflate" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c86f7e25f518f4b81808a2cf1c50996a61f5c2eb394b2393bd87f2a4780a432f" +dependencies = [ + "adler32", + "gzip-header", +] + +[[package]] +name = "deranged" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +dependencies = [ + "powerfmt", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", + "subtle", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "errno" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "filetime" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +dependencies = [ + "cfg-if", + "libc", + "libredox", + "windows-sys 0.59.0", +] + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-core", + "futures-macro", + "futures-sink", + "futures-task", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "gzip-header" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95cc527b92e6029a62960ad99aa8a6660faa4555fe5f731aab13aa6a921795a2" +dependencies = [ + "crc32fast", +] + +[[package]] +name = "hermit-abi" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "iana-time-zone" +version = "0.1.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "icu_collections" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" + +[[package]] +name = "icu_properties" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "potential_utf", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" + +[[package]] +name = "icu_provider" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +dependencies = [ + "displaydoc", + "icu_locale_core", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "js-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "libc" +version = "0.2.174" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" + +[[package]] +name = "libredox" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" +dependencies = [ + "bitflags", + "libc", + "redox_syscall", +] + +[[package]] +name = "linux-raw-sys" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" + +[[package]] +name = "litemap" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" + +[[package]] +name = "lock_api" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest", +] + +[[package]] +name = "memchr" +version = "2.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", +] + +[[package]] +name = "mio" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +dependencies = [ + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.59.0", +] + +[[package]] +name = "multipart" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00dec633863867f29cb39df64a397cdf4a6354708ddd7759f70c7fb51c5f9182" +dependencies = [ + "buf_redux", + "httparse", + "log", + "mime", + "mime_guess", + "quick-error", + "rand 0.8.5", + "safemem", + "tempfile", + "twoway", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", +] + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "parking_lot" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "phf" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +dependencies = [ + "phf_shared", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "postgres" +version = "0.19.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "363e6dfbdd780d3aa3597b6eb430db76bb315fa9bad7fae595bb8def808b8470" +dependencies = [ + "bytes", + "fallible-iterator", + "futures-util", + "log", + "tokio", + "tokio-postgres", +] + +[[package]] +name = "postgres-protocol" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76ff0abab4a9b844b93ef7b81f1efc0a366062aaef2cd702c76256b5dc075c54" +dependencies = [ + "base64 0.22.1", + "byteorder", + "bytes", + "fallible-iterator", + "hmac", + "md-5", + "memchr", + "rand 0.9.1", + "sha2", + "stringprep", +] + +[[package]] +name = "postgres-types" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613283563cd90e1dfc3518d548caee47e0e725455ed619881f5cf21f36de4b48" +dependencies = [ + "bytes", + "fallible-iterator", + "postgres-protocol", +] + +[[package]] +name = "potential_utf" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +dependencies = [ + "zerovec", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "proc-macro2" +version = "1.0.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.3", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.3", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.16", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.3", +] + +[[package]] +name = "redox_syscall" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" +dependencies = [ + "bitflags", +] + +[[package]] +name = "rouille" +version = "3.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3716fbf57fc1084d7a706adf4e445298d123e4a44294c4e8213caf1b85fcc921" +dependencies = [ + "base64 0.13.1", + "brotli", + "chrono", + "deflate", + "filetime", + "multipart", + "percent-encoding", + "rand 0.8.5", + "serde", + "serde_derive", + "serde_json", + "sha1_smol", + "threadpool", + "time", + "tiny_http", + "url", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" + +[[package]] +name = "rustix" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustversion" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "safemem" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "serde" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.140" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "sha1_smol" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + +[[package]] +name = "slab" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "socket2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "stringprep" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" +dependencies = [ + "unicode-bidi", + "unicode-normalization", + "unicode-properties", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "2.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tempfile" +version = "3.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" +dependencies = [ + "fastrand", + "getrandom 0.3.3", + "once_cell", + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "time" +version = "0.3.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" +dependencies = [ + "deranged", + "libc", + "num-conv", + "num_threads", + "powerfmt", + "serde", + "time-core", +] + +[[package]] +name = "time-core" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" + +[[package]] +name = "tiny_http" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "389915df6413a2e74fb181895f933386023c71110878cd0825588928e64cdc82" +dependencies = [ + "ascii", + "chunked_transfer", + "httpdate", + "log", +] + +[[package]] +name = "tinystr" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.45.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "pin-project-lite", + "socket2", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-postgres" +version = "0.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c95d533c83082bb6490e0189acaa0bbeef9084e60471b696ca6988cd0541fb0" +dependencies = [ + "async-trait", + "byteorder", + "bytes", + "fallible-iterator", + "futures-channel", + "futures-util", + "log", + "parking_lot", + "percent-encoding", + "phf", + "pin-project-lite", + "postgres-protocol", + "postgres-types", + "rand 0.9.1", + "socket2", + "tokio", + "tokio-util", + "whoami", +] + +[[package]] +name = "tokio-util" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "twoway" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59b11b2b5241ba34be09c3cc85a36e56e48f9888862e19cedf23336d35316ed1" +dependencies = [ + "memchr", +] + +[[package]] +name = "typenum" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" + +[[package]] +name = "unicase" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" + +[[package]] +name = "unicode-bidi" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "unicode-normalization" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-properties" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" + +[[package]] +name = "url" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] + +[[package]] +name = "wasite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" + +[[package]] +name = "wasm-bindgen" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "web-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "whoami" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6994d13118ab492c3c80c1f81928718159254c53c472bf9ce36f8dae4add02a7" +dependencies = [ + "redox_syscall", + "wasite", + "web-sys", +] + +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-implement" +version = "0.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.59.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.2", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" +dependencies = [ + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags", +] + +[[package]] +name = "writeable" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" + +[[package]] +name = "yoke" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..1a5b20e --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "CrowdedGames" +version = "1.1.0" +edition = "2024" + +[dependencies] +rouille = "3.6.2" +postgres = "0.19.10" diff --git a/Audio/Glow.mp3 b/src/HTTP/Audio/Glow.mp3 similarity index 100% rename from Audio/Glow.mp3 rename to src/HTTP/Audio/Glow.mp3 diff --git a/Audio/KeyboardTyping.mp3 b/src/HTTP/Audio/KeyboardTyping.mp3 similarity index 100% rename from Audio/KeyboardTyping.mp3 rename to src/HTTP/Audio/KeyboardTyping.mp3 diff --git a/Audio/Meow.mp3 b/src/HTTP/Audio/Meow.mp3 similarity index 100% rename from Audio/Meow.mp3 rename to src/HTTP/Audio/Meow.mp3 diff --git a/Animations.css b/src/HTTP/CSS/Animations.css similarity index 100% rename from Animations.css rename to src/HTTP/CSS/Animations.css diff --git a/style.css b/src/HTTP/CSS/style.css similarity index 100% rename from style.css rename to src/HTTP/CSS/style.css diff --git a/404.html b/src/HTTP/HTML/404.html similarity index 90% rename from 404.html rename to src/HTTP/HTML/404.html index f4702c4..ee7a8dc 100644 --- a/404.html +++ b/src/HTTP/HTML/404.html @@ -25,10 +25,10 @@ The logo for YouTube. The logo for DoggeyWoggey. The icon for Email. - Knowledge + A book. The logo for Codeberg. The logo for Forgejo. - Fediverse + The logo for the Fediverse Frontent.

You broke my website. How the hell did you do that!?

diff --git a/index.html b/src/HTTP/HTML/index.html similarity index 97% rename from index.html rename to src/HTTP/HTML/index.html index f1f0160..6bcf200 100644 --- a/index.html +++ b/src/HTTP/HTML/index.html @@ -24,10 +24,10 @@ The logo for YouTube. The logo for DoggeyWoggey. The icon for Email. - Knowledge + A book. The logo for Codeberg. The logo for Forgejo. - Fediverse + The logo for the Fediverse Frontent. diff --git a/Buttons/BoyKissNow3.gif b/src/HTTP/Images/Buttons/BoyKissNow3.gif similarity index 100% rename from Buttons/BoyKissNow3.gif rename to src/HTTP/Images/Buttons/BoyKissNow3.gif diff --git a/Buttons/Catboys.webp b/src/HTTP/Images/Buttons/Catboys.webp similarity index 100% rename from Buttons/Catboys.webp rename to src/HTTP/Images/Buttons/Catboys.webp diff --git a/Buttons/CatscapeMeow3.gif b/src/HTTP/Images/Buttons/CatscapeMeow3.gif similarity index 100% rename from Buttons/CatscapeMeow3.gif rename to src/HTTP/Images/Buttons/CatscapeMeow3.gif diff --git a/Buttons/CrowdedGamesGroup.gif b/src/HTTP/Images/Buttons/CrowdedGamesGroup.gif similarity index 100% rename from Buttons/CrowdedGamesGroup.gif rename to src/HTTP/Images/Buttons/CrowdedGamesGroup.gif diff --git a/Buttons/FontsNowGo.gif b/src/HTTP/Images/Buttons/FontsNowGo.gif similarity index 100% rename from Buttons/FontsNowGo.gif rename to src/HTTP/Images/Buttons/FontsNowGo.gif diff --git a/Buttons/NekkoScape98Nyan.gif b/src/HTTP/Images/Buttons/NekkoScape98Nyan.gif similarity index 100% rename from Buttons/NekkoScape98Nyan.gif rename to src/HTTP/Images/Buttons/NekkoScape98Nyan.gif diff --git a/Buttons/NetscapeNow3.gif b/src/HTTP/Images/Buttons/NetscapeNow3.gif similarity index 100% rename from Buttons/NetscapeNow3.gif rename to src/HTTP/Images/Buttons/NetscapeNow3.gif diff --git a/CatPolygon.svg b/src/HTTP/Images/CatPolygon.svg similarity index 100% rename from CatPolygon.svg rename to src/HTTP/Images/CatPolygon.svg diff --git a/Icons/BlueskyIcon.svg b/src/HTTP/Images/Icons/BlueskyIcon.svg similarity index 100% rename from Icons/BlueskyIcon.svg rename to src/HTTP/Images/Icons/BlueskyIcon.svg diff --git a/Icons/BoostyIcon.svg b/src/HTTP/Images/Icons/BoostyIcon.svg similarity index 100% rename from Icons/BoostyIcon.svg rename to src/HTTP/Images/Icons/BoostyIcon.svg diff --git a/Icons/CodebergIcon.svg b/src/HTTP/Images/Icons/CodebergIcon.svg similarity index 100% rename from Icons/CodebergIcon.svg rename to src/HTTP/Images/Icons/CodebergIcon.svg diff --git a/Icons/DogeIcon.png b/src/HTTP/Images/Icons/DogeIcon.png similarity index 100% rename from Icons/DogeIcon.png rename to src/HTTP/Images/Icons/DogeIcon.png diff --git a/Icons/EmailIcon.svg b/src/HTTP/Images/Icons/EmailIcon.svg similarity index 100% rename from Icons/EmailIcon.svg rename to src/HTTP/Images/Icons/EmailIcon.svg diff --git a/Icons/Favicon32.png b/src/HTTP/Images/Icons/Favicon32.png similarity index 100% rename from Icons/Favicon32.png rename to src/HTTP/Images/Icons/Favicon32.png diff --git a/src/HTTP/Images/Icons/FediverseIcon.png b/src/HTTP/Images/Icons/FediverseIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..376ba10e7b0e7081979365ae612673cee40ee132 GIT binary patch literal 15483 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%0DI0d;t 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 literal 0 HcmV?d00001 diff --git a/Icons/ForgejoIcon.png b/src/HTTP/Images/Icons/ForgejoIcon.png similarity index 100% rename from Icons/ForgejoIcon.png rename to src/HTTP/Images/Icons/ForgejoIcon.png diff --git a/Icons/ItchIOIcon.svg b/src/HTTP/Images/Icons/ItchIOIcon.svg similarity index 100% rename from Icons/ItchIOIcon.svg rename to src/HTTP/Images/Icons/ItchIOIcon.svg diff --git a/src/HTTP/Images/Icons/KnowledgeIcon.png b/src/HTTP/Images/Icons/KnowledgeIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..1a09bea00e342bf1fd52c4b5b01a64d5212b39c7 GIT binary patch literal 10109 zcmeHMc|4Ts+kdQCQj#URI22+GhKB43A)>4yrm>ANGGiG#rG-KYV^;_nTV&s}Bx6m; zt{8;KF5CO)oX&fGpWiv}-|y!0@p2SbK2Q*2eq&V7U9=#od3o@ zlJ&;lXK8V9XJDs#CTV836W?__=md+%6Y>jZ0B#g|L1Bn3t++(OH>DS-O+n2tEzUK!T%m~JkwmF0=gr$0Bk6sg;Ch%(#LPYEW)B?_I?o}tp~ zJPH6@+dU2Y=T)L+$WxPK`x%#|wdNQ5sAY_x^6Bs6`_+#qsR8CIT}wkY)6@M_ZmkrB z9(AZ3OJK+Za2(&Zk{PB?vta1<*$&5_-&N&Hd2aab0xu5(Bjcj5-SZl$FX74uGLx8z z@PG~Q+x=mmW#D##YJ6UO`klSowyvJ}MiDdZ)ap>z%^9Kn*3iJc2+^L;vPCz}v4wp% zdsuELsNagOFnV(FbX&}4mbpOb@BFcQ^iRE*0OCD^`YWYJ-n6^a2YjQT3_oVp>j|g^ ztV%rMVtfKHJIG4oHv!;j-FBp^I0euVm+=Jvs%KB#$bQD5*FpyX7t?~p3e}DrZD1wV zA4_WBt*+;ww57eMdi1yY3(V@YQ$aio&rijwabBxe7^HqvNX30v!A?4k_y}r2TW#6spbUYz2dq~Go8P%- zQ0AyRKe5slT9I&Pg+IQb`Xg%ioq%-MZdkPz^jYxht5kiI9;y}D{9IuzY1kf|>~X80 z*cYfCt`a__pwbsvJ-V|VIKV$F0uj^$J!b#tlkJU1_cd=mG~*I!Wk*b#!Av4y2wpRJ zPd4uQ6x$`b-zdX_PAgssmUJ8AP&`?q6l(Nk9#P76m#>oDq|w1>4NGK@2ndzqb* z^hD;P&~0N=bgzSm0&!2uqK-!yMDMh{ohoBhXnycnkN(APMj6joF2j&2)6|)%((3VP zuda6Fr1a6fdZ3VMp@UBIG=v!6&p9dUks#cW$ga_zA(8&EJHg4pY10uhhpVI?y~C#& z*B#f3nmsZ%Gk0gr>nPJbraP_Lc4s+JoW7h{r^+}X@p><5KE%bpyCyXt%^mMRI8MM^ zHxt_s^J9DRo+U;h#v~>nX6Dtk>)7imAMvjkujO7po@;I5|MJrHV#6;v^nL8PA9HxG zSLMj%cN%#aMH+TpwMnnF*$erBV0wKo^itYA?euGivKG$Ar`cPik>AbK``t~b=Fg!B z`gWGDw-@w0X?D0hA-;OX8rWC%MEfW9$>iG|6vtYMCYIr!k}h|i?qurpm7tPPktphS z&a=-8$de!P8LAz!TXbJ!Uz{IW@^DL5O+J^ru7Fn9^q{YltGrqnS~={|^;P);Vje$7 zzy5yx*xYE3);fAEeVya$QvXs9zr2(zom>>B3-ml6JdzSA`W}j$xtbEes znBJq4ex_XH+kJ;GFmDcJdm@I%jwm~Z96?>MwR4gl&S=VLo~jk?c!o-_uk0!LfFqIK zof{zz65AFc;2)DvDYmtrs)u(Uhh}OfHD3;w3vZ1biuG%!iPewYBoa)NP4Fh`CIdvB z{u}e>=F$D8E{5EuiANI^65C6&^Ahu#JQLC5te;sUMSDfpja`SJ3%d&p3keIfi|`HG z4dD&+Mi(!MhlRIa5vSaEg}+S>A_+2`A& zFUeVnS&gevGZ1S}Yjf+J8a{*KB$1SUDfGMHCd-MMcHf%{%1X!|opV&mEy|RsKB@O> zU)BnaE7b}G^asQT9NA6TQT)-q7r9k8iC%!tFegdVo{bjfTM+&`p9B6@uNCnD~3(Ty_) zU|w$P&5=s!9!zMtJSgXP;*96m_Gc9plYS-n^=gSR?lx}oTt9Kje8-_C;(KJyqYA}g z=Tdi12col!kqcrWu{@~!Re7-Y{VmP!aV)r#ztJx~oN5|uQhN9WOF83`Ad@tea4i;x z$e$j0QNcl;>ugW)x?m17kMcVoN??h5tulQ_K-~~>%3wOnRiF3d%H70J1I^kOk6&CZ zDl5NyA)1_Q60>oBRMB7KhvPkiOCBvU^ae)a_$Qpv6+)}}CKvn1h+UsM)y2s9sNciBZ1cF?Kyjwz#+D zDNFBi?HX;1KACa*{jb|Xj3MlPHBp6z<%PwA<=*DsCj{#>tJsCYjXAs|p;ktfx4fN} zd;QxT+h51-8Gbf1y1wF!A6bboy3?DPsUaR>DjSpYtgYQOf6bx-!DbtC>-v&&+(%23 zKrxOO8=@OAJAbS2QaSmv=@pxge(QMj(9qcBviFPg+VdInuEb6Ax`N9!&T1dK?=3Us zaese2&259eJcfJjH~TeKvV5{Flw%cXDlBnMixo9yM~meqa|8S1Ya z_3~Xkc88Zuact??LiHPQZ&Or_rvJKY@3)ZANG?0>$~tnuXt|b`L32u^Z>H~&4b7!_ zXB@_5q@b?uH9gu$?lGUXg4=Xr5N0TGF~RGNn}yi1Mz!gNGvhD)e7_jZKJR=x^0s3< zKCo<^ZeANN-m6gOL6k^Grzt(JS(<&6p3G~_t5sWe5U>ROg79dCMVh9hC7)ILzC9K4 z^h?&Qtd!&{DoTCvBlu0d-FTGMRjV2Yjjj|G4%|1rGMmk|)v=jKtL199HNj20Vc{~} zJf(aktpK;ZN$mnl%sg_lebMwnK5k8aUa@ECL*NhR`j6OwtpQ1^RD8`+%K~?qtH>x% zxp3wBmgmMIhZn;)y%8&)NbiE(+M&I#M}8dt8d$PlgsewTY~8HC+4a`^_|h@@`zia+ z4nEwU?A0P^eH6MR^f)q^pP!qFt7hd^=hMlo*I6gK-UpZ*;ODWqGvj-ocXYeVb_bUk zx5K;Y^6@#V?n}8j1q!V~t^C!Uc%|cEg-?K0B_~eP3}=k7$9dVhBLTHr7(1kZ4%*fMX@s=Bg}>c~yZ``H zr=6~u;mq{)6c8A+r0pS%q&M0P4DQWA8;;oKA;5HBw;NiP{mjJpE_3WviXQqmA7v#sjA$2x|KK5zuab!n$JrFcWAnh_|g9 z1S%Zyh_lx(|fAU`XN8UqE zK)ZpGFCyKYJdw99xns}*KToXS^v}9z{3G5Uytn>Ymy7?%3jvjZ9Nz0+?)ldi=sbrX z|MXgL@u%M-T|sAe2feyD)|?l7q0)6Os$KIQS{SA8wnF0Tzi;LeMVOtt-(3+{uzV;G zLjCNzoM;%OB<>ZZ=KZT~NzS6D&dJcckuXFtTQv24Eo2ol6T5l3?}328>!lqdLHfI@ z0;i)2x)f)0b&%mvn@O8vJ3Ad05a?vzI^|8D?Z6qu&7|j(latf{u=n*i5qu>Z7y%%J z0|2NY06=FA0L)+yDd0`<=Tmi=5(t{0`B%cfWB5h*>-o3Hf0giWg#V<pA)|Hkl3 z=U>lXy8o5%-*o@03V+A&r#1c?95Pe_NmF9$=$JizV8g?`noo$)5;^cfT_Z_b``=XU zco5HrMUaXMHu-t@_(~q`7sCsG^K)a;1WsTE7M zyy_mGO}eEmf|8x*gLu~BSEeT?^sA)Eg@jg)Jsal})R2%e|LxhuU?_jYr@`DKg%_1% zSGIl9Cp4D@y@z3vWEp5GO9jx}@#vEX*}5Sd+>hNHBc$7H=+@q(?S46IR~mu85^k8# z9u3VdeOz&t{FOk}B&j;TV)G&5HSN#@9b~b(=PSH1vChxah16-y7SuW29+Sr=v66A! zFj}bkXxO?j);vkPSyC0YBFuX*$i-Z}+<%Tk22OrSu*#!KQ`oVf$gKEIz30+O5QTD^ z)2P0YE2O-Py&D(s?BL?Y9YT&BN19KrIYlPCQMaxw*!K$Qr3pp%NwV3`9ToU_vPBVN zw=rK4B{ihF=ql9VC0X{~)qaX@uF~(xb=m82%jEP@x3Vl z8rS6F_!dx_Yau-B5o9EWL?`vC7Q8RZ*bN<|nRT*>I8jAs?aj6nzKth+1^J7wgl$7m zX-rp~(vszeq7^f3?MQ4;@gXtQuJ_|LgAj7&E~bR;P*aGxJlPJ^>%*1s?b*gbng&LQ zC5-%K>pbqJ*fZa(%SOYH7q zSveXQ!{@dLyy83YDY_l<;Riyn8CI1ABxP*jC_=<^LuMN5TEMlv(2fm{duTl=##FL; z$ro$tG$=$qlaqq&SPFv+k=F=kYF??H-hQbt&`P|~)+M6^E5oS3$iXZIX`0N{N1d1R zPhd4jgA4(?ew-zBVett`DZsNgE~FAdp4gW8N*rlLl^Ao_;F(FVrmT}@Icukyi3s8-9a6#NBa$(g`!{zY$R zQsWZp?ES^bG>{{EO`?a|TJ9QiiDZzu>)Jim(o?usL!ZpjIO;0LoK7vP($VTlt$XCD zO+s5;s9=9CE1!}kXRHu5>PMgKm)IT|Zk0yWies(Xt}GAalgY^)43#_IsH=!6X;y69 zc}NIcoM>$yh#XNN^A)gm2X`RybvrgWhSt1E!BA7r8bBgs0%;f`KdvtkD6};yao`9q zJg(pI#)G0VYU#HM-}bKfrGSl|z7hI7ti|14(4!>wU*8$rt0EYHf;AMqn5*E0UOB>^ z&zT~Ydpo%o*CUt7;ko1dGL_Bzb4`Q-A7qfE3Kt^(G2S4&3$I2}%c&65fc@@QOtro4 z3w)xU!3=)Y(}R0z&b0+nU0*rN$0henG{rF`1Imqw7|HLd;SGreP(0C;diDnb3LCc^ zOv{|9l7h`F)S7*f{vB!{!UgJ?^}s5P#kb^Cl`-O2Hq7&R%(&F=K&C2?t!uf=nJaHDuKJ3)MjaVaW_;_(Ta|a(0(z8)9Ko>dah?L*?`(*&FsULQ@~(+bV;@ z{D`45TYjXICQKo5u8Yhv`O8>88L~+(tyr{y!(i?*c1pZA3H4FHdv0tjlt0j(R7T{? z){7X89^ma7*iaZsP+K;-uf(XbPY*55<2+Spv(Xi?{TTLE91KceY_qQY-ei$e5#uHr z*{t^fKh_`oekxIwXgOQ7YSkwfQBlRgkq$cd3F{%boaHZprVEs87MV8}>^U}^7ec^r zx*tGp^&1ZhW>_@b`krM5rL+E8q~Fl0tOCoD1^VoFLL&V!q-m3*A#n=lP8MHnX!XKz zoN5A$?y_e0l1CNd>+*?dMSpkC$>!<^`W z@tRLQAYYspyU)n55jO605Z7agweszuFJ+bxP}|q;4HGokAG6gX6PJh^AwK~!Ycnsr zbq)@Dyz%KsNL)ja%k$P`ZVX1V3wz5Dmk!7G>&=7ZO16UHN{e!*1P#^Cj0p}HL23vqU1yfW!=92q}v z^GEX*;W3dS+pt#1B4^cmmG|6UC?hq5YDxf9!$SkSz(vBVED--Nzw@#}5@eF%$AePmwL{l&nb zJj(eoh9CwjldbP{?8PClI}=DL z7w+OnkPr@eIW_*xGy>k6Fd38d_ArWVbWU2G9e-d~On{djzc%%ifM!q*sBLH_LpL{i zjedXm>)y-1IN#3|^ghXQ>-#t#)`Apu{cStXWM;Cw#g3MDv7cAEpU+zlYl<`$R0cU8 zm3e2)0MWS+lj(TkXKs#NvN_lzTs5J%_IZ+U;5v!lmxBe)fhm~k<_AJx32mBSR>?9? z;3=${^Of5`1B&Ko5EY{KCX=dgKvDvvKekkpv`GYC^gBWa_%0^VAg-xIL%*`jnIG3k zCrmoiRx@E>j`mp1d@~*c87S5j^DPq!YA!Nz?wsKrZNyFob_a@F-xZeoX*6l=l?s<_ zgNNK^G~Gq!IW-@cRw(ZK<-ArRCaX>VUZ9+Btm;mORyB{1V<;44<;W?0Jd0?Jeer>P z=z;mL;7^;h3s^|lTadsy0q1B>dMKf61AZTxQ*jA$lvT^yY38xXz=^TY74-epo`_VR z(4dHO{MgNRkk9D0)Ml;bq#Nxlf55cMXKd+^2BL@EC`Y}O$@9Fs#RnOEBLoLLgyK#; z7%A}SAMtm+uEPC}N8sP*(%_iWj1eLp%OiC<9X6HU7TqZGJ>tr=wY1yhkYbcO*u zGuU&?aXqznxr#3mE=f+cBm2?>v!9De;Qr$Bak484VzseIsCyVc+W++TLeX-&x^y=* znty$^>-bu%zFodfN1SujGf2FrI!Psi9PSYURu%p{)r`~OZ)a4tlTWPPHDx_JTmQu7 zH7cs^ov(?rq^)Nv81vKvk1VNg>k7{_C#5E=`pd6iRf%MS7`)nhY@%=#cS)!(3nq}{=GR??tgRroxZsWq1= zyXRLvx~`mq6o_k2o;_j>A`= zS(a2_-!SWtdW!RG=g+DGtS5njXPB?WS4-Z7o2cnTfZdE$JoD;llgcCP`bnWCG!iC{OjD}U2L~sYwxj=xlES$n-d4SDZXaG#Y-i|aya3E5FecoES zU%|!~yOu06&p6(M66|+=^pN^)G@ni#-+6n=Yl8v=@Shta7_<=M6NKty@~D3@9q4pa z)S#Mq_^`P#KS5>BkoySwS|a@GHKP__bEdBHUJHMw)rF^6lO%5!z$Y`{45Z0d49ZlO zCSD@XL)%+ic#HSmO$jxiwlYr~Vut&P7CQ+Q8%9icAo|1OnTwrCvjiwK-EK^IMTKhZ zj@L_ad#!-CZN1=D=@W`sult$gonzhDT{!!{wxj>r(wPAN-mw0n`1SnTcJlxG&;OH6 z_Fwz_|Fx5Z|3Bm(b1cT{GGiBBtZ6!h02HVXb;J_@Wp*WP!tK=gX;p4bS z?A2gY%uJ0@Xsmkm`_={H+1v7khmqUp&K&3;%++hfii}F%1_|qVKUb(_d;UUe@cZ7b zhN|54L!A84t6z^tJ=kbib-P^;;vITRE>*E~GT$CJ5*vsPq1(wV;^mSHLe{#=(*G&3C+s%{?Ios)>kT+X? z_gi+Q?NPZ$KzMYyB23F_SQZM7u#And9fzh+zpB-$w=_|cTJXWwhV+a;Z%qrH&hR~v zP=H$-*&Z2F39k?bYr;uruCES|7I>8D`0-)N>2XI54a^q*!wNzB*2@7?zIOSKDq!T! zJ|6l`+x>-iz|n+V(;{QW3*SN~sN+5BPP<5Z9E2$QG+>++duBLF$ z%}4lNF)(xL)>R7I7ZBhk6yUjkT(6~BR)ek*DGzTcH{5RHK|Gr6@OEvcs|pucS1of7 zhr@ef# zQ+Q-V;ms6jaig|0;8@JRF6@&mxx8=WIaAP>do7#cQ1|k3p@iZ7V>#KrmJdY!)ntMd znkVfHDa>5aV#+Bu?Kf~-aK@{7fqnG}ftyH`=F{5xz$y$J^?`-zBG2Srph0}XFbhBL zs&WCK>X9Fg4KP=ixR|9Q`c@N@R51Y`{tknDSoTmy|H2d0BFD7rCWhfKopRzC&% znLZvG+B7S#NI&+2@sFG(KWodDtv;UZjxzE6o22svEUH%-?K&@a!1^2{egt+4(pghu z7*(uEB02Clm$y&aO#RFhx9!fVH6}SDyVF;5)oF`>`o={Az zcW8H5^|@ZbxFzGj@{tAzDyvUL{TE|)umSqlf&BlPq4xivRHW*3AYKo|grP%h+7quG Q{(`BadF5ih`puC40B?hYYXATM literal 0 HcmV?d00001 diff --git a/Icons/MastodonIcon.svg b/src/HTTP/Images/Icons/MastodonIcon.svg similarity index 100% rename from Icons/MastodonIcon.svg rename to src/HTTP/Images/Icons/MastodonIcon.svg diff --git a/Icons/SteamIcon.svg b/src/HTTP/Images/Icons/SteamIcon.svg similarity index 100% rename from Icons/SteamIcon.svg rename to src/HTTP/Images/Icons/SteamIcon.svg diff --git a/Icons/TiktokIcon.svg b/src/HTTP/Images/Icons/TiktokIcon.svg similarity index 100% rename from Icons/TiktokIcon.svg rename to src/HTTP/Images/Icons/TiktokIcon.svg diff --git a/Icons/YoutubeIcon.png b/src/HTTP/Images/Icons/YoutubeIcon.png similarity index 100% rename from Icons/YoutubeIcon.png rename to src/HTTP/Images/Icons/YoutubeIcon.png diff --git a/script.js b/src/HTTP/JS/script.js similarity index 100% rename from script.js rename to src/HTTP/JS/script.js diff --git a/Perfect DOS VGA 437.woff b/src/HTTP/Perfect DOS VGA 437.woff similarity index 100% rename from Perfect DOS VGA 437.woff rename to src/HTTP/Perfect DOS VGA 437.woff diff --git a/robots.txt b/src/HTTP/robots.txt similarity index 100% rename from robots.txt rename to src/HTTP/robots.txt diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..6ec2ba0 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,116 @@ +#![allow(non_snake_case)] +#![allow(unused_braces)] +use rouille::{router, Response}; +use std::fs::File; + +fn main() { + // Never leave the server. CTRL + C if you have issues. + rouille::start_server("127.0.0.1:5000", move |Request| { + // Router. Go to the correct pages, else hit the sack. + router!(Request, + // Images. + (GET) ["/Icons/BlueskyIcon.svg"] => { + Response::from_file("image/svg+xml", File::open("src/HTTP/Images/Icons/BlueskyIcon.svg").unwrap()).with_status_code(200) + }, + (GET) ["/Icons/BoostyIcon.svg"] => { + Response::from_file("image/svg+xml", File::open("src/HTTP/Images/Icons/BoostyIcon.svg").unwrap()).with_status_code(200) + }, + (GET) ["/Icons/CodebergIcon.svg"] => { + Response::from_file("image/svg+xml", File::open("src/HTTP/Images/Icons/CodebergIcon.svg").unwrap()).with_status_code(200) + }, + (GET) ["/Icons/DogeIcon.png"] => { + Response::from_file("image/png", File::open("src/HTTP/Images/Icons/DogeIcon.png").unwrap()).with_status_code(200) + }, + (GET) ["/Icons/EmailIcon.svg"] => { + Response::from_file("image/svg+xml", File::open("src/HTTP/Images/Icons/EmailIcon.svg").unwrap()).with_status_code(200) + }, + (GET) ["/Icons/Favicon32.png"] => { + Response::from_file("image/png", File::open("src/HTTP/Images/Icons/Favicon32.png").unwrap()).with_status_code(200) + }, + (GET) ["/Icons/FediverseIcon.png"] => { + Response::from_file("image/png", File::open("src/HTTP/Images/Icons/FediverseIcon.png").unwrap()).with_status_code(200) + }, + (GET) ["/Icons/ForgejoIcon.png"] => { + Response::from_file("image/png", File::open("src/HTTP/Images/Icons/ForgejoIcon.png").unwrap()).with_status_code(200) + }, + (GET) ["/Icons/ItchIOIcon.svg"] => { + Response::from_file("image/svg+xml", File::open("src/HTTP/Images/Icons/ItchIOIcon.svg").unwrap()).with_status_code(200) + }, + (GET) ["/Icons/KnowledgeIcon.png"] => { + Response::from_file("image/png", File::open("src/HTTP/Images/Icons/KnowledgeIcon.png").unwrap()).with_status_code(200) + }, + (GET) ["/Icons/MastodonIcon.svg"] => { + Response::from_file("image/svg+xml", File::open("src/HTTP/Images/Icons/MastodonIcon.svg").unwrap()).with_status_code(200) + }, + (GET) ["/Icons/SteamIcon.svg"] => { + Response::from_file("image/svg+xml", File::open("src/HTTP/Images/Icons/SteamIcon.svg").unwrap()).with_status_code(200) + }, + (GET) ["/Icons/TiktokIcon.svg"] => { + Response::from_file("image/svg+xml", File::open("src/HTTP/Images/Icons/TiktokIcon.svg").unwrap()).with_status_code(200) + }, + (GET) ["/Icons/YoutubeIcon.png"] => { + Response::from_file("image/png", File::open("src/HTTP/Images/Icons/YoutubeIcon.png").unwrap()).with_status_code(200) + }, + (GET) ["/Buttons/BoyKissNow3.gif"] => { + Response::from_file("image/gif", File::open("src/HTTP/Images/Buttons/BoyKissNow3.gif").unwrap()).with_status_code(200) + }, + (GET) ["/Buttons/Catboys.webp"] => { + Response::from_file("image/webp", File::open("src/HTTP/Images/Buttons/Catboys.webp").unwrap()).with_status_code(200) + }, + (GET) ["/Buttons/CatscapeMeow3.gif"] => { + Response::from_file("image/gif", File::open("src/HTTP/Images/Buttons/CatscapeMeow3.gif").unwrap()).with_status_code(200) + }, + (GET) ["/Buttons/CrowdedGamesGroup.gif"] => { + Response::from_file("image/gif", File::open("src/HTTP/Images/Buttons/CrowdedGamesGroup.gif").unwrap()).with_status_code(200) + }, + (GET) ["/Buttons/FontsNowGo.gif"] => { + Response::from_file("image/gif", File::open("src/HTTP/Images/Buttons/FontsNowGo.gif").unwrap()).with_status_code(200) + }, + (GET) ["/Buttons/NekkoScape98Nyan.gif"] => { + Response::from_file("image/gif", File::open("src/HTTP/Images/Buttons/NekkoScape98Nyan.gif").unwrap()).with_status_code(200) + }, + (GET) ["/Buttons/NetscapeNow3.gif"] => { + Response::from_file("image/gif", File::open("src/HTTP/Images/Buttons/NetscapeNow3.gif").unwrap()).with_status_code(200) + }, + (GET) ["/CatPolygon.svg"] => { + Response::from_file("image/svg+xml", File::open("src/HTTP/Images/CatPolygon.svg").unwrap()).with_status_code(200) + }, + // Audio. These can be found in the script. + (GET) ["/Audio/KeyboardTyping.mp3"] => { + Response::from_file("audio/mpeg", File::open("src/HTTP/Audio/KeyboardTyping.mp3").unwrap()).with_status_code(200) + }, + (GET) ["/Audio/Glow.mp3"] => { + Response::from_file("audio/mpeg", File::open("src/HTTP/Audio/Glow.mp3").unwrap()).with_status_code(200) + }, + (GET) ["/Audio/Meow.mp3"] => { + Response::from_file("audio/mpeg", File::open("src/HTTP/Audio/Meow.mp3").unwrap()).with_status_code(200) + }, + // CSS. + (GET) ["/Animations.css"] => { + Response::from_file("text/css", File::open("src/HTTP/CSS/Animations.css").unwrap()).with_status_code(200) + }, + (GET) ["/style.css"] => { + Response::from_file("text/css", File::open("src/HTTP/CSS/style.css").unwrap()).with_status_code(200) + }, + // JavaScript. + (GET) ["/script.js"] => { + Response::from_file("text/javascript", File::open("src/HTTP/JS/script.js").unwrap()).with_status_code(200) + }, + // WOFF. + (GET) ["/Perfect%20DOS%20VGA%20437.woff"] => { + Response::from_file("font/woff", File::open("src/HTTP/Perfect DOS VGA 437.woff").unwrap()).with_status_code(200) + }, + // Robots. + (GET) ["robots.txt"] => { + Response::from_file("text/plain", File::open("src/HTTP/robots.txt").unwrap()).with_status_code(200) + }, + // Actual Web Pages. + (GET) ["/"] => { + Response::from_file("text/html", File::open("src/HTTP/HTML/index.html").unwrap()).with_status_code(200) + }, + _ => { + Response::from_file("text/html", File::open("src/HTTP/HTML/404.html").unwrap()).with_status_code(404) + }, + ) + }); +}