Skip to content

Releases: Totodore/socketioxide

v0.13.1

08 May 13:44
Compare
Choose a tag to compare

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

06 May 18:52
Compare
Choose a tag to compare

Changelog

socketioxide

  • fix: issue #311, the delete_ns fn was deadlocking the entire server when called from inside a disconnec_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 than Vec<u8> to represent binary payloads. This allow to avoid unnecessary copies.
  • deps: use futures-util and futures-core rather than the whole futures crate.

engineioxide

  • feat: the API use Bytes/Str rather than Vec<u8> and String to represent payloads. This allow to avoid unnecessary copies.
  • deps: use futures-util and futures-core rather than the whole futures 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 and futures_util rather than whole futures 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 a disconnect_handler by @Totodore in #316

Full Changelog: v0.12.0...v0.13.0

v0.12.0

20 Mar 22:20
3ecc207
Compare
Choose a tag to compare

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 now Clone. Be careful to drop clones when the socket is disconnected to avoid any memory leak.

What's Changed

Full Changelog: v0.11.1...v0.12.0

v0.11.1

20 Mar 21:55
6bdf5ce
Compare
Choose a tag to compare

socketioxide

  • fix(#232): under heavy traffic, the adjacent binary packet to the head packet requirement for engine.io was not respected. It was leading to a protocol error.

Full Changelog: v0.11.0...v0.11.1

v0.11.0

06 Mar 04:25
fc599c3
Compare
Choose a tag to compare

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 and BroadcastOperators 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 with ws 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

Full Changelog: v0.10.2...v0.11.0

v0.10.2

22 Jan 12:20
1932548
Compare
Choose a tag to compare

socketioxide

  • New rooms fn to get all the rooms of a namespace.

What's Changed

Full Changelog: v0.10.1...v0.10.2

v0.10.1

19 Jan 12:01
92f675f
Compare
Choose a tag to compare

Socketioxide

  • New as_str fn for Sid.
  • 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 for Sid 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

02 Jan 11:31
6032ffb
Compare
Choose a tag to compare

socketioxide

  • Rework for emit_with_ack fns. It now returns an AckStream that can be used either as a future when expecting one ack or as a stream when expecting multiple acks. When expecting multiple acks the AckStream will yield AckResults as well as their corresponding socket id.

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 for salvo_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

21 Dec 20:07
Compare
Choose a tag to compare

Changelog

  • Add SocketIo::get_socket and Operators::get_socket methods to get a socket ref from its id.
  • Switch to pin-project-lite instead of pin-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

Full Changelog: v0.9.0...v0.9.1

v0.9.0

15 Dec 21:56
Compare
Choose a tag to compare

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