Skip to content

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.Map for handlers and namespaces
  • atomic.Value for connection state
  • RWMutex for safe concurrent access
  • Zero data races (validated with Go Race Detector)

  • Flexible Configuration

  • Options struct 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