Releases: Totodore/socketioxide
Releases · Totodore/socketioxide
v0.12.0
MSRV: Minimum supported Rust version is now 1.75.
Changelog
- (Breaking): Introduction of connect middlewares. It allows to execute code before the connection to the namespace is established. It is useful to check the request, to authenticate the user, to log the connection etc. It is possible to add multiple middlewares and to chain them.
- The
SocketRef
extractor is nowClone
. Be careful to drop clones when the socket is disconnected to avoid any memory leak.
What's Changed
- Implement Clone for SocketRef by @AkiraMiyakoda in #260
- Add middlewares/multiple fns to namespace by @Totodore in #280
- fix(engineio/socket): atomically adjacent packet requirement for binary payloads by @Totodore in #287
- chore(ci): trigger release manually by @Totodore in #288
Full Changelog: v0.11.1...v0.12.0
v0.11.1
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