Released on December 2024.
- Complete API redesign with Django-like declarative syntax
- Removed:
initialize(),fetch(),BytesField,VariableBytesField,MultipleField - New:
Struct.parse(),to_bytes(),Ref,SyncRule, validators - Field access now uses descriptor protocol (no more
initialize()required)
- Bidirectional parsing - Both
parse()andto_bytes()methods - Ref system - Cross-field references with
Ref("field_name") - SyncRule - Automatic field synchronization (e.g., length fields)
- Validation system -
Range,OneOf,Consistency,Customvalidators - BitStruct - Bit-level parsing with
BitandBitsfields - Conditional - Optional fields based on runtime conditions
- Switch - Tagged unions for variant types
- Flags - Bit flags field with named flags
- Enum - Enum field for type-safe enum handling
- Float32/Float64 - Floating-point number fields
- Expression system -
Len,Value,Const,Checksumfor validation
- Integer:
Int8,UInt8,Int16,UInt16,Int32,UInt32,Int64,UInt64 - Float:
Float32,Float64 - Bytes:
FixedBytes,Bytes - String:
FixedString,String,NullTerminatedString - Composite:
Array,EmbeddedStruct,Conditional,Switch - Special:
Bool,Padding,Flags,Enum - Bit-level:
BitStruct,Bit,Bits,EmbeddedBitStruct
Released on August 27, 2019.
Structinheritance became available.Int8Field,Int16Fieldwas added.Structbecame to let self initialize automatically.
Just chore to be better for docs. Released on June 26, 2019.
Released on June 22, 2019.
VariableBytesFieldis added.StringFieldis added.MultipleFieldis added.IntField,Int32Field,Int64Fieldis added.
Just chore like README. Released on June 9, 2019.
Initial release. Released on June 9, 2019.