Skip to content

Releases: NetrexMC/RakNet

v0.3.3 - Minor Bug Fixes & Improvements

28 Apr 19:42
Compare
Choose a tag to compare

Change Logs

  • 5d5eb96 Fixes a bug that caused mtu discovery to dead lock on the Client.
  • 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 of str to ping.
  • cd95e89 Fixes a bug where the OrderedQueue 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

v0.3.3-beta.1 - Bug Fixes and improvements

17 Mar 18:41
Compare
Choose a tag to compare

Change Logs

  • 5d5eb96 Fixes a bug that caused mtu discovery to dead lock on the Client.
  • 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 of str to ping.
  • cd95e89 Fixes a bug where the OrderedQueue 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

Full Changelog: v0.3.2...v0.3.3-beta.1

v0.3.2

27 Jan 00:07
Compare
Choose a tag to compare

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

18 Sep 03:39
2af4c5a
Compare
Choose a tag to compare

Change Logs

  • Fixed a issue that caused acknowledgements of 0 to be skipped.
  • Client now discovers MTU of the server
  • Client 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 with Server that previously caused UB, the server now
properly sends packets to connections!

Git change logs

  • bug fixes: Fix a few bugs and release by @john-bv in #51

Full Changelog: v0.3.0...v0.3.1

v0.3.0 - Complete rewrite of internals

21 Aug 02:34
Compare
Choose a tag to compare

Change Logs

  • netrex_events has been dropped.
  • rakrs::start has been dropped, you should use rakrs::Listener::bind() in conjunction with rakrs::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 with SendQueue and RecvQueue's.
    • Frame fragmentation is now more elaborate and elegant.
  • ACK, and NACK are now handled within their traits Ackable that can be appended either a SendQueue or RecvQueue 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 and tokio 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

New Contributors

Full Changelog: v0.2.2...v0.3.0

v0.3.0-rc.4

14 Jan 19:14
Compare
Choose a tag to compare
v0.3.0-rc.4 Pre-release
Pre-release

v0.3.0-rc.3

14 Jan 18:41
Compare
Choose a tag to compare
v0.3.0-rc.3 Pre-release
Pre-release

Current Changelog for v0.3.0-rc.3

  • netrex_events has been dropped and you should use the newer Connection::recv_event() channel instead.
  • rakrs::start has been dropped, you should use rakrs::Listener::bind() in conjunction with rakrs::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 with SendQueue and RecvQueue'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

31 Jan 02:12
Compare
Choose a tag to compare
Pre-release

Stuff

v0.2.2 Bug fixes

28 Jan 04:46
Compare
Choose a tag to compare

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

28 Jan 05:40
Compare
Choose a tag to compare
v0.3.0-rc.1 Pre-release
Pre-release

Change Log

  • Complete rewrite, cleaner more understandable codebase

  • Fragment implementation no-longer requires the abstraction of FragmentPart or FrameStore.

  • 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 into Connection.

  • 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 your Cargo.toml

  • Implementation has been provided to allow usage of either the tokio or async-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