agate

Simple gemini server for static files
git clone https://github.com/mbrubeck/agate.git
Log | Files | Refs | README

commit 59c921c5d5ce212bd4494057cd74e543749902b0
parent c4aa71836b7fb441a96b518972038e1398cda69d
Author: Matt Brubeck <mbrubeck@limpet.net>
Date:   Wed, 10 Jun 2020 08:40:45 -0700

Switch to fork of tree_magic

Diffstat:
MCargo.lock | 149+++++++++++++++++++++++++++++++++++++++++++------------------------------------
MCargo.toml | 8++------
Msrc/main.rs | 2+-
3 files changed, 85 insertions(+), 74 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock @@ -2,17 +2,26 @@ # It is not intended for manual editing. [[package]] name = "agate" -version = "1.1.0" +version = "1.2.0" dependencies = [ "async-std", "async-tls", "once_cell", "rustls", - "tree_magic", + "tree_magic_mini", "url", ] [[package]] +name = "arrayvec" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" +dependencies = [ + "nodrop", +] + +[[package]] name = "async-std" version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -26,7 +35,7 @@ dependencies = [ "futures-timer", "kv-log-macro", "log", - "memchr 2.3.3", + "memchr", "num_cpus", "once_cell", "pin-project-lite", @@ -91,15 +100,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" [[package]] -name = "cloudabi" -version = "0.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -dependencies = [ - "bitflags", -] - -[[package]] name = "crossbeam-deque" version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -255,7 +255,7 @@ dependencies = [ "futures-macro", "futures-sink", "futures-task", - "memchr 2.3.3", + "memchr", "pin-project", "pin-utils", "proc-macro-hack", @@ -330,19 +330,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] -name = "libc" -version = "0.2.71" +name = "lexical-core" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49" +checksum = "d7043aa5c05dd34fb73b47acb8c3708eac428de4545ea3682ed2f11293ebd890" +dependencies = [ + "arrayvec", + "cfg-if", + "rustc_version", + "ryu", + "static_assertions", +] [[package]] -name = "lock_api" -version = "0.3.4" +name = "libc" +version = "0.2.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" -dependencies = [ - "scopeguard", -] +checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49" [[package]] name = "log" @@ -367,15 +371,6 @@ checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" [[package]] name = "memchr" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "148fab2e51b4f1cfc66da2a7c32981d1d3c083a803978268bb11fe4b86925e7a" -dependencies = [ - "libc", -] - -[[package]] -name = "memchr" version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" @@ -390,12 +385,20 @@ dependencies = [ ] [[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] name = "nom" -version = "3.2.1" +version = "5.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05aec50c70fd288702bcd93284a8444607f3292dbdf2a30de5ea5dcdbe72287b" +checksum = "0b471253da97532da4b61552249c521e01e736071f71c1a4f7ebbfbf0a06aad6" dependencies = [ - "memchr 1.0.2", + "lexical-core", + "memchr", + "version_check", ] [[package]] @@ -415,30 +418,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d" [[package]] -name = "parking_lot" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3" -dependencies = [ - "cfg-if", - "cloudabi", - "libc", - "redox_syscall", - "smallvec", - "winapi", -] - -[[package]] name = "percent-encoding" version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -550,6 +529,15 @@ dependencies = [ ] [[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver", +] + +[[package]] name = "rustls" version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -563,6 +551,12 @@ dependencies = [ ] [[package]] +name = "ryu" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" + +[[package]] name = "scoped-tls-hkt" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -585,6 +579,21 @@ dependencies = [ ] [[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + +[[package]] name = "send_wrapper" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -642,6 +651,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] +name = "static_assertions" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f3eb36b47e512f8f1c9e3d10c2c1965bc992bd9cdb024fa581e2194501c83d3" + +[[package]] name = "syn" version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -653,15 +668,14 @@ dependencies = [ ] [[package]] -name = "tree_magic" -version = "0.2.3" +name = "tree_magic_mini" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d99367ce3e553a84738f73bd626ccca541ef90ae757fdcdc4cbe728e6cb629" +checksum = "92a265e0c5b89a31cb939a9d7ffce63382e450af10df56a3b9bfb7084d3c2178" dependencies = [ "fnv", "lazy_static", "nom", - "parking_lot", "petgraph", ] @@ -707,6 +721,12 @@ dependencies = [ ] [[package]] +name = "version_check" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" + +[[package]] name = "wasm-bindgen" version = "0.2.63" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -841,8 +861,3 @@ name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[patch.unused]] -name = "tree_magic" -version = "0.3.0" -source = "git+https://github.com/mbrubeck/tree_magic?branch=override#688ee0c303d1bdd342853cd835ab0c3dc2beefb6" diff --git a/Cargo.toml b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "agate" -version = "1.1.0" +version = "1.2.0" authors = ["Matt Brubeck <mbrubeck@limpet.net>"] description = "Very simple server for the Gemini hypertext protocol" keywords = ["server", "gemini", "hypertext", "internet", "protocol"] @@ -15,14 +15,10 @@ async-tls = "0.7.0" async-std = "1.5" once_cell = "1.4" rustls = "0.17.0" -tree_magic = "0.2.3" +tree_magic_mini = "1.0" url = "2.1" [profile.release] lto = true codegen-units = 1 panic = "abort" - -[patch.crates-io.tree_magic] -git = "https://github.com/mbrubeck/tree_magic" -branch = "override" diff --git a/src/main.rs b/src/main.rs @@ -135,7 +135,7 @@ async fn send_response<W: Write + Unpin>(url: &Url, mut stream: W) -> Result { if path.extension() == Some(OsStr::new("gmi")) { stream.write_all(b"20 text/gemini\r\n").await?; } else { - let mime = tree_magic::from_u8(&body); + let mime = tree_magic_mini::from_u8(&body); let header = format!("20 {}\r\n", mime); stream.write_all(header.as_bytes()).await?; }