Skip to main content

A Pythonic way to define, parse and modify binary structures

Project description

https://img.shields.io/travis/com/ralphje/destructify.svg https://img.shields.io/codecov/c/github/ralphje/destructify.svg?style=flat https://img.shields.io/pypi/v/destructify.svg https://img.shields.io/readthedocs/destructify.svg

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

destructify-0.2.0.tar.gz (26.7 kB view details)

Uploaded Source

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

Hashes for destructify-0.2.0.tar.gz
Algorithm Hash digest
SHA256 16d0bbccac91f50c9ff8b4ef2273e618883897ca1bc12756f92a0e808f51cdd4
MD5 c625aceacef92cfa4c1df45ebea8a371
BLAKE2b-256 bb6db2b701217c1a43b7c3aba1bc8225abb9a5d3ac723af9a037357305723208

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page