v0.7.0
Changelog
socketioxide
- The
extensions
field on sockets has been moved to a separate optional feature flag namedextensions
- All the
tracing
internal calls have been moved to a separate optional feature flag namedtracing
- A compatibility layer is now available for hyper v1 under the feature flag
hyper-v1
. You can callwith_hyper_v1
on theSocketIoLayer
or theSocketIoService
to get a layer/service working with hyper v1. Therefore, it is now possible to usesalvo
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
orFromMessage
as a parameter for a message handler andFromConnectPart
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 namedtracing
- A compatibility layer is now available for hyper v1 under the feature flag
hyper-v1
. You can callwith_hyper_v1
on theEngineIoLayer
or theEngineIoService
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
to11776bd
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