v0.5.1
🔧 Patch Release - Connection Handling Optimization
Highlights
This release focuses on connection handling optimization and codebase simplification, refining the yamux-based architecture introduced in v0.5.0 with improved session management and cleaner proxy logic.
✨ New Features
HTTP Connection Listener
- New
connQueueListenerfor seamless HTTP connection handoff to standardhttp.Server - Better integration with HTTP/2 configuration support
🔧 Improvements
TCP Tunnel Optimization
- Refactored data connection processing logic for improved efficiency
- Session selection now prioritizes non-primary sessions for data transmission
- Falls back to main session only when no data session is available
- Send successful response earlier before upgrading to yamux session
Connection Lifecycle Management
- Optimized
Connectionstruct fields and lifecycle logic - Improved connection closing mechanism to prevent resource leaks
- Enhanced HTTP request parsing stability
- Better error logging methods
Dependency Updates
- Upgraded
golang.org/x/netto latest version
🗑️ Removed
HTTP CONNECT Method
- Removed support for HTTP CONNECT tunneling
- CONNECT requests now return
405 Method Not Allowed - Simplified proxy handler by removing HTTPS tunnel logic
Deprecated Code Cleanup
- Removed redundant
DataConnectionstructures and related management methods - Removed
connection_group_manager.go(~22 lines) - Streamlined response writing logic
📊 Stats
- 9 files changed
- +262 lines / -413 lines
- Net reduction of ~150 lines through code simplification
⚠️ Compatibility
- Fully compatible with v0.5.0 protocol
- No breaking changes from v0.5.0
What's Changed
- refactor(tcp): Optimizes the TCP tunnel data connection processing logic by @Gouryella
- feat(server): Supports HTTP connection listener and connection pooling improvements by @Gouryella
- feat(proxy): Removes support for the HTTP CONNECT method by @Gouryella
Full Changelog: v0.5.0...v0.5.1
What's Changed
- Fix/http proxy by @Gouryella in #9
Full Changelog: v0.5.0...v0.5.1