Releases: Totodore/socketioxide
Releases · Totodore/socketioxide
v0.11.0
Changelog
socketioxide
- fix: a panic was raised sometimes under heavy traffic with socketio v5 when the connect timeout handler is destroyed but that the chan sender is still alive.
- (Breaking): Emit errors now contains the provided data if there is an issue with the internal channel (for example if it is full) or if the socket closed.
- (Breaking): Operators are now splitted between
Operators
andBroadcastOperators
in order to split logic and fn signatures between broadcast and non-broadcast operators.
engineioxide
- fix #277: with engine.io v3, the message byte prefix
0x4
was not added to the binary payload withws
transport. - bump dependency
base64
to 0.22.0.
What's Changed
- fix(socketio/client): connect timeout panic under heavy traffic by @Totodore in #252
- doc(example): add an axum tls example by @Totodore in #253
- doc(example): chat room example with loco as a backend by @kaplanelad in #254
- chore(conf): disable example by default by @Totodore in #256
- fix(ci): by @Totodore in #257
- fix(ci): by @Totodore in #259
- chore(deps-dev): bump vite from 5.0.7 to 5.0.12 in /examples/loco-rooms-chat/client by @dependabot in #255
- chore(deps): update loco-rs requirement from 0.2.3 to 0.3.1 by @dependabot in #263
- feat(socketio/socket): Return emitted data in case of emission error. by @Totodore in #262
- chore(deps): update salvo requirement from 0.65.0 to 0.66.0 by @dependabot in #266
- fix(engineio/ws): missing extra byte in websocket binary frame on EIO v3 by @kelnos in #278
- chore(deps): update base64 requirement from 0.21.0 to 0.22.0 by @dependabot in #279
- chore(ci): add a
heaptrack
job by @Totodore in #265 - chore(deps): bump to v0.11 by @Totodore in #281
New Contributors
- @kaplanelad made their first contribution in #254
- @kelnos made their first contribution in #278
Full Changelog: v0.10.2...v0.11.0
v0.10.2
socketioxide
- New
rooms
fn to get all the rooms of a namespace.
What's Changed
- fix(ci): release pipeline by @Totodore in #243
- doc(socketioxide) typo in extensions::len documentation by @zaregata in #244
- fix(ci): release by @Totodore in #245
- chore(deps-dev): bump vite from 5.0.7 to 5.0.12 in /examples/react-rooms-chat/client by @dependabot in #246
- feat(socketio/operators): get all rooms from
io
by @Totodore in #248 - fix(ci): Release by @Totodore in #250
Full Changelog: v0.10.1...v0.10.2
v0.10.1
Socketioxide
- New
as_str
fn forSid
. - Http request is now cloned for the websocket transport (it was not possible before http v1). Therefore it is possible to get headers/extensions of the initial request.
What's Changed
- fix(clippy): errors by @Totodore in #223
- feat(engineio/sid): add
as_str
fn forSid
by @Totodore in #224 - feat(engineio/ws): Clone http request for ws transport by @Totodore in #227
- chore(deps): update salvo requirement from 0.63.0 to 0.64.0 by @dependabot in #228
- chore(deps): viz 0.8.0 by @fundon in #230
- chore(deps): update salvo requirement from 0.64.0 to 0.65.0 by @dependabot in #235
- docs(socketio): correct links in the socket.io doc homepage by @zaregata in #238
- chore(ci): add release pipeline by @Totodore in #239
- docs(socketio): Document emit variable arguments fn by @Totodore in #240
Full Changelog: v0.10.0...v0.10.1
v0.10.0
socketioxide
- Rework for
emit_with_ack
fns. It now returns anAckStream
that can be used either as a future when expecting one ack or as a stream when expecting multiple acks. When expecting multiple acks theAckStream
will yieldAckResult
s as well as their corresponding socketid
.
What's Changed
- fix: compile viz-echo by @fundon in #218
- test(socketio): improve testing by directly using the
rust_socketio
client by @Totodore in #219 - doc(example): add
cors
forsalvo_echo
by @Totodore in #221 - feat: Better ergonomy for ack responses with custom AckStream struct by @Totodore in #201
Full Changelog: v0.9.1...v0.10.0
v0.9.1
Changelog
- Add
SocketIo::get_socket
andOperators::get_socket
methods to get a socket ref from its id. - Switch to
pin-project-lite
instead ofpin-project
.
What's Changed
- doc(socketio/extract): add missing extractors to the list by @Totodore in #199
- chore(deps): switch to
pin-project-lite
for Pin Projection by @Totodore in #200 - doc: Fix version compatibility (Axum - Hyper - Socketioxide) by @tausifcreates in #202
- fix(git): Cargo.lock should be ignored by @fundon in #204
- doc: add a PR template and update contrib doc by @Totodore in #208
- refactor: service implementation by @fundon in #205
- doc: Fix wrong links to axum in README.md by @AkiraMiyakoda in #209
- examples: add viz-echo example by @fundon in #203
- doc: add tokio discordl ink by @Totodore in #210
- examples: Add Room based chat example, built with React and Socketioxide. by @tausifcreates in #211
- feat: get a socket by the specified sid by @fundon in #216
New Contributors
- @fundon made their first contribution in #204
- @AkiraMiyakoda made their first contribution in #209
Full Changelog: v0.9.0...v0.9.1
v0.9.0
0.9.0
- Bump
hyper
to 1.0.1. It is now possible to use frameworks based on hyper v1.*. Check the compatibility table for more details. - Bump
http
to 1.0 - Bump
http-body
to 1.0 - Bump
tokio-tungstenite
to 0.21.0
What's Changed
- Migration to hyper 1.0 by @Totodore in #196
Full Changelog: v0.8.0...v0.9.0
v0.8.0
socketioxide
- Add
transport_type
andprotocol
fn on theSocket
struct. It allows to know the transport type and the protocol used by the socket. - Dynamic
DisconnectHandler
. Now theon_disconnect
handler take a dynamic handler that maybe async and contain any type that implementsFromDisconnectParts
. It allows to extract data from the disconnection, like the socket, the reason of the disconnection, the state etc. - New
state
feature flag. It enables global state management. It is useful to share data between handlers. It is disabled by default.
engineioxide
- Packet encoding/decoding optimizations.
What's Changed
- fix(clippy): fix clippy lints by @Totodore in #174
- chore(deps): bump salvo from 0.58.3 to 0.58.5 by @dependabot in #176
- Optimize
engineio
packets processing by @Totodore in #162 - Improve adapter configuration by @Totodore in #179
- Transport type and Protocol Version info for
Socket
by @Totodore in #180 - doc(socketio): fix
tower
links by @Totodore in #181 - meta: add discussions q&a link by @Totodore in #183
- fix: use right example link by @caojen in #185
- Disconnect dynamic handlers by @Totodore in #188
- chore(deps): bump tokio from 1.34.0 to 1.35.0 by @dependabot in #193
- chore(deps): bump itoa from 1.0.9 to 1.0.10 by @dependabot in #192
- feat(socketio/state): global state implementation backed by a
state::TypeMap
by @Totodore in #194
New Contributors
Full Changelog: v0.7.3...v0.8.0
v0.7.3
v0.7.2
Changelog
- The
on_disconnect
callback now takes aSocketRef
rather than anArc<Socket>
to match other handlers. It also avoids that the user clone the socket and create a memory leak. - Documentation improvements (see https://docs.rs/socketioxide).
- Bump library dependencies (see below).
What's Changed
- fix: CHANGELOG version error by @Totodore in #156
- chore(deps): bump http from 0.2.9 to 0.2.10 by @dependabot in #160
- chore(deps): remove unused
async_trait
deps by @Totodore in #159 - socket.io packet encoding with itoa by @Totodore in #161
- chore(deps): bump http from 0.2.10 to 0.2.11 by @dependabot in #165
- chore(deps): bump tracing-subscriber from 0.3.17 to 0.3.18 by @dependabot in #164
- chore(deps): bump uuid from 1.5.0 to 1.6.0 by @dependabot in #168
- chore(deps): bump serde from 1.0.192 to 1.0.193 by @dependabot in #170
- chore(deps): bump uuid from 1.6.0 to 1.6.1 by @dependabot in #169
- fix(socketio): Make the
on_disconnect
callback take aSocketRef
by @Totodore in #171 - Improve doc.rs documentation by @Totodore in #166
- chore(deps): bump to v0.7.2 by @Totodore in #173
Full Changelog: v0.7.1...v0.7.2
v0.7.1
Changelog
socketioxide
- Fix #154, build was broken when using the
hyper-v1
feature flag because ofhyper-util
dependency which is not published on crates.io.
What's Changed
- chore(deps): specify version 0 for hyper util by @Totodore in #153
- fix: implement manually
tokio_io
module forhyper v1
by @Totodore in #155
Full Changelog: v0.7.0...v0.7.1