基于属性的类的二进制序列化程序
attrs2bin的Python项目详细描述
属性2 bin
attrs2bin
是一个Python库,它允许您将基于^{
示例
attrs2bin
只提供两个简单的函数:serialize()
,它接受一个对象并返回一个字节流,deserialize()
,它接受一个字节流和一个基于{
import attrs2bin @attr.s(auto_attribs=True) class Sprite: name: str x: int y: int my_sprite = Sprite("My sprite", 35, 70) serialized = attrs2bin.serialize(my_sprite) deserialized = attrs2bin.deserialize(serialized, Sprite) assert my_sprite == deserialized
什么可以序列化?在
任何基于attrs
的类的对象都可以序列化,只要它们的所有字段都有一个类型(使用类型注释或attr.ib(type=...)
)。attrs2bin
为以下类型提供了序列化程序:
int
float
bytes
str
bool
通过创建实现attrs2bin.interfaces.ITypeSerializer
的类并调用attrs2bin.register_serializer()
,可以为特定类型创建并注册自己的序列化程序。在
从套接字反序列化
您可以使用deserialize(bytes, cls)
,而不是deserialize_from_socket(sck, cls)
,它将从套接字读取必要的字节并返回一个Python对象。sck
必须是实现attrs2bin.interfaces.IReadableSocket
的任何对象。在
铁锈相容性
attrs2bin
附带的序列化程序都与Rust的^{
Python type | Rust type |
---|---|
^{ | ^{ |
^{ | ^{ |
^{ | ^{ |
^{ | ^{ |
^{ | ^{ |
^{ | ^{ |
^{ | ^{ |
- 项目
标签: