BREAKING CHANGES
- Rules:
path
is now exact match without surrounding value withglob()
path "/api/v1/*"
should now bepath glob("/api/v1/*")
- Autocert: dropped support for some lesser-known DNS providers (66043e4)
New
- Configuration: Enhanced with pretty printing of active config and routes by provider on load/reload (f334f5c)
- Serialization: Faster deserialization with optimized algorithms and benchmarks (#157) (4852efc)
- Health Monitoring: Added random delay to prevent thundering herd problem (9d508c5)
- ACL: Periodic access summary notification of number of allowed/blocked connections, by ip (Docs)
- Rules: (c2c9f42 3dedd66) (Docs)
- Support backticks
`
as quotes - Added
host
type foron
value (e.g.on: host example.com
) - Glob patterns (e.g.
on: host glob(*.example.com)
) - Regular expressions (e.g.
on: host regex(\.+.example.com)
) - Environment variable substitution
- Support backticks
Changes
- Major Refactoring: Comprehensive codebase restructuring with improved organization:
- Moved utils to separate goutils repository (6776f20, b46b464)
- Reorganized configuration system with better concurrency and error handling (cab6880)
- Streamlined task lifecycle management, effectively reduced the amount of active goroutine (0f3a1ac)
- Streamlined icon list fetching and caching
- Simplified access log handling for stdout
- Applied gofumpt formatting across codebase (6776f20)
- Dependencies: Upgraded to Go 1.25.2 and updated dependencies (bb5f0cd, a8aa82f, fc23e26, 2ff5e5c)
- Performance: Improved JSON performance using
bytedance/sonic
(f411e17) - Memory Management: Replaced runtime weak pointer functions with weak package (e2aeef3)
- Config loading: No longer print summary on failed reload
- Docker Integration: Simplified Docker client initialization in API (c27bc0e)
- Access logging: stdout logger is now handled separately without buffering
- Code Quality: Enabled fieldalignment check and updated linting tools (1409a4e, d406b94)
Fixes
- Race Conditions: Fixed data race in strings.Title usage (9fceda6)
- Uptime Monitoring: Corrected overflow handling to set value to 0 instead of returning error (becb49e)
- Agent: Fixed JSON parsing error for agent proxy configuration (024100a)
- HTTP/3:
connection doesn't allow setting of receive buffer size. Not a *net.UDPConn?. See https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes for details
error - Build: Fixed Makefile issues and Dockerfile (b2de33e, ef40793)
- Idle-watcher
- Notification