Skip to main content

r-python-bedrock-protocol

Высокопроизводительная асинхронная библиотека на Python для работы с сетевым протоколом Minecraft: Bedrock Edition (MCPE).

Автор: Reikiioi
Вдохновлено: bedrock-protocol от команды PrismarineJS.


⚡ Особенности

  • Асинхронность и скорость: Построено на asyncio и поддерживается uvloop для минимальных задержек и высокой пропускной способности I/O.
  • Быстрая криптография: Прямая интеграция OpenSSL (cryptography) для шифрования пакетов AES-256-CFB8 и ECDH ключей.
  • Простой и удобный API: Простая событийная модель (@client.on('text'), @server.on('connect')).
  • Транспорт RakNet: Асинхронный клиент и сервер протокола RakNet UDP.
  • Встроенный Пинг: Получение статуса сервера (MOTD, количество игроков, версия протокола).
  • MITM Прокси (Relay): Удобный инструмент для анализа и перехвата пакетов.

🚀 Установка

pip install r-python-bedrock-protocol

Или из исходного кода:

git clone https://github.com/Reikiioi/r-python-bedrock-protocol.git
cd r-python-bedrock-protocol
pip install -e .

💻 Примеры использования

1. Подключение Клиента (Echo-бот)

import asyncio
from r_python_bedrock_protocol import create_client

async def main():
    client = create_client(
        host="127.0.0.1",
        port=19132,
        username="Steve",
        offline=True
    )

    @client.on("connect")
    def on_connect():
        print("Подключено к серверу!")

    @client.on("join")
    def on_join():
        print("Успешный вход в мир!")

    @client.on("text")
    def on_text(packet):
        print(f"{packet.get('source_name')}: {packet.get('message')}")

    await client.connect()

if __name__ == "__main__":
    asyncio.run(main())

2. Запрос статуса сервера (Ping)

import asyncio
from r_python_bedrock_protocol import ping

async def main():
    info = await ping("play.cubecraft.net", 19132)
    print(f"Сервер: {info.motd}")
    print(f"Версия: {info.version} (Протокол {info.protocol_version})")
    print(f"Игроки: {info.players_online}/{info.players_max}")

if __name__ == "__main__":
    asyncio.run(main())

3. Запуск Сервера

import asyncio
from r_python_bedrock_protocol import create_server

async def main():
    server = create_server(host="0.0.0.0", port=19132, motd="Мой Bedrock Сервер")

    @server.on("connect")
    def on_connect(client):
        print(f"Новое подключение: {client.address}")

    await server.listen()
    print("Сервер запущен на 0.0.0.0:19132")
    await asyncio.Event().wait()

if __name__ == "__main__":
    asyncio.run(main())

📜 Лицензия

Распространяется под лицензией MIT.
Copyright (c) 2026 Reikiioi.

Metadata

Release files for r-python-bedrock-protocol 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for r-python-bedrock-protocol 0.3.0
File Size Uploaded
r_python_bedrock_protocol-0.3.0.tar.gz 30.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for r-python-bedrock-protocol 0.3.0
File Interpreter ABI Platform
r_python_bedrock_protocol-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 63.8 kB

Release files / r_python_bedrock_protocol-0.3.0.tar.gz

Download URL r_python_bedrock_protocol-0.3.0.tar.gz
Size 30.9 kB
Tags Source
SHA-256 checksum
How to use checksums
86e75a728829aa253d3c1f2a304f84161d38e1d6eda10c5dfb75a12ff2fdc959
BLAKE2b-256 checksum
How to use checksums
d90a003c997ae25deadf3077e16d1338ba8b436576d1aa52b1eb470b4976be7d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / r_python_bedrock_protocol-0.3.0-py3-none-any.whl

Download URL r_python_bedrock_protocol-0.3.0-py3-none-any.whl
Size 32.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5223c50dc2d623429735c017522c141966a1e4c1cbce04d32ecf2112e38e836f
BLAKE2b-256 checksum
How to use checksums
a88d47c2f1a3a3bbacb3da3fe6699563c5c7894b6cbaf4c2463eb37fddcffa74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page