Skip to content

Releases: Totodore/socketioxide

Socketioxide v0.18.0

25 Oct 14:31
7f348a7

Choose a tag to compare

Changelog

  • feat(breaking): remove sync handlers to gain 50% of compilation speed.
  • feat: Socket rooms will be removed only after the disconnect handler execution,
    making them available in the disconnect handler (thanks @Mettwasser).

What's Changed

  • chore(deps): bump tokio from 1.44.2 to 1.45.0 by @dependabot[bot] in #512
  • feat(socketio): add utility methods by @Totodore in #514
  • feat(socketio): remove sync handlers by @Totodore in #516
  • chore(deps): bump hyper-util from 0.1.11 to 0.1.12 by @dependabot[bot] in #517
  • chore(deps): bump tokio from 1.45.0 to 1.45.1 by @dependabot[bot] in #521
  • chore(deps): bump hyper-util from 0.1.12 to 0.1.13 by @dependabot[bot] in #522
  • chore(deps): bump hyper-util from 0.1.13 to 0.1.14 by @dependabot[bot] in #524
  • chore(deps): bump smallvec from 1.15.0 to 1.15.1 by @dependabot[bot] in #526
  • fix(socketio): move tracing macro call from trait to impl by @Totodore in #529
  • docs: update changelog from latest release by @Totodore in #530
  • chore(deps): bump memchr from 2.7.4 to 2.7.5 by @dependabot[bot] in #532
  • chore(deps): bump tokio from 1.45.1 to 1.46.1 by @dependabot[bot] in #539
  • chore(deps): bump hyper-util from 0.1.14 to 0.1.15 by @dependabot[bot] in #540
  • fix(clippy): global clippy lints by @Totodore in #546
  • chore(deps): bump serde_json from 1.0.140 to 1.0.142 by @dependabot[bot] in #553
  • chore(deps): bump tokio from 1.46.1 to 1.47.0 by @dependabot[bot] in #552
  • chore(deps): bump tokio-util from 0.7.15 to 0.7.16 by @dependabot[bot] in #556
  • chore(deps): bump tokio from 1.47.0 to 1.47.1 by @dependabot[bot] in #557
  • chore(deps): bump arbitrary from 1.4.1 to 1.4.2 by @dependabot[bot] in #565
  • chore(deps): bump thiserror from 2.0.12 to 2.0.15 by @dependabot[bot] in #566
  • chore(deps): bump serde_json from 1.0.142 to 1.0.143 by @dependabot[bot] in #568
  • chore(deps): bump tracing-subscriber from 0.3.19 to 0.3.20 by @dependabot[bot] in #574
  • chore(deps): bump serde from 1.0.219 to 1.0.223 by @dependabot[bot] in #581
  • chore(deps): bump hyper-util from 0.1.15 to 0.1.17 by @dependabot[bot] in #583
  • chore(deps): bump serde from 1.0.223 to 1.0.225 by @dependabot[bot] in #585
  • chore(deps): bump serde_json from 1.0.143 to 1.0.145 by @dependabot[bot] in #584
  • examples(warp): add latest warp example by @Totodore in #586
  • fix(ci): rollback to 1.89 by @Totodore in #604
  • tests(socketio): graceful error if ws closed by @Totodore in #605
  • fix(ci): use redis bitnami legacy images by @Totodore in #607
  • chore(deps): bump tracing-subscriber from 0.3.19 to 0.3.20 in /examples by @dependabot[bot] in #601
  • chore(deps): bump axum from 0.8.4 to 0.8.6 by @dependabot[bot] in #594
  • chore(deps): bump memchr from 2.7.5 to 2.7.6 by @dependabot[bot] in #589
  • fix(ci): use all-green ci check by @Totodore in #608
  • feat(ci): codspeed benchmarking by @Totodore in #609
  • chore(deps): bump tokio-tungstenite from 0.26.2 to 0.28.0 by @dependabot[bot] in #610
  • deps(redis-adapter): release v0.3 by @Totodore in #612
  • chore(deps): bump tokio from 1.47.1 to 1.48.0 by @dependabot[bot] in #611
  • feat: make rooms available in disconnect handler by @Mettwasser in #613

New Contributors

Sponsors

Thanks to @dollannn and @AprilNEA for their sponsoring!

Full Changelog: socketioxide-v0.17.2...socketioxide-v0.18.0

Socketioxide Redis v0.3

20 Oct 08:21

Choose a tag to compare

socketioxide-redis 0.3.0

  • deps: bump redis to 0.32

v0.17.0

04 May 19:21

