bytespec¶
bytespec описывает последовательный бинарный формат типизированным
Python-классом. Вы задаёте представление полей; библиотека записывает и читает
их, считает длины и обновляет смещение. Это удобно для собственных протоколов
и существующих форматов, которые укладываются в такую модель.
Установите пакет (Python 3.10+):
python -m pip install bytespec
from bytespec import ProtoModel
class User(ProtoModel):
name: str
active: bool
user = User(name="Anna", active=True)
encoded = user.encode() # bytes для хранения или передачи
decoded = User.decode(encoded) # снова User
print(decoded.name) # Anna
Для чтения нужен тот же класс модели. Бинарное представление определяется типами полей и их настройками; при необходимости можно выбрать размер числа, кодировку строки или собственное правило сериализации.
Зачем bytespec? сравнивает один пакет в struct, Construct и bytespec и объясняет границы применимости. Первая модель проведёт от этого примера к модели с другими типами, необязательными полями и списками. Если уже знаете, что ищете, откройте API Reference или Binary / wire format.