v0.35.1: performance, AGPL licensing and documentation overhaul

- Web Server reads static files inline; proxy middleware chain flattened
- About window with license summary and project links; AGPL-3.0-or-later
- Rewritten documentation: feature list, screenshots, performance guide
- Fix false spikes in per-Vhost request-rate charts
This commit is contained in:
gru committed 2026-11-05 18:29:56 +01:00
1 parent d3b492874b
commit eba9f89283
135 files changed
+1425 -1064

No files matched your search

+9 -10
View File
@@ -23,7 +23,7 @@ pub async fn apply(
{
return Ok(skip(response, None, "status_ineligible"));
}
if response.headers().contains_key("content-range") {
if response.headers().contains_key(::http::header::CONTENT_RANGE) {
return Ok(skip(response, None, "content_range"));
}
let Some(kind) =
@@ -39,7 +39,7 @@ pub async fn apply(
};
let Some(content_length) = response
.headers()
.get("content-length")
.get(::http::header::CONTENT_LENGTH)
.and_then(|value| value.to_str().ok())
.and_then(|value| value.parse::<usize>().ok())
else {
@@ -121,18 +121,17 @@ pub async fn apply(
.get::<OriginValidators>()
.cloned()
.unwrap_or_else(|| OriginValidators {
etag: parts.headers.get("etag").cloned(),
last_modified: parts.headers.get("last-modified").cloned(),
etag: parts.headers.get(::http::header::ETAG).cloned(),
last_modified: parts.headers.get(::http::header::LAST_MODIFIED).cloned(),
});
parts.headers.remove("content-encoding");
parts.headers.remove("content-length");
parts.headers.remove(::http::header::CONTENT_ENCODING);
parts.headers.remove(::http::header::CONTENT_LENGTH);
parts.headers.remove("content-md5");
parts.headers.remove("digest");
parts.headers.remove("content-digest");
parts.headers.remove("accept-ranges");
parts.headers.insert("etag", transformed_etag(&transformed));
parts.headers.insert(
"content-length",
parts.headers.remove(::http::header::ACCEPT_RANGES);
parts.headers.insert(::http::header::ETAG, transformed_etag(&transformed));
parts.headers.insert(::http::header::CONTENT_LENGTH,
HeaderValue::from_str(&transformed.len().to_string()).expect("integer header"),
);
drop_vary_accept_encoding(&mut parts.headers);