PHPackages                             clousclouds/bedrock-protocol - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. clousclouds/bedrock-protocol

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

clousclouds/bedrock-protocol
============================

An implementation of the Minecraft: Bedrock Edition protocol in PHP

60.0.6+bedrock-1.26.40(1w ago)094[2 PRs](https://github.com/ClousClouds/BedrockProtocol/pulls)LGPL-3.0PHPPHP ^8.1CI passing

Since Aug 23Pushed 3w agoCompare

[ Source](https://github.com/ClousClouds/BedrockProtocol)[ Packagist](https://packagist.org/packages/clousclouds/bedrock-protocol)[ RSS](/packages/clousclouds-bedrock-protocol/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (9)Versions (123)Used By (0)

BedrockProtocol
===============

[](#bedrockprotocol)

[![CI](https://github.com/pmmp/BedrockProtocol/actions/workflows/ci.yml/badge.svg)](https://github.com/pmmp/BedrockProtocol/actions/workflows/ci.yml)

An implementation of the Minecraft: Bedrock Edition protocol in PHP

This library implements all of the packets in the Minecraft: Bedrock Edition protocol, as well as a few extra things needed to support them. However, at the time of writing, it does *not* include the following:

- Anything related to JWT handling/verification
- Anything related to encryption
- Anything related to compression

Decoding packets
----------------

[](#decoding-packets)

Assuming you've decrypted and decompressed a Minecraft packet successfully, you're next going to want to decode it. With this library, that's currently done using `PacketBatch`, like so:

```
use pocketmine\network\mcpe\protocol\serializer\PacketBatch;
use pocketmine\network\mcpe\protocol\PacketPool;
use pmmp\encoding\ByteBufferReader;

foreach(PacketBatch::decodePackets(new ByteBufferReader($payload), PacketPool::getInstance()) as $packetObject){
    var_dump($packetObject); //tada
}
```

Encoding packets
----------------

[](#encoding-packets)

This is easy:

```
use pocketmine\network\mcpe\protocol\serializer\PacketBatch;
use pmmp\encoding\ByteBufferWriter;

/** @var Packet[] $packets */
$stream = new ByteBufferWriter();
PacketBatch::encodePackets($stream, $packets);
$batchPayload = $stream->getData();
```

Footnotes
---------

[](#footnotes)

This library is a little rough around the edges, since it's only ever been intended for PocketMine-MP usage. It's only recently that this mess has been separated from the core to allow it to be used by other things. This means that API changes might be in order, and your feedback would be nice to drive them. If you want to improve BedrockProtocol, please open issues with suggestions, or better, make pull requests.

###  Health Score

53

—

FairBetter than 96% of packages

Maintenance96

Actively maintained with recent releases

Popularity9

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity78

Established project with proven stability

 Bus Factor1

Top contributor holds 77.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~15 days

Recently: every ~0 days

Total

118

Last Release

8d ago

Major Versions

55.0.0+bedrock-1.26.0 → 56.0.0+bedrock-1.26.102026-03-25

56.1.0+bedrock-1.26.10 → 57.0.0+bedrock-1.26.202026-05-09

57.1.0+bedrock-1.26.20 → 58.0.0+bedrock-1.26.302026-06-22

58.0.1+bedrock-1.26.30 → 60.0.0+bedrock-1.26.402026-08-08

59.0.0+bedrock-1.26.40 → 60.0.1+bedrock-1.26.402026-08-08

PHP version history (3 changes)1.0.0+bedrock-1.17.10PHP ^7.4 || ^8.0

3.0.0+bedrock-1.17.40PHP ^8.0

24.0.0+bedrock-1.20.30PHP ^8.1

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/185003854?v=4)[ClousClouds](/maintainers/ClousClouds)[@ClousClouds](https://github.com/ClousClouds)

---

Top Contributors

[![dktapps](https://avatars.githubusercontent.com/u/14214667?v=4)](https://github.com/dktapps "dktapps (523 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (70 commits)")[![dries-c](https://avatars.githubusercontent.com/u/15795262?v=4)](https://github.com/dries-c "dries-c (25 commits)")[![IvanCraft623](https://avatars.githubusercontent.com/u/57236932?v=4)](https://github.com/IvanCraft623 "IvanCraft623 (5 commits)")[![alvin0319](https://avatars.githubusercontent.com/u/32565818?v=4)](https://github.com/alvin0319 "alvin0319 (4 commits)")[![ismaileke](https://avatars.githubusercontent.com/u/74091824?v=4)](https://github.com/ismaileke "ismaileke (3 commits)")[![xRookieFight](https://avatars.githubusercontent.com/u/50714128?v=4)](https://github.com/xRookieFight "xRookieFight (3 commits)")[![ambiennt](https://avatars.githubusercontent.com/u/63216972?v=4)](https://github.com/ambiennt "ambiennt (3 commits)")[![Azvyl](https://avatars.githubusercontent.com/u/67502532?v=4)](https://github.com/Azvyl "Azvyl (2 commits)")[![TobiasGrether](https://avatars.githubusercontent.com/u/39413320?v=4)](https://github.com/TobiasGrether "TobiasGrether (2 commits)")[![inxomnyaa](https://avatars.githubusercontent.com/u/8733998?v=4)](https://github.com/inxomnyaa "inxomnyaa (2 commits)")[![leolee3914](https://avatars.githubusercontent.com/u/15855635?v=4)](https://github.com/leolee3914 "leolee3914 (2 commits)")[![HashimTheArab](https://avatars.githubusercontent.com/u/13991048?v=4)](https://github.com/HashimTheArab "HashimTheArab (2 commits)")[![Superomarking](https://avatars.githubusercontent.com/u/71559522?v=4)](https://github.com/Superomarking "Superomarking (2 commits)")[![nicholass003](https://avatars.githubusercontent.com/u/142091702?v=4)](https://github.com/nicholass003 "nicholass003 (1 commits)")[![Refaltor77](https://avatars.githubusercontent.com/u/77900181?v=4)](https://github.com/Refaltor77 "Refaltor77 (1 commits)")[![remminiscent](https://avatars.githubusercontent.com/u/237890659?v=4)](https://github.com/remminiscent "remminiscent (1 commits)")[![S3v3Nice](https://avatars.githubusercontent.com/u/49648416?v=4)](https://github.com/S3v3Nice "S3v3Nice (1 commits)")[![samupozzo](https://avatars.githubusercontent.com/u/42522736?v=4)](https://github.com/samupozzo "samupozzo (1 commits)")[![SenseiTarzan](https://avatars.githubusercontent.com/u/32621158?v=4)](https://github.com/SenseiTarzan "SenseiTarzan (1 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/clousclouds-bedrock-protocol/health.svg)

```
[![Health](https://phpackages.com/badges/clousclouds-bedrock-protocol/health.svg)](https://phpackages.com/packages/clousclouds-bedrock-protocol)
```

###  Alternatives

[pocketmine/pocketmine-mp

A server software for Minecraft: Bedrock Edition written in PHP

3.6k79.3k91](/packages/pocketmine-pocketmine-mp)[pocketmine/bedrock-protocol

An implementation of the Minecraft: Bedrock Edition protocol in PHP

173451.7k19](/packages/pocketmine-bedrock-protocol)[markocupic/calendar-event-booking-bundle

Contao Calendar Event Booking Bundle

125.3k1](/packages/markocupic-calendar-event-booking-bundle)[mynaparrot/plugnmeet-sdk

plugNmeet PHP SDK

113.1k](/packages/mynaparrot-plugnmeet-sdk)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
