Warning
This project is still in beta/testing phase. Expect bugs, naming changes and errors while using this library.
Caterpillar is a Python 3.12+ library to pack and unpack structurized binary data. It enhances the capabilities of Python Struct by enabling direct class declaration. More information about the different configuration options will be added in the future. Documentation is here >.
Caterpillar is able to:
- Pack and unpack data just from processing Python class definitions (including support for bitfields, c++-like templates and c-like unions!),
- apply a wide range of data types (with endianess and architecture configuration),
- dynamically adapt structs based on their inheritance layout,
- reduce the used memory space using
__slots__
, - allowing you to place conditional statements into class definitions,
- insert proper types into the class definition to support documentation and
- it helps you to create cleaner and more compact code.
Simply use pip to install the package:
pip install "caterpillar[all]@git+https://github.com/MatrixEditor/caterpillar.git"
Note
You will need to install make
, a C compiler and the Python3.12 development package.
Please visit the Documentation, it contains a complete tutorial on how to use this library.
A list of similar approaches to parsing structured binary data with Python can be taken from below:
The documentation also provides a Comparison to these approaches.
Distributed under the GNU General Public License (V3). See License for more information.