Highlights
- New reusable
urlkeypackage for canonical URL normalization. - Fixes that improve Vary-handling correctness and cache stability.
- No breaking API changes.
What's Changed
✨ Features
- Expose reusable URL cache-key normalization package (
urlkey)- Added a public API for normalized URL cache-key generation.
- by @bartventer in #34 and #35
- Example usage:
import "github.com/bartventer/httpcache/pkg/urlkey" url := "https://EXAMPLE.com:443/a/./b/../c?q=%7e1#fragment" fmt.Println(urlkey.Normalize(url)) // https://example.com/a/c?q=~1
- Note: This package is used internally for consistent URL normalization in cache key generation; it can now be reused in other contexts where canonical URL forms are needed.
🐛 Fixes
-
Handle multiple
Varyheader lines correctly- Includes all
Varyheader lines when building normalized vary keys; adds regression tests. - by @bartventer in #33 (closes #32)
- Includes all
-
Return immediately on upstream
RoundTriperror -
Refresh stored headers on
304 Not Modifiedrevalidation
🔧 Other
- Go/CI updates and internal housekeeping by @bartventer in #34 and #35.
- Add SECURITY.md with supported versions and vulnerability reporting guidance by @bartventer (60e8c9f)
New Contributors
Full Changelog: v0.12.0...v0.13.0
The project is nearing a stable v1.0.0 milestone.
Any further feedback, issues, or contributions are welcome as we finalize the implementation and documentation.