Skip to content

v0.7.0

Compare
Choose a tag to compare
@Totodore Totodore released this 12 Nov 17:44
· 335 commits to main since this release

Changelog

socketioxide

  • The extensions field on sockets has been moved to a separate optional feature flag named extensions
  • All the tracing internal calls have been moved to a separate optional feature flag named tracing
  • A compatibility layer is now available for hyper v1 under the feature flag hyper-v1. You can call with_hyper_v1 on the SocketIoLayer or the SocketIoService to get a layer/service working with hyper v1. Therefore, it is now possible to use salvo as an http server. The default is still hyper v0.
  • Socket.io packet encoding/decoding has been optimized, it is now between ~15% and ~50% faster than before.
  • The v5 feature flag is removed, it is now enabled by default. It is made to avoid destructive feature flags, and to be sure that --no-default-features will always work without enabling anything else.
  • All the handlers now have dynamic parameters. It is now possible to use any type that implements FromMessageParts or FromMessage as a parameter for a message handler and FromConnectPart for a connect handler. This is useful to extract data from the event, like the socket, the data, an acknowledgment, etc.
  • All the handlers are now optionally async.
  • The request data to initialize the socket.io connection is available with Socket::req_parts().
  • MSRV is now 1.67.0
  • Bump tokio from 1.33.0 to 1.34.0
  • Bump serde from 1.0.190 to 1.0.192
  • Bump serde_json from 1.0.107 to 1.0.108

engineioxide

  • All the tracing internal calls have been moved to a separate optional feature flag named tracing
  • A compatibility layer is now available for hyper v1 under the feature flag hyper-v1. You can call with_hyper_v1 on the EngineIoLayer or the EngineIoService to get a layer/service working with hyper v1. The default is still hyper v0.
  • Sid generation is now done manually without external crates
  • The v4 feature flag is removed, it is now enabled by default. It is made to avoid destructive feature flags, and to be sure that --no-default-features will always work without enabling anything else.
  • Fix an upgrade synchronization bug when using the websocket transport which was leading the client to wait for a ping packet (30s by default) before upgrading to websocket.
  • The on_connect handler was called twice when upgrading to websocket. It is now called only once.

What's Changed

  • chore(versioning): v0.6.0 by @Totodore in #115
  • chore(deps): bump rustix from 0.38.18 to 0.38.19 by @dependabot in #116
  • feat(engineio/sid): custom sid generation with 128 bit array by @Totodore in #122
  • fix: CI was tested only with v3 protocol by @Totodore in #127
  • feat(socketio/ns): improve connect process by @Totodore in #129
  • chore(deps): optimize dependencies by @Totodore in #125
  • bench(socketio): add packet encode/decode benchmarks by @Totodore in #130
  • feat(socketio/ns): store ns path and rooms as Cow<'static, str> by @Totodore in #124
  • Chore(deps): hyper 1.0 by @Totodore in #126
  • docs: Update README.md by @Totodore in #131
  • fix(engineio/packet): array expand for packet event only when not empty by @Totodore in #134
  • fix(engineio/engine): the connect handle was called multiple times by @Totodore in #135
  • fix(engineio/transport): Noop packet was sent at the wrong moment by @Totodore in #136
  • fix(socketio/adapter): broadcast except current sid when no rooms by @Totodore in #138
  • docs: improve examples and copy official socket.io impl examples by @Totodore in #133
  • feat(socketio): default LocalAdapter as generic param by @Totodore in #139
  • feat(socketio/handler): connect handlers with dynamic params by @Totodore in #140
  • refactor: remove default v3/v4 flag to avoid destructive features by @Totodore in #142
  • doc: Update issue templates and improve CI by @Totodore in #141
  • chore(ci): remove test coverage by @Totodore in #147
  • chore(deps): bump serde from 1.0.190 to 1.0.192 by @dependabot in #146
  • chore(deps): bump serde_json from 1.0.107 to 1.0.108 by @dependabot in #145
  • chore(deps): bump hyper-util from ced9f81 to 11776bd by @dependabot in #144
  • chore(deps): bump tokio from 1.33.0 to 1.34.0 by @dependabot in #148
  • Fix: broadcast by default for any io operator by @Totodore in #150
  • feat(engineio/socket): make init http request available everywhere by @Totodore in #151

Full Changelog: v0.6.0...v0.7.0