Thorium/Owin.Compression
57.3
Adequate · 3 October 2026
931
lines of production code
F#
primary language
2
measurements over time
What this system is
Owin.Compression is a middleware library that provides configurable response compression for web applications, supporting Brotli, Deflate, and Gzip algorithms. It integrates with both traditional OWIN self-hosting and modern ASP.NET Core/Kestrel environments, offering features like ETag caching, path exclusion, and streaming control. The system is designed to optimize bandwidth usage and improve performance by serving compressed content based on client capabilities and configurable rules.
Features
Brotli compression support and expanded platform compatibility
The Owin.Compression module now supports Brotli compression in addition to Deflate and GZip, available when targeting .NET Standard 2.1 or higher (e.g., .NET 6.0, .NET 8.0, .NET 10.0) via built-in .NET functions. The library has been updated to target .NET 4.8, .NET Standard 2.0, and .NET Standard 2.1, and can now be used with ASP.NET Core/Kestrel alongside OWIN SelfHost. New configuration options allow users to disable deflate, brotli, or streaming responses, and the module now supports eTag caching to send 304 responses when content has not changed.
(repo-wide) · high confidence
Introduction of Owin.Compression middleware with Brotli support and ETag handling
A new Owin.Compression middleware is introduced, providing configurable compression for file serving and response bodies. The implementation adds support for Brotli compression on .NET Standard 2.1+ alongside existing Deflate and GZip options. It includes logic to handle ETags and conditional requests (If-None-Match) to return 304 Not Modified responses, and allows users to configure allowed file extensions, MIME types, minimum compression sizes, and excluded paths.
Owin.Compression · high confidence
Behavioural changes
Owin.Compression v1.0.51: Expanded framework support, Brotli compression, and eTag caching
The Owin.Compression module has been updated to version 1.0.51, significantly expanding its capabilities and target platforms. The library now supports .NET Standard 2.1, .NET 8.0, and .NET 10.0 in addition to the legacy .NET Framework 4.8, enabling usage in modern ASP.NET Core/Kestrel environments alongside traditional OWIN self-hosting. Functionally, the compression engine now includes Brotli support alongside Deflate and GZip, and introduces built-in eTag caching for improved performance. The module also adds new configuration options, including the ability to disable Deflate or streaming, set a minimum size threshold for compression, and exclude specific paths (such as SignalR) from processing.
src/Owin.Compression · high confidence
Test coverage
Added ASP.NET Core Web API test project; Migrate test suite from NUnit to xUnit.
Dependencies
Migration to .NET SDK-style projects and modern .NET targets
The project has migrated from legacy .NET Framework project formats to the modern SDK-style project system, enabling support for .NET Standard 2.1, .NET 8.0, and .NET 10.0 in the main library, while the .NET Framework components target .NET 4.8 and 4.8.1. This update also replaces the NUnit test framework with xUnit and upgrades the build tooling to FAKE 6.1.4, ensuring compatibility with Visual Studio 2022 and current .NET SDKs.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 54 → 57 (+2.9)
- Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 58 → 51 (-6.4)
- Architecture 69 → 95 (+25.6)
- Maturity 48 → 52 (+4.3)
- Readiness 55 → 55 (+0.0)
- Security 87 → 87 (+0.0)
- Performance 90 (new)
Resolved (1)
- Documentation: written for insiders (lib/README.md)
New (17)
- Documentation: no usage examples (README.md)
- Duplicated block (11–12 lines × 2) (src/Owin.Compression.Standard/CompressionModule.fs)
- Duplicated block (13 lines × 2) (src/Owin.Compression.Standard/CompressionModule.fs)
- Duplicated block (13–14 lines × 2) (src/Owin.Compression.Standard/CompressionModule.fs)
- Duplicated block (14 lines × 2) (src/Owin.Compression.Standard/CompressionModule.fs)
- Duplicated block (15–16 lines × 2) (src/Owin.Compression.Standard/CompressionModule.fs)
- Duplicated block (17–18 lines × 2) (src/Owin.Compression.Standard/CompressionModule.fs)
- Duplicated block (17–22 lines × 2) (src/Owin.Compression.Standard/CompressionModule.fs)
- Duplicated block (19 lines × 2) (src/Owin.Compression.Standard/CompressionModule.fs)
- Duplicated block (21 lines × 2) (src/Owin.Compression.Standard/CompressionModule.fs)
- Duplicated block (26–27 lines × 2) (src/Owin.Compression.Standard/CompressionModule.fs)
- Duplicated block (29 lines × 2) (src/Owin.Compression.Standard/CompressionModule.fs)
- Duplicated block (31 lines × 2) (src/Owin.Compression.Standard/CompressionModule.fs)
- Duplicated block (7 lines × 2) (src/Owin.Compression/CompressionModule.fs)
- Duplicated block (9 lines × 2) (src/Owin.Compression.Standard/CompressionModule.fs)
- Duplicated block (9 lines × 2) (src/Owin.Compression.Standard/CompressionModule.fs)
- Near-duplicate member pair (249 shared lines) (src/Owin.Compression.Standard/CompressionModule.fs)
Changes since last survey
- 1 commits — 1 feature/other, 0 fixes
By area
- docs/content — 1 commit
Notable commits
- change: fsharp-refactor code clean-up.
Architecture
- Containers 0 added · 0 removed · contexts 1 added · 0 removed · edges 0 added · 0 removed
Added bounded contexts (1)
- Owin.Compression
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
Thorium/Owin.Compression was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit cb6ced7ef0a3faf1e5334b90252cf50cfa632b2d — the exact code this score is about.
- Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-4f4226d619ea.