Skip to content

Releases: pmmp/RakLib

0.13.1

18 May 21:15
0b2b84f
Compare
Choose a tag to compare

Changes since 0.13.0

  • Fixed depending on unreleased versions of pocketmine/log and pocketmine/binaryutils.

0.13.0

18 May 15:12
6c83e0f
Compare
Choose a tag to compare

This is a major update. It features substantial API changes and is not API-compatible with anything that used version 0.12.

Changes since 0.12.x

Major changes

  • Support for PHP versions lower than 7.4 has been dropped.
  • RakLib no longer depends on pthreads. It's now the user's job to implement whatever systems necessary to use RakLib on a thread, if necessary.
    • A separate library, pocketmine/raklib-ipc is provided, which allows interacting with RakLib using a CSP pattern.
  • Packet filtering at the socket receive level is now supported using PCRE regex patterns.
  • The server implementation now uses cooperative multitasking to process events. This ensures that a flood of network traffic can't prevent events from being processed on the server.

API change highlights

This version features a substantially improved API compared to 0.12.

  • InternetAddress is no longer mutable.

  • UDPServerSocket was moved to raklib\generic\Socket.

  • A new ServerInterface has been introduced.

  • A new ServerEventListener interface has been introduced. This allows directly listening to events on the RakLib server, such as a user packet being received, session ping being updated, etc.

  • Various parts of Session have been isolated into generic components (non-server-specific):

    • A ReceiveReliabilityLayer was extracted, which encapsulates all of the logic needed to take care of inbound packet reliability handling and split packet handling, and ACK/NACK sending.
    • A SendReliabilityLayer was extracted, which encapsulates all of the logic needed to take care of sending outbound packets, splitting them if necessary, and resending them if they get NACKed by the remote peer.
  • Added a ProtocolAcceptor interface, which may be used to alter which versions of RakNet a remote peer may use to connect to the server.

0.12.11

15 Feb 20:13
Compare
Choose a tag to compare

Changes since 0.12.10

  • Fixed error handler logging silenced errors on PHP 8.0.

0.12.10

15 Jan 16:25
48e7055
Compare
Choose a tag to compare

Changes since 0.12.9

  • Now tested on PHP 8.0.

0.12.9

28 Aug 22:08
Compare
Choose a tag to compare

Changes since 0.12.8

  • Code is now tested on PHP 7.4.
  • Cleaned out useless @param and @return annotations which didn't provide any information beyond what was already visible from native types.

0.12.8

28 Aug 21:19
Compare
Choose a tag to compare

Changes since 0.12.7

  • Now depends on pocketmine/log-pthreads in addition to pocketmine/log (separated packages).
  • ext-bcmath is no longer required.
  • Code is now analysed using PHPStan level 7 and phpstan-strict-rules.
  • Loading RakLib.php no longer does any dependency checking - it's assumed that the user is installing RakLib using Composer, which has its own dependency checking which we trust.
  • Fixed a possible bug where the session's send queue would not get flushed during disconnect.
  • Fixed possible crash on failure to decode IPv6 address.

0.12.7

28 Aug 21:15
Compare
Choose a tag to compare

Changes since 0.12.6

  • Now depends on pocketmine/log instead of pocketmine/spl (package was separated).
  • Code is now analysed using PHPStan level 5.

0.12.6

07 Dec 13:47
Compare
Choose a tag to compare

Changes since 0.12.5

  • Fixed several bugs in split packet handling.
  • Fixed off-by-one bug in port validation for InternetAddress.
  • Fixed EncapsulatedPacket::getTotalLength() not including sequence index size.

0.12.5

07 Dec 13:39
Compare
Choose a tag to compare

Changes since 0.12.4

  • Implemented a co-op mechanism for main thread message processing, reducing network I/O latency when under high load.
  • Removed {} string offset access usages (deprecated in PHP 7.4)
  • ext-pthreads 3.2.0 is now required at minimum.
  • RakLib crashed! log message has been replaced with more useful error messages.

0.12.4

02 May 14:56
Compare
Choose a tag to compare

Changes since 0.12.3

  • Added a minimum for MTU size at 400 bytes.