A declarative byte stream mapping engine.
Project description
KonF'00'
KonFoo is a Python Package for creating byte stream mappers in a declarative way with as little code as necessary to help fighting the confusion with the foo of the all well-known memory dumps or hexadecimal views of binary data.
It comes with sensible defaults out of the box.
It aims to make the process of reading, de-serializing, viewing, serializing and writing binary data from and back to a data provider as easy as possible.
KonFoo in points:
- declarative way to describe the mapping of binary data to Python types
- declarative classes to read, deserialize, view, serialize and write binary data from and back to a data source
- easy adjustable byte stream provider bridge to any kind of data source
- nesting of classes
- adaptable classes on the fly while reading/de-serializing binary data
- easy syntax for accessing nested fields
- view the mapped binary data as a JSON string
- list the mapped binary data as a flat list or dictionary
- write the mapped binary data to a
.json
file - write the mapped binary data to a
.csv
file - save the mapped binary data to an
.ini
file - load the mapped binary data from an
.ini
file - easy creatable nested metadata dictionaries of the members of a byte stream mapper
- metadata converter to the
flare.json
format to visualise the mapper with d3.js.
Table of Contents
- Project Status
- Project Structure
- Getting Started
- Development
- Release Process
- Documentation
- License
- Authors
Project Status
This project is stable and active. Feedback is always welcomed!
Project Structure
The project is organized in sub-folders.
assets/
: Project assetsbinder/
: Binder configurationdocs/
: Sphinx documentationnotebooks/
: Jupyter notebookssrc/konfoo/
: Package sources
Getting Started
Dependencies
The KonFoo
package requires at least Python 3.6, otherwise no other packages
are required.
Installation
To install the package from PyPi using pip
> pip install konfoo
Usage
Read the documentation on "Read The Docs".
Development
Getting the Source
This project is hosted on github. You can clone the project directly using this command:
> git clone https://github.com/JoeVirtual/KonFoo.git
Building a Distribution
To build local a distribution of this project, use this command:
> make build
The generated the distribution artifacts can be found in the ./dist
folder
of the cloned project on your machine.
Building the Documentation
Building the documentation requires Sphinx, the Furo theme, and the Sphinx extension sphinx-copybutton.
> pip install sphinx
> pip install furo
> pip install sphinx-copybutton
To build local the documentation of this project, use this command:
> make docs
The generated HTML documentation artifact can be found in the
./docs/_build/html
folder of the cloned project on your machine.
Release Process
Versioning
This project uses Semantic Versioning. For a list of available versions, see the repository tag list.
Documentation
The documentation for the latest repository build is hosted on the GitHub Pages of the project.
The documentations of the project releases are hosted on Read The Docs.
Contributing
If you are interested to contribute code or documentation to the project, please take a look at the contributing guidelines for details on our development process.
License
The project is licensed under the revised 3-Clause BSD License.
See LICENSE.
Authors
- Jochen Gerhaeusser
See also the list of contributors who participated in this project.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.