带类型的结构序列化/反序列化
typestruct的Python项目详细描述
类型结构
这是一个python 3库amis,使标准模块struct
更易于使用。
示例
@dataclassclassICMPPacket(Packet):ttype:uint8code:uint8checksum:uint16rest:Slice(4)packet=ICMPPacket(1,2,3,b"abcd")binary=packet.serialize()print(binary)# => b'\x01\x02\x03\x00abcd'recovered=ICMPPacket.deserialize(binary)print(recovered)# => ICMPPacket(ttype=1, code=2, checksum=3, rest=b'abcd')print(packet.serialize(endian=Endian.BIG_ENDIAN))# => b'\x01\x02\x00\x03abcd'
可变长度
@dataclassclassTLV(Packet):tag:uint8length:uint8value:Varlength(lambdas:s.length)tlv=TLV(tag=1,length=5,value=b"abcde")binary=tlv.serialize()print(binary)# => b'\x01\x05abcde'recovered=TLV.deserialize(binary)print(recovered)# => TLV(tag=1, length=5, value=b'abcde')
许可证
麻省理工学院