Skip to content

JoeVirtual/KonFoo

Repository files navigation

KonF'00'

status docs pypi python license downloads binder

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

  1. Project Status
  2. Project Structure
  3. Getting Started
  4. Development
  5. Release Process
  6. Documentation
  7. License
  8. Authors

Project Status

This project is stable and active. Feedback is always welcomed!

Back to top

Project Structure

The project is organized in sub-folders.

  • assets/: Project assets
  • binder/: Binder configuration
  • docs/: Sphinx documentation
  • notebooks/: Jupyter notebooks
  • src/konfoo/: Package sources

Back to top

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

Back to top

Usage

Read the documentation on "Read The Docs".

Back to top

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.

Back to top

Release Process

Versioning

This project uses Semantic Versioning. For a list of available versions, see the repository tag list.

Back to top

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.

Back to top

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.

Back to top

License

The project is licensed under the revised 3-Clause BSD License.

See LICENSE.

Back to top

Authors

  • Jochen Gerhaeusser

See also the list of contributors who participated in this project.

Back to top