| Crates.io | armature-compression |
| lib.rs | armature-compression |
| version | 0.1.2 |
| created_at | 2025-12-26 22:16:08.598991+00 |
| updated_at | 2025-12-30 22:19:05.387736+00 |
| description | HTTP compression middleware with gzip, brotli, and zstd support |
| homepage | https://pegasusheavy.github.io/armature |
| repository | https://github.com/pegasusheavy/armature |
| max_upload_size | |
| id | 2006344 |
| size | 105,539 |
HTTP response compression middleware for the Armature framework.
[dependencies]
armature-compression = "0.1"
use armature_compression::CompressionMiddleware;
use armature_core::Application;
let app = Application::new()
.with_middleware(CompressionMiddleware::default())
.get("/data", handler);
let compression = CompressionMiddleware::new()
.gzip(CompressionLevel::Default)
.brotli(CompressionLevel::Best)
.min_size(1024) // Don't compress < 1KB
.exclude_types(vec!["image/*", "video/*"]);
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?;
}
MIT OR Apache-2.0