v0.6.0
What's Changed
New crates
matchbox_signaling
: highlevel API for building a custom signaling servermatchbox_protocol
: Shared signaling protocol betweenmatchbox_server
,matchbox_signaling
andmatchbox_socket
bevy_matchbox
: For simplified usage with Bevy
New features in matchbox_socket
- Multiple data channels can now be added
- Support for reliable channels and custom reliability
- Builder API for creating a new socket
- Peer disconnections now reported through
update_peers
- Configurable signaling server reconnection attempts (defaults to 2)
- Signaling server keep alive interval can now be configured or disabled (only needed if the signaling server or its proxy is aggressively killing idle websocket connections)
Bug fixes
- Development builds no longer panic after ~10 minutes #72
- Socket no longer panics when connecting to the signaling server fails #93
- Fixed some panics that could happen on incorrect API usage (dropping a socket future before the socket)
Breaking/Migration
WebRtcSocket::new
renamed toWebRtcSocket::new_unreliable
WebRtcSocket::accept_new_connections
replaced withWebRtcSocket::update_peers
WebRtcSocketConfig
replaced withWebRtcSocketBuilder
ggrs-socket
feature renamed toggrs
- Peer ids are no longer strings, but their own
PeerId
type, wrapping aUuid
Merged PRs
- Support multiple reliable and unreliable data channels by @heartlabs in #64
- Server: Update log target name by @johanhelsing in #73
- Build & Publish
matchbox_server
on tagged release by @garryod in #71 - Add
WebRtcSocket::broadcast_on_channel
by @johanhelsing in #74 - Remove commented out code by @johanhelsing in #75
- Run github actions ci workflow on pull_request events by @johanhelsing in #76
- Inline format argument by @garryod in #78
- Fix inferred bound warning by @garryod in #77
- Update to rust edition 2021 by @garryod in #80
- fixed document typo by @simbleau in #86
- chore: stun server fallback options by @simbleau in #87
- Add "contributing" section to readme by @johanhelsing in #89
- Forbid unsafe rust by @johanhelsing in #92
- Replace Warp with Axum for the signalling server by @simbleau in #82
- Disconnected peers by @simbleau in #94
- a possible way of handling disconnected peers by @rozgo in #84
- Add rustfmt by @simbleau in #98
- Begin error propogation by @simbleau in #97
- Minor cleanups by @johanhelsing in #100
- cfg-if, socket logic move, remove WebRtcSocket::default by @simbleau in #101
- Upgrade to webrtc 0.7 by @johanhelsing in #109
- Refactor
signalling_loop
by exposing providers via a trait by @garryod in #79 - Documentation enhancements by @simbleau in #116
- Simple demo cleanup by @simbleau in #114
- Fixes native break on web client disconnect by @simbleau in #115
- Refactor
messaging_loop
by exposing providers via a trait by @garryod in #112 - Signalling attempts by @simbleau in #104
- Have server produce
PeerId
by @garryod in #111 - Change default to only use 2 stun servers by @johanhelsing in #121
- Unify connections and disconnections API, detect p2p disconnections by @johanhelsing in #117
- Markdownlint by @johanhelsing in #124
- Project Organization by @simbleau in #123
- added clone to WebRtcSocket meta structs by @simbleau in #125
- feat: publicize more types by @simbleau in #126
- add update_peers usage to bevy_ggrs example by @johanhelsing in #132
- matchbox_protocol by @simbleau in #127
- Pass example arguments as values in readme snippet by @garryod in #134
- Abstract message loop implementation by @garryod in #128
- expose PeerId by @simbleau in #137
- Remove
uuid
dependency by @johanhelsing in #139 - Don't require
&mut self
forWebRtcSocket::id
,players
by @johanhelsing in #140 - Remove redundant Native Peer status change handling by @garryod in #142
- Improve logging and code clarity by @johanhelsing in #141
- docs: Link to example folders, not READMEs by @johanhelsing in #149
- Fix panic on receive after socket future is dropped by @johanhelsing in #150
- Make
PeerId
aUuid
newtype by @johanhelsing in #151 - Fix native crash when connecting to wasm, async blocks by @garryod in #156
- Use builder pattern to construct
WebRtcSocket
by @garryod in #158 - Remove
UnknownPeerId
error by @johanhelsing in #159 - Update/remove deps by @johanhelsing in #161
- Provide abstraction for a channel by @garryod in #160
- Use
rust-cache
to speed up CI by @garryod in #164 - Lint
toml
withtaplo
by @garryod in #163 - Split CI into Code & Markdown Lint by @garryod in #165
- Add a Bevy plugin by @garryod in #157
- Add
signaling_keep_alive_interval
to socket builder by @johanhelsing in #166 - Minor style/logging cleanups by @johanhelsing in #167
- Check all targets in CI by @garryod in #168
- Signaling Server API by @simbleau in #135
- Include
bevy_matchbox
in a few missed places by @garryod in #172 - Rename
ggrs-socket
feature toggrs
by @johanhelsing in #176 - Make
close_socket
command extension usable by @johanhelsing in #181 - Add
get_channel
, makechannel
panicky by @johanhelsing in #177 - Add channel type helpers to socker builder by @garryod in #187
- Add
ggrs
feature tobevy_matchbox
by @johanhelsing in #186 - Make tests pass on windows by @johanhelsing in #180
- Refactor Code CI by @garryod in #184
- Update bevy_matchbox and bevy_ggrs_example to Bevy 0.10 by @simbleau in #190
- Expand bevy plugin usage options by @garryod in #188
- Docs updates ahead of 0.6 by @garryod in #169
- Add simple constructors to bevy_matchbox by @johanhelsing in #193
- docs: Remove links to internal api by @johanhelsing in #194
- Release 0.6.0 by @johanhelsing in #162
New Contributors
Full Changelog: v0.5.0...v0.6.0