Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.0.0 - 2025-10-12¶
โจ Added¶
- Complete Socket.IO v4 Implementation
- Full Socket.IO v4 protocol support
- Engine.IO v4 with HTTP long-polling and WebSocket transport
-
Handshake and protocol negotiation
-
Namespaces
- Connection multiplexing with namespaces
- Support for default (
/) and custom namespaces -
Isolated events per namespace
-
Event System
- Custom event emission and reception
- Event handlers with variable arguments
-
Support for lifecycle events (connect, disconnect, error)
-
Acknowledgments
- Request-response pattern with
EmitWithAck() - Configurable timeout for acknowledgments
-
Bidirectional support (clientโserver, serverโclient)
-
Binary Events
- Efficient binary data transmission
EmitBinary()for sending files, images, etc.-
No Base64 encoding (~33% bandwidth savings)
-
Automatic Reconnection
- Automatic reconnection with exponential backoff
- Flexible configuration (
ReconnectAttempts,ReconnectDelay,ReconnectDelayMax) -
Reconnection events (attempt, success, error, failed)
-
Authentication
- Authentication support in initial handshake
- Custom HTTP headers
-
Compatible with JWT and other tokens
-
Thread-Safety
- Use of
sync.Mapfor handlers and namespaces atomic.Valuefor connection stateRWMutexfor safe concurrent access-
Zero data races (validated with Go Race Detector)
-
Flexible Configuration
Optionsstruct with all configurations- Reasonable default values
-
Configurable timeouts
-
Testing
- Complete unit test suite
- Custom test runner (
cmd/testrunner/) -
Support for tests: unit, integration, compliance, stress
-
Documentation
- Complete documentation in Spanish
- Quick start guides
- Complete API Reference
- Advanced usage patterns
-
Functional examples
-
Examples
- Basic: Simple connection
- Authentication: JWT and authentication
- Binary: File transfer
- Chat: Real-time chat application
- Namespaces: Multiple namespaces
- Acknowledgments: Request-response
- Reconnection: Reconnection handling
- Rooms: Rooms and broadcasting
๐ Security¶
- URL validation (injection prevention)
- Secure WebSocket connection handling
- Timeout to prevent hanging connections
๐ Performance¶
- 10,000+ concurrent events per second
- Memory efficiency with buffer pooling
- Optimized Engine.IO packet parsing
- Exponential backoff for intelligent reconnection
๐ Fixed¶
- N/A (first stable release)
๐ Documentation¶
- Complete README with examples
- Technical documentation in
docs/folder - Runnable examples in
examples/folder - GoDoc comments throughout public code
๐งช Testing¶
- Code coverage > 80%
- Tests with Go Race Detector
- CI/CD with GitHub Actions
- Tests on Go 1.20, 1.21, 1.22
Unreleased¶
๐ง In Development¶
- Support for multiple simultaneous transports
- Customizable WebSocket ping/pong
- Integrated metrics and observability
- Message compression support
Conventions¶
Types of Changes¶
- โจ Added - New features
- ๐ Changed - Changes in existing features
- โ ๏ธ Deprecated - Features that will be removed
- ๐๏ธ Removed - Removed features
- ๐ Fixed - Bug fixes
- ๐ Security - Security fixes