Releases: NetrexMC/RakNet
v0.3.3 - Minor Bug Fixes & Improvements
Change Logs
5d5eb96
Fixes 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
. 5f62c00
Client::Ping
has a more user friendly api, allowing the user to pass any type ofstr
to ping.cd95e89
Fixes a bug where theOrderedQueue
would not flush properly.- #57 Allows
anyhow
to 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
5d5eb96
Fixes 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
. 5f62c00
Client::Ping
has a more user friendly api, allowing the user to pass any type ofstr
to ping.cd95e89
Fixes a bug where theOrderedQueue
would not flush properly.- #57 Allows
anyhow
to 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.
Client
now discovers MTU of the serverClient
no longer attempts to connect with one mtu size- Fixed an issue with
OpenConnectRequest
packet, where mtu was improperly padded.
IMPORTANT
This release fixes a major bug withServer
that 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_events
has been dropped.rakrs::start
has 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
internal
module has been completely nuked and replaced withSendQueue
andRecvQueue
's.- Frame fragmentation is now more elaborate and elegant.
- ACK, and NACK are now handled within their traits
Ackable
that can be appended either aSendQueue
orRecvQueue
respectively. - Added
FragmentQueue
which is a queue with the ability to join split packets together with ease. - Added
RecoveryQueue
which 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
Client
to allow users to connect to a RakNet server as a client. - Added the more elegant way to parse packets with
binary_util
v3 instead of the mess we had before. - Added cross-compatibility with
async-std
andtokio
with 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_events
has been dropped and you should use the newerConnection::recv_event()
channel instead.
-
rakrs::start
has 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
internal
module has been completely nuked and replaced withSendQueue
andRecvQueue
's.- Frame fragmentation is now more elaborate and elegant.
-
ACK, and NACK are now handled within their queues respectively, and follow a
TimeRecoveryQueue
. -
Added
TimeRecoveryQueue
which 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
RecoveryQueue
which 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
FragmentPart
orFrameStore
. -
All raknet specific protocol is abstracted away inside the
internal
module 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
RakHandler
and 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
mcpe
feature. You can enable it by using this flag in yourCargo.toml
-
Implementation has been provided to allow usage of either the
tokio
orasync-std
async runtimes; these are gated behind feature flags.Notice: The functionality for
async-std
has 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