Releases: NetrexMC/RakNet
v0.3.3 - Minor Bug Fixes & Improvements
Change Logs
5d5eb96Fixes a bug that caused mtu discovery to dead lock on theClient.- Fixes a bug that caused servers with a partial motd to not be joinable via
Client. 5f62c00Client::Pinghas a more user friendly api, allowing the user to pass any type ofstrto ping.cd95e89Fixes a bug where theOrderedQueuewould not flush properly.- #57 Allows
anyhowto be used on the client side for all errors.
Git Logs
- Implement std::fmt::Display and std::error::Error for exposed error types by @lexika979 in #57
- Add more fields to Motd and fix Motd Reader by @GoodLucky777 in #60
New Contributors
- @lexika979 made their first contribution in #57
- @GoodLucky777 made their first contribution in #60
v0.3.3-beta.1 - Bug Fixes and improvements
Change Logs
5d5eb96Fixes a bug that caused mtu discovery to dead lock on theClient.- Fixes a bug that caused servers with a partial motd to not be joinable via
Client. 5f62c00Client::Pinghas a more user friendly api, allowing the user to pass any type ofstrto ping.cd95e89Fixes a bug where theOrderedQueuewould not flush properly.- #57 Allows
anyhowto be used on the client side for all errors.
Git Logs
- Implement std::fmt::Display and std::error::Error for exposed error types by @lexika979 in #57
- Add more fields to Motd and fix Motd Reader by @GoodLucky777 in #60
New Contributors
- @lexika979 made their first contribution in #57
- @GoodLucky777 made their first contribution in #60
Full Changelog: v0.3.2...v0.3.3-beta.1
v0.3.2
Change Logs
- Fixes an issue where frames were improperly ordered (#55)
- Fixes an issue where async-std would sometimes panic when connecting to a server via the client (#53)
- adds a few other minor improvements to
async_tokio
Git logs
Full Changelog: v0.3.1...v0.3.2
v0.3.1 - Bug Fixes
Change Logs
- Fixed a issue that caused acknowledgements of 0 to be skipped.
Clientnow discovers MTU of the serverClientno longer attempts to connect with one mtu size- Fixed an issue with
OpenConnectRequestpacket, where mtu was improperly padded.
IMPORTANT
This release fixes a major bug withServerthat previously caused UB, the server now
properly sends packets to connections!
Git change logs
Full Changelog: v0.3.0...v0.3.1
v0.3.0 - Complete rewrite of internals
Change Logs
netrex_eventshas been dropped.rakrs::starthas been dropped, you should userakrs::Listener::bind()in conjunction withrakrs::Listener::start()instead.- Every packet sent to the client is now exposed with
Connection::recv()with the exception of the handshake sequence. This will allow you to write your own handlers for certain packets. However keep in mind, the protocol specific packets such as Ack, Nack, and disconnects are not exposed. - The
internalmodule has been completely nuked and replaced withSendQueueandRecvQueue's.- Frame fragmentation is now more elaborate and elegant.
- ACK, and NACK are now handled within their traits
Ackablethat can be appended either aSendQueueorRecvQueuerespectively. - Added
FragmentQueuewhich is a queue with the ability to join split packets together with ease. - Added
RecoveryQueuewhich is a smart queue that will remove a index if and only if a newer packet is added that shifts the queue or if the retry attempts are greator than the value set within the queue, (which is 3 by default) - Added
Clientto allow users to connect to a RakNet server as a client. - Added the more elegant way to parse packets with
binary_utilv3 instead of the mess we had before. - Added cross-compatibility with
async-stdandtokiowith both guarded by their own crate feature "async_std" and "async_tokio" - Added the ability to opt into minecraft specific raknet changes, like the Motd change with the crate feature "mcpe"
Git change logs
- feat: Async-std by @john-bv in #37
- feat: Client sockets by @john-bv in #42
- client/mod.rs: Remove unecessary &mut receivers by @andreashgk in #45
- update(binary_util): From 0.2.2 -> 0.3.2 by @john-bv in #47
- v3 Stable Release by @john-bv in #35
New Contributors
- @andreashgk made their first contribution in #45
Full Changelog: v0.2.2...v0.3.0
v0.3.0-rc.4
Full Changelog: v0.3.0-rc.3...v0.3.0-rc.4
v0.3.0-rc.3
Current Changelog for v0.3.0-rc.3
netrex_eventshas been dropped and you should use the newerConnection::recv_event()channel instead.
-
rakrs::starthas been dropped, you should userakrs::Listener::bind()in conjunction withrakrs::Listener::start()instead. -
Every packet sent to the client is now exposed with
Connection::recv()with the exception of the handshake sequence. This will allow you to write your own handlers for certain packets. However keep in mind, the protocol specific packets such as Ack, Nack, and disconnects are not exposed. -
The
internalmodule has been completely nuked and replaced withSendQueueandRecvQueue's.- Frame fragmentation is now more elaborate and elegant.
-
ACK, and NACK are now handled within their queues respectively, and follow a
TimeRecoveryQueue. -
Added
TimeRecoveryQueuewhich is a queue with a max capacity. This queue is elegant and a packet within the queue will expire only if one of the following conditions is met:-
The packet is pushed off the queue because newer packets have been added.
-
The packet has not been removed and it's been in the queue for too long of a duration.
-
-
Added
RecoveryQueuewhich is a smart queue that will remove a index if and only if a newer packet is added that shifts the queue or if the retry attempts are greator than the value set within the queue, (which is 3 by default),
Full Changelog: v0.3.0-rc.1...v0.3.0-rc.3
v0.3.0-rc.2 Dependency updates
Stuff
v0.2.2 Bug fixes
Change Logs
- Fixes a bug with frames being encoded improperly.
- Changes the start handle function.
Full Changelog: v0.2.2-rc.1...v2.2.0
v0.3.0-rc.1
Change Log
-
Complete rewrite, cleaner more understandable codebase
-
Fragment implementation no-longer requires the abstraction of
FragmentPartorFrameStore. -
All raknet specific protocol is abstracted away inside the
internalmodule keeping only packet and structures visible to any module.-
All RakNet specific handshaking has been moved into
RakHandler. -
All RakNet specific protocol such as frames, and fragmentation has been moved to
RakHandlerand is abstracted intoConnection.
-
-
rakrs will now properly handle reliability internally, this is abstracted on-to the connection with
Connection::send_packet(packet, reliability). -
rakrs now properly handles frame ordering and sequencing.
- Functionality has been added internally to support multiple order channels and reliable channels to allow easier support of RakNet plugins.
-
rakrs will now reject old or duplicated packets automatically.
-
All minecraft specific raknet implementation is now gated behind the
mcpefeature. You can enable it by using this flag in yourCargo.toml -
Implementation has been provided to allow usage of either the
tokioorasync-stdasync runtimes; these are gated behind feature flags.Notice: The functionality for
async-stdhas not been implemented in this release. -
NACK will now automatically be sent to the client if the server has not recieved acknowledgements for a batch of payloads previously sent.
Full Changelog: v2.2.0...v0.3.0-rc.1