- Update to bevy 0.14. (PR) by raffaeleragni
- Update to egui 0.28. (PR) by raffaeleragni
- Use timeout given from ConnectToken instead of fixed 15 secs. (commit)
- Implement Component for ClientId. (PR) by SylvKT
- Add emit_server_events_system, now, transports can update and disconnect clients before events are emitted. (commit)
- Removed steam feature, now to use steam, you add
renet_steam
with the bevy feature. (commit) - Update to bevy 0.13. (PR) by dgsantana
- Make all systems public, this makes possible to manually add the systems and use them for ordering. (commit)
- Update egui to 0.26
- Added
is_connecting
,is_connected
toRenetClient
, this should make it easier to write code more transport agnostic. Also addedset_connected
,set_connecting
so the transport layer can keep the connection status updated for theRenetClient
(if you are using the default transport layer you will not need call it, but if you have a custom transport layer you will need to call them). (PR) by OleStrohm - Added methods
can_send_message
andchannel_available_memory
forRenetClient
andRenetServer
. (commit) - Renetcode: make fields for ConnectToken public. (PR) by UkoeHB
- Fixed
RenetServer.connected_clients
not returning the correct numbers of connected clients. (commit)
- Use ClientId struct instead of u64 for clients ids, better type safety for users. (PR) by roboteng
- NetcodeServer: now accepts multiple server addresses when being created. (PR)
- NetcodeServer: change arguments when creating it, now accepts only a configuration struct
ServerConfig
, that has all previous arguments. (PR) - RenetVisualizer: updated to egui 0.23. (PR) by Zajozor
- BevyRenet: updated to bevy 0.12 (commit)
- BevyRenet:
client_disconnected
,client_connecting
,client_just_connected
,client_just_disconnected
has been moved out of the transport module. Now they use the methods fromRenetClient
instead of the transport layer. (PR) by OleStrohm
- Removed
is_connecting
,is_connected
,is_disconnected
fromNetcodeClientTransport
, use the methods fromRenetClient
instead. (PR) by OleStrohm
- Added missing method for retriving clients
SocketAddr
for connected clients in the default server transport:client_addr
. Also added method to retrieve clientSocketAddr
from default client transport:addr
. (commit) - Add iterator access to client ids in the server:
clients_id_iter
,disconnections_id_iter
. (PR) by UkoeHB
- Fix not removing items when receiving message out of order. (commit)
- Correctly calculate small packet size for unreliable channels. (commit)
- Updated to bevy 0.11. (PR) by Olle-Lukowski
- Run conditions now returns closures, similar to how bevy run conditions do. (PR) by Shatur
- Removed
RenetSet
andTransportSet
. Useresource_exists::<RenetClient>()
andresource_exists::<RenetServer>()
instead. (commit)
This release comes with 3 major changes:
- Rewrite of the reliability/fragmentation protocol, it should handle any bandwidth.
- Split of renet and the transport layer. Now its possible to use others transport protocols.
- Configuration simplification
- Added
NetcodeServer
andNetcodeClient
all the network transport logic has been moved to these structs.- You can check the documentation, examples, or demos to see how these new structs are used.
- Replaced
RenetConnectionConfig
withConnectionConfig
, this new configuration has been greatly simplified. You only need to specify how many bytes you can use per update tick and the channels configuration (ChannelConfiguration
). - Rework of
ChannelConfiguration
, only 3 fields now:channel_id
,max_memory_usage_bytes
, andsend_type
. RenetServer::new
andRenetClient::new
now only hasConnectionConfig
as argument.- Renamed
RenetServer::is_client_connected
tois_connected
. NetworkInfo
hasbytes_sent_per_second
andbytes_received_per_second
instead ofsent_kbps
andreceived_kbps
.
- Removed
send_packets
fromRenetServer
andRenetClient
, this is now done by the transport layer. - Removed
can_send_message
, this could cause some bad practices of checking before sending messages. If you cannot send a message you should change the channels configurations.
Rechannel has been deprecrated, all its logic has been moved inside renet.
- Added new Plugins for the transport layer:
NetcodeServerPlugin
andNetcodeClientPlugin
. - Client disconnects when the app closes.
- Server disconnects all clients when the app closes.
- Removed the
clear_events
options, you can achieve the same functionality by adding the Events yourself before the Plugin.
- BevyRenet: updated bevy to version 0.10. (PR) by Shatur
- RenetVisualizer: updated to egui 0.21.
- Renet, Renetcode, BevyRenet: add client.is_connecting(). (commit)
- Renet: allow to send empty messages again, this was a bad change since some serialization methods can serialize to empty messages. (commit)
- Renetcode: rename client.connected() with client.is_connected() for consistency. (commit)
- Added function
client_addr
,user_data
,is_client_connected
,max_clients
,connected_clients
forRenetServer
, some utilities fromNetcodeServer
. (commit) (commit) - Renetcode/Renet: make generate_random_bytes public, this can be used to generate a random private key. (commit)
- Rechannel: add
DefaultChannel
enum, usefull when using the default channel configuration. (commit) - BevyRenet: add configurable event clearing. (PR)
- Rechannel: add configuration for unordered reliable channel. (commit)
- Rechannel: add configuration for sequenced unreliable channel. (commit)
- Renetcode: added logging. (commit) (commit)
- BevyRenet: updated bevy to version 0.9; (PR)
- Renetcode: remove
client_id
argument when creating an RenetClient. (commit) - Rechannel: rename block channel to chunk channel, this makes clear what the channel does: the message is sliced in multiple chunks so it can be sent in multiple frames. Also, it is not confused with "blocking" thread/logic.
- Rechannel: when sending an empty message, this now gives an error. (commit)
- Rechannel: ignore already received block messages. (commit)
- Rechannel: added max_message_size configuration for channels. This also fixes an exploit over the block channel, it was possible to send a SliceMessage with a high value of number of slices, this would cause the channel to allocate a lot of memory causing out of memories errors. (commit)
- Rechannel: add fuzzing testing for processing packets (commit)
- Add Secure/Unsecure option when creating the server/client, easier for testing or prototyping. (commit)
- Genericify send/recv methods, use
Into<u8>
for channel id andInto<Bytes>
for messages (#28) - Rechannel: split channels into Sender Channels and Receiver Channels. Now server and clients can have different channels (commit)
- Rechannel: fix block messages not correctly getting acked (commit)
- Rechannel: check chunk id when receiving block messages (commit)
- Rechannel: don't initialize block messages with 0 slices. Malformed packets could crash the server/client with out of bounds accesses (commit)
- Rechannel: don't ack fragment packet on the first received fragment, only when all fragments are received (commit)
- Removed
renet::ChannelNetworkInfo
(commit)