PHPackages                             pgnetwork/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. pgnetwork/bedrock-protocol

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

pgnetwork/bedrock-protocol
==========================

An implementation of the Minecraft: Bedrock Edition protocol in PHP

01PHP

Since Oct 25Pushed 1y agoCompare

[ Source](https://github.com/PantherGamesNET/BedrockProtocol)[ Packagist](https://packagist.org/packages/pgnetwork/bedrock-protocol)[ RSS](/packages/pgnetwork-bedrock-protocol/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)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:

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

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

[](#encoding-packets)

This is easy:

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

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

14

—

LowBetter than 2% of packages

Maintenance30

Infrequent updates — may be unmaintained

Popularity1

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity16

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/52bcf202b20bd687cbcfbb7e1951f3095eec2ec521d3e73827754dd9e7980d19?d=identicon)[AustrianNoah](/maintainers/AustrianNoah)

---

Top Contributors

[![AustrianNoah](https://avatars.githubusercontent.com/u/151822733?v=4)](https://github.com/AustrianNoah "AustrianNoah (1 commits)")

### Embed Badge

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

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

###  Alternatives

[components/mathjs

Math.js is an extensive math library for JavaScript and Node.js. It features a flexible expression parser with support for symbolic computation, comes with a large set of built-in functions and constants, and offers an integrated solution to work with different data types like numbers, big numbers, complex numbers, fractions, units, and matrices.

15.0k3.8k](/packages/components-mathjs)[aura/payload-interface

An interface package for Domain Payload implementations.

13392.7k4](/packages/aura-payload-interface)[njxqlus/filament-lightbox

Lightbox entry for Filament

2054.6k](/packages/njxqlus-filament-lightbox)

PHPackages © 2026

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