Async::WebSocketReleases

Releases

v0.30.1

v0.30.0

  • Improved error handling.
  • Modernized the gem and refreshed dependencies.

v0.29.1

  • Improved connection&.close handling.

v0.29.0

  • Added nonce processing to HTTP/2 WebSockets for HTTP/1 proxy compatibility.

v0.28.0

  • Added ConnectionError with access to the failed response.

v0.27.0

  • Updated the Rails integration guide summary.
  • Modernized the gem and refreshed dependencies.

v0.26.2

  • Compared requested WebSocket protocols case-insensitively.
  • Updated the Binance, chat, MUD, and Rack examples.
  • Improved documentation, including the Rails integration guide.
  • Removed obsolete Polygon.io and Utopia examples.

v0.26.1

  • Removed the direct dependency on async-io.
  • Updated the sus-fixtures-async-http dependency.

v0.26.0

  • Improved validation of WebSocket requests.
  • Ensured HTTP/2 requests include the :scheme pseudo-header.
  • Improved HTTP/1 stream checks.
  • Fixed arguments passed to 404 responses.
  • Updated documentation and links.

v0.25.1

  • Updated the minimum protocol-websocket version.

v0.25.0

  • Allowed arguments to be passed through to #close.
  • Improved close behavior.

v0.24.0

  • Used standard response handling for Rails.

v0.23.1

  • Relaxed the dependency on protocol-websocket.

v0.23.0

  • Ensured clients are closed when their connections are closed.
  • Fixed the Server implementation.
  • Removed an unused @response instance variable.
  • Improved coverage for Client, Connection, Response, and dangling connection handling.
  • Added early Rails documentation.

v0.22.1

  • Added a missing protocol/rack/adapter require.
  • Updated the chat example for the message-based protocol interface.
  • Migrated tests to sus.
  • Updated examples for Rack 3 and high-connection-count usage.

v0.22.0

  • Removed default JSON parsing.
  • Updated the connection interface to use message-based read and write.

v0.21.0

  • Added support for WebSocket extensions.

v0.20.0

  • Made protocol handling Falcon-agnostic.

v0.19.2

  • Removed an unused require.
  • Modernized the gem.

v0.19.1

  • Made protocol upgrades case-insensitive.
  • Used bound endpoints in server tests to avoid race conditions.
  • Added an example using wscat.
  • Adopted bake-gem for release management.

v0.19.0

  • Added an http adapter.
  • Added a Binance HTTP/1 client example.
  • Fixed client handling in Client#connect.
  • Updated logging to use Console.logger.

v0.18.0

  • Added a Rails adapter.

v0.17.0

  • Added support for reconnecting after server disconnection.
  • Updated keyword argument handling.
  • Updated Utopia examples and dependencies.

v0.16.0

  • Always applied masking to client connections.
  • Passed endpoint.authority through to #connect.
  • Added a Polygon.io client example.
  • Fixed GC.count logging.

v0.15.0

  • Improved connection handling and releasing connections back to the pool.
  • Ensured Rack response headers are returned as a hash.
  • Added static documentation.
  • Modernized the gem and improved documentation.

v0.14.0

  • Reduced memory usage in high-connection-count examples.
  • Avoided repeated getaddrinfo calls per connection.
  • Added explicit connection management.
  • Added documentation for Client.open and Client.connect.
  • Improved HTTP/1 forcing, Rack, MUD, and Utopia examples.
  • Added profiling support.
  • Switched release tooling toward bake-bundler.

v0.13.1

  • Fixed HTTP/2 client output body handling.
  • Added HTTP/2 WebSocket support to the chat example.
  • Added message read/write coverage.

v0.13.0

  • Passed all options through to connect.

v0.12.2

  • Updated examples and documentation to use Adapters::Rack.
  • Removed debug logging.
  • Refreshed dependencies.

v0.12.1

  • Closed and flushed connections automatically when users did not close them explicitly.

v0.12.0

  • Added links to relevant RFCs and documented HTTP/2 support.
  • Removed an unused response field.

v0.11.1

  • Fixed examples.

v0.11.0

  • Started support for both HTTP/1 and HTTP/2 WebSockets.
  • Renamed URLEndpoint to Endpoint.
  • Preferred endpoint terminology over server_address.
  • Moved protocol constants into the protocol gem.
  • Fixed client specs.

v0.10.0

  • Improved upgrade and masking handling.
  • Allowed user-provided connection handlers.
  • Refactored connection IO to use Connection#read and Connection#write.
  • Added a simple MUD example.
  • Removed the broken Utopia example.

v0.9.0

  • Switched to protocol-websocket.
  • Added protocol negotiation and frame validation.
  • Exposed the underlying socket.
  • Improved client/server examples and EOF handling.
  • Removed redundant headers.

v0.8.0

  • Added support for sec-websocket-protocol options.
  • Added support for passing protocols and normalized client/server option handling.

v0.7.0

  • Set headers on WebSocket driver clients.
  • Added more README examples.
  • Preferred Async do in examples.

v0.6.1

  • Avoided closing connections from Connection; client and server lifecycle now close them explicitly.

v0.6.0

  • Improved handling of hijacked IO.

v0.5.0

  • Added a simple web-based chat app.
  • Added partial support for Rack hijacking changes.
  • Preferred #readpartial for input loops.
  • Used the stream block size for reads.

v0.4.1

  • Handled Errno::ECONNRESET.

v0.4.0

  • Updated examples and documentation.
  • Improved peer handling from call results.

v0.3.0

  • Added example chat client and server.
  • Reworked legacy code and fixed specs.

v0.2.0

  • Renamed the gem to async-websocket.
  • Tidied legacy socket lifetime management.
  • Converted connection handling to sequential logic.
  • Improved data stream handling.
  • Handled EOF.

v0.1.0

  • Added the initial synchronous WebSocket implementation.
  • Added specs and fixed early implementation issues.