web-profiler continues to expand its lightweight request profiling capabilities while keeping the middleware boundary stable and predictable for net/http applications.
Highlights
- Restructured the package layout for better long-term maintainability while preserving the public API
- Expanded safe profiling coverage for charset, fingerprint, complexity, and encoded-body handling
- Added benchmark baselines and documentation to make future performance changes easier to evaluate
Added
- XML complexity analysis alongside existing JSON and form complexity profiling
- Support for multi-layer content-encoding analysis
- Support for zlib-wrapped and raw
deflaterequest bodies - Support for the
Forwardedheader in proxy-aware fingerprinting - Benchmark coverage for large JSON, XML, form, multipart, compressed-body, fingerprint, and end-to-end request analysis
- A benchmark baseline document under
docs/for future regression tracking
Improved
- Reduced false positives in confusable/homoglyph detection for normal non-Latin text
- Normalized and validated proxy-derived client IP values before using them in fingerprint fields and hashes
- Normalized and filtered invalid
TrustedProxyCIDRsduring config processing - Moved internal implementation into clearer
internal/core,internal/model, andinternal/policydirectories - Kept examples and README navigation aligned with the updated repository layout
Fixed
- Prevented normal
Content-Encoding: identityrequests from being treated as still encoded - Rejected trailing JSON data consistently in format-aware analysis paths
- Improved behavior for encoded bodies that cannot or should not be decoded
- Added safer handling around structured analysis boundaries and warning generation
Performance
- Added reproducible benchmark baselines for the main analysis paths
- Established a clearer reference point for future optimization and regression checks
- Confirmed the bounded decompression path behaves consistently in end-to-end request analysis
Documentation
- Updated English and Chinese README links and structure
- Added a dedicated benchmark baseline document in
docs/benchmark_baseline.md
Compatibility
- No known breaking API changes from
v1.1.0 - Existing integrations should continue to work without code changes