Choose a tag to compare

This new release introduce the socketioxide-mongodb adapter crate. This adapter enables horizontal scaling of your Socketioxide servers across distributed deployments by leveraging MongoDB as a message bus.

The Socket::on_fallback method will allow you to set a fallback event handler if you want to handle incoming event dynamically. Extract the associated dynamic event with the Event extractor.

Changelog

socketioxide 0.17.0

  • deps: bump socketioxide-core to 0.17
  • feat: add SocketIo::on_fallback
    and Event extractor to add a fallback event handler and
    dynamically extract the incoming event.
  • MSRV: rust-version is now 1.86 with edition 2024

socketioxide-core 0.17.0

  • feat(breaking): remote-adapter packets are now refactored in the core crate. Any adapter implementation can use
    it through the remote-adapter flag.
  • MSRV: rust-version is now 1.86 with edition 2024

socketioxide-mongodb 0.1.0

  • Initial release!

What's Changed

Full Changelog: v0.15.0...socketioxide-v0.17.0

v0.16.2

21 Mar 12:29

Choose a tag to compare

Changelog

engineioxide-core 0.1.0

  • New crate to share engineioxide core types.

engineioxide 0.16.2

  • fix: pause heartbeat when the socket is being upgraded to avoid the client
    from resending polling requests to respond to ping packets.
  • deps: use engineioxide-core 0.1 as a dependency

socketioxide-redis 0.2.1

  • doc: add an incompatibility warning with the @socket.io/redis-adapter package.

socketioxide-core 0.16.1

  • deps: use engineioxide-core 0.1 rather than engineioxide

socketioxide 0.16.2

  • deps: bump engineioxide to 0.16.2

What's Changed

Full Changelog: v0.16.1...v0.16.2

v0.16.1

29 Jan 11:11
105a2cc

Choose a tag to compare

Changelog

engineioxide 0.16.1

  • feat: add Config::ws_read_buffer_size to set the read buffer size for each websocket.
    It will default to 4KiB (previously 128KiB). You can increase it if you have high message throughput and less sockets.

socketioxide 0.16.1

  • feat: add Config::ws_read_buffer_size to set the read buffer size for each websocket.
  • deps: bump engineioxide to 0.16.1.

socketioxide-parser-common 0.16.1

  • fix: clone partial packets when keeping them to avoid holding a reference to the ws read buffer for too long. Otherwise it cause the ws read buffer to grows indefinitely in a many binary packets scenario.

socketioxide-redis 0.2

  • deps: bump redis to 0.28.2
  • feat(breaking): the redis cluster adapter constructor now takes a &redis::cluster::ClusterClient
    to match all other adapter constructors.

What's Changed

  • chore(ci): remove tagging from release ci by @Totodore in #443
  • test(engineio): mock http/ws connections and improve integration tests by @Totodore in #447
  • fix(engineio/ws): add read_buffer_size option and set default to 4KiB by @Totodore in #450
  • feat: improve memory usage by @Totodore in #451
  • feat(redis): use ClusterClient for redis cluster creation by @Totodore in #452

Full Changelog: v0.16.0...v0.16.1

v0.16.0

17 Jan 16:45
ff872c3

Choose a tag to compare

News

  • Socketioxide has a new logo!
  • Remote adapters are finally here! You can use them to scale your socket.io application easily.
    See this article for more info.
  • Thanks to @dollannn and @BrianWiz for their sponsoring!

Changelog

From now all crate versions are disjoined.

socketioxide 0.16.0

  • feat(breaking): remote adapters, see this article for more details.
  • deps: bump thiserror to 2.0
  • deps: bump axum to 0.8
  • deps: bump engineioxide to 0.16.0
  • docs: fix grammar/typos

socketioxide-parser-msgpack 0.16.0

  • feat(breaking): remote adapters

socketioxide-parser-common 0.16.0

  • feat(breaking): remote adapters

socketioxide-core 0.16.0

  • feat(breaking): remote adapters

socketioxide-redis 0.1.0

  • Initial release!

engineioxide 0.16.0

  • deps: bump thiserror to 2.0
  • deps: bump tokio-tungstenite to 0.26
  • docs: fix grammar/typos
  • fix(engineio): heartbeat start delay

What's Changed

Full Changelog: v0.15.1...v0.16.0

v0.15.1

02 Nov 18:55
dbeaa0b

Choose a tag to compare

Changelog

socketioxide

  • deps: remove smallvec deps
  • doc: fix some links

engineioxide

  • fix: issue #390. First ping was sent twice because of tokio interval behavior defaulting to bursting when interval tick is missed.

