First pass ext-encoding support (high-level network I/O and read-only data) (#6799)

This implements ext-encoding only in high-level network I/O (only BedrockProtocol and stuff implemented in PM) and read-only data.
This should net a significant performance advantage while being low-risk in the case of critical issues with the extension. Any problems affecting protocol won't do permanent damage while being fairly easy to debug.

Next passes will integrate ext-encoding versions of RakLib, RakLibIpc and NBT, as well as generally using ext-encoding for writeable data.
This commit is contained in:
Dylan T.
2025-09-25 17:32:38 +01:00
committed by GitHub
parent 6fede8a67f
commit 3336cda34a
18 changed files with 177 additions and 156 deletions

16
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "1e7545f6cc226b31d54238602143ba78",
"content-hash": "0d71d3fba23ba8c4734cac59b9e10129",
"packages": [
{
"name": "adhocore/json-comment",
@@ -256,19 +256,20 @@
},
{
"name": "pocketmine/bedrock-protocol",
"version": "41.0.0+bedrock-1.21.100",
"version": "50.0.0+bedrock-1.21.100",
"source": {
"type": "git",
"url": "https://github.com/pmmp/BedrockProtocol.git",
"reference": "920ac291fe1b0143b2ebc90b3374ddab0b8531bf"
"reference": "2d7aa27a5537ae593fb1c39158648ea462fef72a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/pmmp/BedrockProtocol/zipball/920ac291fe1b0143b2ebc90b3374ddab0b8531bf",
"reference": "920ac291fe1b0143b2ebc90b3374ddab0b8531bf",
"url": "https://api.github.com/repos/pmmp/BedrockProtocol/zipball/2d7aa27a5537ae593fb1c39158648ea462fef72a",
"reference": "2d7aa27a5537ae593fb1c39158648ea462fef72a",
"shasum": ""
},
"require": {
"ext-encoding": "~1.0.0",
"ext-json": "*",
"php": "^8.1",
"pocketmine/binaryutils": "^0.2.0",
@@ -296,9 +297,9 @@
"description": "An implementation of the Minecraft: Bedrock Edition protocol in PHP",
"support": {
"issues": "https://github.com/pmmp/BedrockProtocol/issues",
"source": "https://github.com/pmmp/BedrockProtocol/tree/41.0.0+bedrock-1.21.100"
"source": "https://github.com/pmmp/BedrockProtocol/tree/50.0.0+bedrock-1.21.100"
},
"time": "2025-09-09T20:52:18+00:00"
"time": "2025-09-20T23:09:19+00:00"
},
{
"name": "pocketmine/binaryutils",
@@ -2797,6 +2798,7 @@
"ext-ctype": "*",
"ext-curl": "*",
"ext-date": "*",
"ext-encoding": "~1.0.0",
"ext-gmp": "*",
"ext-hash": "*",
"ext-igbinary": "^3.0.1",