tide-compress
Outgoing compression middleware for the Tide server framework.
```rust
[async_std::main]
async fn main() -> tide::Result {
let mut app = tide::new();
app.with(tide_compress::CompressMiddleware::new());
}
```
Features
- Support for Brotli, Gzip, and Deflate encodings, compile-time configurable through cargo feature flags.
- Prioritizes Brotli if available.
- Only pulls in the necessary dependencies for the desired configuration.
- Defaults to Brotli & Gzip.
Accept-Encoding
checking including priority.
- Minimum body size threshold.
- Configurable when created by
CompressMiddleware::with_threshold(usize)
.
- Does not compress responses with a
Cache-Control: no-transform
header.
- Sets the
Vary
header.
- Checks the
Content-Type
header (MIME).
- Checks against jshttp's comprehensive database, which is compiled to a perfect hash function at build time.
- If not in the database, checks against a regular expression.
- Default:
^text/|\+(?:json|text|xml)$
(case insensitive).
- Fully override-able to any custom
Regex
, with None
as an option.
- Functionality can be excluded in crate features if the
regex
crate or codegen poses build issues.
License
Licensed under the BlueOak Model License 1.0.0 — Contributions via DCO 1.1