#cache #tower #serve #tower-service #static #etags

tunnelbana-etags

Generate etags for static files and serve them with tower

2 releases

0.1.1 Jan 26, 2025
0.1.0 Nov 11, 2024

#167 in Caching

Download history 62/week @ 2024-11-05 95/week @ 2024-11-12 16/week @ 2024-11-19 25/week @ 2024-11-26 20/week @ 2024-12-03 15/week @ 2024-12-10 5/week @ 2024-12-17 14/week @ 2024-12-24 4/week @ 2025-01-07 3/week @ 2025-01-14 101/week @ 2025-01-21 17/week @ 2025-01-28 9/week @ 2025-02-04

130 downloads per month
Used in tunnelbana

MIT/Apache

15KB
292 lines

tunnelbana-etags

Generate etags for static files and serve them with tower.

https://docs.rs/tunnelbana-etags


lib.rs:

tunnelbana-etags

An ETag adding middleware for Rust and especially ServeDir.

Part of the tunnelbana project.

Example

use tower_http::services::ServeDir;
use tower::{ServiceBuilder, ServiceExt};
use http::Response;
use tunnelbana_etags::{ETagLayer, ETagMap};

let path = std::path::PathBuf::from("/var/www/html");
let etags = ETagMap::new(&path).expect("Failed to generate etags");
let etag_mw = ETagLayer::new(etags);
let serve_dir = ServeDir::new(path).append_index_html_on_directories(true);
let service = ServiceBuilder::new()
   .layer(etag_mw)
   .service(serve_dir);

Dependencies

~5.5MB
~111K SLoC