3 releases
| 0.1.2 | Dec 30, 2025 |
|---|---|
| 0.1.1 | Dec 29, 2025 |
| 0.1.0 | Dec 26, 2025 |
#755 in Compression
Used in armature-framework
2MB
42K
SLoC
armature-compression
HTTP response compression middleware for the Armature framework.
Features
- Multiple Algorithms - gzip, brotli, zstd
- Content Negotiation - Accept-Encoding support
- Streaming - Compress as data is generated
- Configurable - Min size, compression levels
- Auto Detection - Skip already compressed content
Installation
[dependencies]
armature-compression = "0.1"
Quick Start
use armature_compression::CompressionMiddleware;
use armature_core::Application;
let app = Application::new()
.with_middleware(CompressionMiddleware::default())
.get("/data", handler);
Configuration
let compression = CompressionMiddleware::new()
.gzip(CompressionLevel::Default)
.brotli(CompressionLevel::Best)
.min_size(1024) // Don't compress < 1KB
.exclude_types(vec!["image/*", "video/*"]);
Streaming Compression
use armature_compression::StreamingCompressor;
let compressor = StreamingCompressor::gzip();
// Compress chunks as they're generated
for chunk in data_stream {
let compressed = compressor.compress_chunk(&chunk)?;
response.write(compressed).await?;
}
License
MIT OR Apache-2.0
Dependencies
~33–50MB
~1M SLoC