Releases: pmmp/RakLib
Releases · pmmp/RakLib
0.13.1
0.13.0
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 toraklib\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.
- A
-
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
0.12.10
0.12.9
0.12.8
Changes since 0.12.7
- Now depends on
pocketmine/log-pthreads
in addition topocketmine/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
0.12.6
0.12.5
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.