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.
- unreleased
0.5.0
- 2024.04.160.5.0
- 2024.03.310.4.4
- 2023.11.180.4.3
- 2023.07.080.4.2
- 2023.06.250.4.1-alpha.2
- 2023.03.260.4.1-alpha.1
- 2023.01.150.4.0
- 2023.01.150.4.0
- 2022.10.200.3.1
- 2022.03.190.3.0
- 2021.12.160.3.0-alpha.2
- 2021.12.040.3.0-alpha.2
- 2021.10.140.3.0-alpha.1
- 2021.09.200.2.4
- 2021.05.250.2.3
- 2021.05.240.2.2
- _2021.05.130.2.1
- 2021.04.270.2.0
– 2021.03.130.1.1
– 2021.01.100.1.0
– 2021.01.05
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
andasync_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 asyncClientBuilder
. This adds the capability to react to all incoming events (custom and otherwise). - Add
auth
option to asyncClientBuilder
. 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 theasync
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 implementsAsRef<u8>
.
2022.10.20
- 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
- Fixes regarding #166.
2021.12.16
- Stabilized alpha features.
- Fixes regarding #133.
2021.12.04
- fix a bug that resulted in a blocking
emit
method (see #133). - Bump dependencies.
2021.10.14
-
Rename
Socket
toClient
andSocketBuilder
toClientBuilder
-
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
- 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
- Fixed a bug that prevented the client from receiving data for a message event issued on the server.
2021.05.24
- Added a
disconnect
method to theSocket
struct as requested in #43.
2021.05.13
- Added websocket communication over TLS when either
wss
, orhttps
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
- 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
- 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
- Bumped
tokio
to version1.0.*
, and therefore reqwest to0.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.