Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time


Latest release on the Python Cheeseshop (PyPI) Build status of hachoir on GitHub Actions No Maintenance Intended

Hachoir is a Python library to view and edit a binary stream field by field. In other words, Hachoir allows you to "browse" any binary stream just like you browse directories and files.

A file is splitted in a tree of fields, where the smallest field is just one bit. Examples of fields types: integers, strings, bits, padding types, floats, etc. Hachoir is the French word for a meat grinder (meat mincer), which is used by butchers to divide meat into long tubes; Hachoir is used by computer butchers to divide binary files into fields.

Command line tools using Hachoir parsers:

  • hachoir-grep: find a text pattern in a binary file
  • hachoir-metadata: get metadata from binary files
  • hachoir-strip: modify a file to remove metadata
  • hachoir-urwid: display the content of a binary file in text mode

Installation instructions:

Hachoir is written for Python 3.6 or newer.