What's Changed

Full Changelog: v0.15.0...v0.15.1

v0.15.0

20 Oct 15:28
ed1b8fb

Choose a tag to compare

socketioxide

  • (Breaking): New parsing system. You can now serialize and deserialize binary data inside your own types.
    It also improve performances by avoiding unnecessary allocations.
  • fix: missing extractor error logs for async message handlers.
  • feat: add custom compiler error for unimplemented handler traits.
  • deps: switch from tower to tower-service and tower-layer subcrates.
  • deps: bump tokio to 1.40.
  • deps: bump http to 1.1.
  • deps: bump hyper to 1.5.

What's Changed

  • chore(deps): bump micromatch from 4.0.5 to 4.0.8 in /examples/react-rooms-chat/client by @dependabot in #364
  • chore(deps): bump micromatch from 4.0.5 to 4.0.8 in /examples/loco-rooms-chat/client by @dependabot in #365
  • chore(deps-dev): bump vite from 5.0.13 to 5.4.6 in /examples/react-rooms-chat/client by @dependabot in #368
  • chore(ci): switch from node v16 to node v22 for e2e testing by @Totodore in #371
  • chore(deps-dev): bump vite from 5.0.13 to 5.4.7 in /examples/loco-rooms-chat/client by @dependabot in #370
  • chore(deps): update tokio-tungstenite requirement from 0.23.0 to 0.24.0 by @dependabot in #367
  • feat(socketio/parser): Refactor socketioxide parsing by @Totodore in #376
  • chore(deps): bump deps and switch to tower-layer and tower-service rather than tower by @Totodore in #379
  • fix(socketio/handler): trace extractor errors by @Totodore in #380
  • feat(socketio/handler): Add custom errors for unimplemented handlers by @Totodore in #381
  • doc(socketio): improve extractor docs by @Totodore in #382
  • chore(deps): prepare v0.15.0 by @Totodore in #383

Full Changelog: v0.14.1...v0.15.0

v0.14.1

14 Aug 14:46
aa92515

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.14.0...v0.14.1

v0.14.0

26 Jun 15:53
d5cf9dd

Choose a tag to compare

Changelog

Migration guide.

socketioxide

  • (Breaking): State reworked to avoid having unsafe global mutable state (issue #317). Therefore State types must now implement Clone and will be cloned for each handler where the state is used.
  • (Breaking): Extensions reworked to avoid Send + Sync requirements on extensions (issue #295). They are now extracted by Cloning. Therefore all the type must implement Clone. An Extension extractor is available to get an extension directly without calling socket.extensions.get().
  • feat: New HttpExtension types to extract extensions from the http request.
  • feat: SocketIo can now be used as an extractor. So you can now easily access the entire socket.io context from your handlers.
  • feat: Dynamic namespaces. You can know set dynamic namespaces with the dyn_ns function. You can specify patterns with the {name} syntax thanks to the matchit crate. The dynamic namespace will create a child namespace for any path that matches the given pattern with the given handler.

What's Changed

  • chore(deps): update tokio-tungstenite requirement from 0.21.0 to 0.23.0 by @dependabot in #326
  • feat(socketio/extensions): rework extensions and add an Extension decorator and an HttpExtension decorator by @Totodore in #309
  • chore(deps): remove useless dashmap dep and improve doc by @Totodore in #328
  • Feat: io client shared in socketdata by @Totodore in #327
  • doc: fix useless links by @Totodore in #329
  • chore(ci): bench only on main and on manual trigger by @Totodore in #332
  • feat: per client state by @Totodore in #330
  • feat: remove config from socket by @Totodore in #331
  • feat(socketio/packet): switch to Str type for ns path storage by @Totodore in #334
  • chore(deps): bump ws and engine.io-client in /examples/loco-rooms-chat/client by @dependabot in #336
  • chore(deps-dev): bump braces from 3.0.2 to 3.0.3 in /examples/loco-rooms-chat/client by @dependabot in #337
  • chore(deps): bump ws and engine.io-client in /examples/react-rooms-chat/client by @dependabot in #338
  • chore(deps-dev): bump braces from 3.0.2 to 3.0.3 in /examples/react-rooms-chat/client by @dependabot in #339
  • feat: namespace routing by @Totodore in #333
  • fix: add generic ns path to avoid .into() everywhere in packet by @Totodore in #340
  • feat: Namespace key in map as Str by @Totodore in #342
  • feat: Namespace key in map as Str by @Totodore in #343

Full Changelog: v0.13.1...v0.14.0