Skip to main content

A declarative byte stream mapping engine.

Project description

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

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

KonFoo-3.0.0.tar.gz (139.2 kB view details)

Uploaded Source

Built Distribution

KonFoo-3.0.0-py3-none-any.whl (55.7 kB view details)

Uploaded Python 3

File details

Details for the file KonFoo-3.0.0.tar.gz.

File metadata

  • Download URL: KonFoo-3.0.0.tar.gz
  • Upload date:
  • Size: 139.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.7

File hashes

Hashes for KonFoo-3.0.0.tar.gz
Algorithm Hash digest
SHA256 2b03037bbe1fb1b398b54cf72f17e4798c617bee8e437f05b4ce0c824f133dd2
MD5 582340d99f8ef77a09a2dac1239f161d
BLAKE2b-256 ad7389f07df77bdd7f8610e0fb56d0610cf215fcb98fd552cbcb19422d0c9923

See more details on using hashes here.

File details

Details for the file KonFoo-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: KonFoo-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 55.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.7

File hashes

Hashes for KonFoo-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b2648dd7d8184d76aa9745ec6f7b0fd22deaf49be13afd961b2f3f7ee32ec4ee
MD5 92c782d65f58c5b1f3eac3e130d42835
BLAKE2b-256 946680f06fe34e48f18afc307fe2e0561f4a2707007a0658ac9ce106289dd161

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