A Pythonic way to define, parse and modify binary structures
Project description
Destructify is a Pythonic and pure-Python 3 method to express binary data, allowing you to read and write binary structures. You simply specify a structure by creating a class as follows:
class ExampleStructure(destructify.Structure):
some_number = destructify.IntegerField(default=0x13, length=4, byte_order='little', signed=True)
length = destructify.IntegerField(length=1)
data = destructify.FixedLengthField(length='length')
Now you can parse your own binary data:
example = ExampleStructure.from_bytes(b"\x01\x02\x03\x04\x0BHello world")
print(example.data) # b'Hello world'
Or write your own data:
example2 = ExampleStructure(data=b'How are you doing?')
print(bytes(example2)) # b'\x13\x00\x00\x00\x12How are you doing?'
Documentation
Documentation for Destrucify is available at https://destructify.readthedocs.io/en/latest/ or in the docs/ directory.
Installation
Destructify is available at the Python Package Index:
pip install destructify
Contributing
Since Destructify is an open source project, contributions of many forms are welcomed. Examples of possible contributions include:
Bug patches
New features
Documentation improvements
Bug reports and reviews of pull requests
We use GitHub to keep track of issues and pull requests. You can always submit an issue when you encounter something out of the ordinary.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file destructify-0.2.0.tar.gz
.
File metadata
- Download URL: destructify-0.2.0.tar.gz
- Upload date:
- Size: 26.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.1.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16d0bbccac91f50c9ff8b4ef2273e618883897ca1bc12756f92a0e808f51cdd4 |
|
MD5 | c625aceacef92cfa4c1df45ebea8a371 |
|
BLAKE2b-256 | bb6db2b701217c1a43b7c3aba1bc8225abb9a5d3ac723af9a037357305723208 |