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)
| File | Size | Uploaded | |
|---|---|---|---|
| r_python_bedrock_protocol-0.3.0.tar.gz | 30.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|