Skip to content

Latest commit

 

History

History
288 lines (203 loc) · 10.4 KB

CHANGELOG.md

File metadata and controls

288 lines (203 loc) · 10.4 KB

Changelog

All notable changes to this project are documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning. The file is auto-generated using Conventional Commits.

Overview

[Unreleased]

nothing new to show for… yet!>

2024.04.16

  • Fix issues with processing multi-payload messages (#392). Credits to shenjackyuanjie@.
  • Bump http to 1.0 and all dependencies that use http to a version that also uses http 1.0 (#418). Bumping those dependencies makes this a breaking change.

2024.03.31

  • Support multiple arguments to the payload through a new Payload variant called Text that holds a JSON value (#384). Credits to ctrlaltf24@ and SalahaldinBilal@! Please note: This is a breaking change: Payload::String is deprecated and will be removed soon.
  • Async reconnections: Support for automatic reconnection in the async version of the crate! (#400). Credits to rageshkrishna@.
  • Add an on_reconnect callback that allows to change the connection configuration (#405). Credits to rageshkrishna@.
  • Fix bug that ignored the ping interval (#359). Credits to sirkrypt0@. This is a breaking change that removes the engine.io's stream impl. It is however replaced by a method called as_stream on the engine.io socket.
  • Add macro async_callback and async_any_callback for async callbacks (#399. Credits to shenjackyuanjie@.

2023.11.18

  • Bump tungstenite version to v0.20.1 (avoiding security vulnerability) #368
  • Updating other dependencies

2023.07.08

  • Fix of #323
  • Marking the async feature optional

2023.06.25

  • Fix "Error while parsing an incomplete packet socketio" on first heartbeat killing the connection async client (#311). Credits to @sirkrypt0
  • Fix allow awaiting async callbacks (#313). Credits to @felix-gohla
  • Various performance improvements especially in packet parsing. Credits to @MaxOhn
  • API for setting the reconnect URL on a connected client (#251). Credits to @tyilo

2023.03.26

  • Add on_any method for async ClientBuilder. This adds the capability to react to all incoming events (custom and otherwise).
  • Add auth option to async ClientBuilder. This allows for specifying JSON data that is sent with the first open packet, which is commonly used for authentication.
  • Bump dependencies and remove calls to deprecated library functions.

2023.01.05

  • Add an async socket.io interface under the async feature flag, relevant PR: #180.
  • See example code under socketio/examples/async.rs and in the async section of the README.

2023.01.05

  • As of #264, the callbacks are now allowed to be ?Sync.
  • As of #265, the Payload type now implements AsRef<u8>.

2022.10.20

Changes

  • Fix #214.
  • Fix #215.
  • Fix #219.
  • Fix #221.
  • Fix #222.
  • BREAKING: The default Client returned by the builder will automatically reconnect to the server unless stopped manually. The new ReconnectClient encapsulates this behaviour.

Special thanks to @SSebo for his major contribution to this release.

2022.03.19

Changes

  • Fixes regarding #166.

2021.12.16

Changes

  • Stabilized alpha features.
  • Fixes regarding #133.

2021.12.04

Changes

  • fix a bug that resulted in a blocking emit method (see #133).
  • Bump dependencies.

2021.10.14

Changes

  • Rename Socket to Client and SocketBuilder to ClientBuilder

  • Removed headermap from pub use, internal type only

  • Deprecations:

    • crate::payload (use crate::Payload instead)
    • crate::error (use crate::Error instead)
    • crate::event (use crate::Event instead)

2021.09.20

Changes

  • Refactored Errors
    • Renamed EmptyPacket to EmptyPacket()
    • Renamed IncompletePacket to IncompletePacket()
    • Renamed InvalidPacket to InvalidPacket()
    • Renamed Utf8Error to InvalidUtf8()
    • Renamed Base64Error to InvalidBase64
    • Renamed InvalidUrl to InvalidUrlScheme
    • Renamed ReqwestError to IncompleteResponseFromReqwest
    • Renamed HttpError to IncompleteHttp
    • Renamed HandshakeError to InvalidHandshake
    • Renamed ActionBeforeOpen to IllegalActionBeforeOpen()
    • Renamed DidNotReceiveProperAck to MissingAck
    • Renamed PoisonedLockError to InvalidPoisonedLock
    • Renamed FromWebsocketError to IncompleteResponseFromWebsocket
    • Renamed FromWebsocketParseError to InvalidWebsocketURL
    • Renamed FromIoError to IncompleteIo
    • New error type InvalidUrl(UrlParseError)
    • New error type InvalidInteger(ParseIntError)
    • New error type IncompleteResponseFromEngineIo(rust_engineio::Error)
    • New error type InvalidAttachmentPacketType(u8)
    • Removed EmptyPacket
  • Refactored Packet
    • Renamed encode to From<&Packet>
    • Renamed decode to TryFrom<&Bytes>
    • Renamed attachments to attachments_count
    • New struct member attachments: Option<Vec>
  • Refactor PacketId
    • Renamed u8_to_packet_id to TryFrom for PacketId
  • Refactored SocketBuilder
    • Renamed set_namespace to namespace
    • Renamed set_tls_config to tls_config
    • Renamed set_opening_header to opening_header
    • namespace returns Self rather than Result
    • opening_header accepts a Into rather than HeaderValue
  • Allows for pure websocket connections
  • Refactor EngineIO module

2021.05.25

Changes

  • Fixed a bug that prevented the client from receiving data for a message event issued on the server.

2021.05.24

Changes

  • Added a disconnect method to the Socket struct as requested in #43.

2021.05.13

Changes

  • Added websocket communication over TLS when either wss, or https are specified in the URL.
  • Added the ability to configure the TLS connection by providing an own TLSConnector.
  • Added the ability to set custom headers as requested in #35.

2021.04.27

Changes

  • Corrected memory ordering issues which might have become an issue on certain platforms.
  • Added this CHANGELOG to keep track of all changes.
  • Small stylistic changes to the codebase in general.

2021.03.13

Changes

  • Moved from async rust to sync rust.
  • Implemented the missing protocol features.
    • Websocket as a transport layer.
    • Binary payload.
  • Added a SocketBuilder class to easily configure a connected client.
  • Added a new Payload type to manage the binary and string payload.

2021.01.10

Changes

  • Bumped tokio to version 1.0.*, and therefore reqwest to 0.11.*.
  • Removed all unsafe code.

2021.01.05

  • First version of the library written in async rust. The features included:
    • connecting to a server.
    • register callbacks for the following event types:
      • open, close, error, message
    • custom events like "foo", "on_payment", etc.
    • send json-data to the server (recommended to use serde_json as it provides safe handling of json data).
    • send json-data to the server and receive an ack with a possible message.