Releases: Totodore/socketioxide
Releases · Totodore/socketioxide
v0.13.1
0.13.1
engineioxide
- fix: issue #319. Remove unnecessary panic when receiving unexpected websocket messages. This might happen with some specific socket.io clients.
What's Changed
- fix(engineio/ws): remove unecessary panic message when receiving unexpected ws packets by @Totodore in #320
Full Changelog: v0.13.0...v0.13.1
v0.13.0
Changelog
socketioxide
- fix: issue #311, the
delete_ns
fn was deadlocking the entire server when called from inside adisconnec_handler
. - feat: the
delete_ns
is now gracefully closing the adapter as well as all its sockets before being removed. - feat: the API use
Bytes
rather thanVec<u8>
to represent binary payloads. This allow to avoid unnecessary copies. - deps: use
futures-util
andfutures-core
rather than the wholefutures
crate.
engineioxide
- feat: the API use
Bytes/Str
rather thanVec<u8>
andString
to represent payloads. This allow to avoid unnecessary copies. - deps: use
futures-util
andfutures-core
rather than the wholefutures
crate.
What's Changed
- chore(deps-dev): bump vite from 5.0.12 to 5.0.13 in /examples/react-rooms-chat/client by @dependabot in #298
- chore(deps-dev): bump vite from 5.0.12 to 5.0.13 in /examples/loco-rooms-chat/client by @dependabot in #299
- tests: Improve test bed by @Totodore in #300
- chore(deps): update salvo requirement from 0.66.0 to 0.67.0 by @dependabot in #301
- docs: fix typo on test flag by @Totodore in #302
- Use bytes::Bytes instead of Vec to represent binary payloads by @kelnos in #285
- chore: remove salvo deps and corresponding doctest by @Totodore in #303
- chore(deps): bump hyper to "1.0.3" and remove unused features by @Totodore in #304
- chore(dev-deps): update rust_socketio requirement from 0.4.2 to 0.6.0 by @dependabot in #306
- chore(ci/bench): add bencher configuration by @Totodore in #307
- chore(deps): use
futures_core
andfutures_util
rather than wholefutures
crate by @Totodore in #305 - feat(engineio): add a
Str
type for Message packet by @Totodore in #310 - Fix: deadlocking when calling
close_ns
from inside adisconnect_handler
by @Totodore in #316
Full Changelog: v0.12.0...v0.13.0
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