bdec is a set of tools for decoding binary files given a specification written in a flexible XML-based syntax. It supports decoding to XML or Python objects, and can generate quality C decoders.
| Tags | Software Development Libraries Python Modules Utilities Code Generators Build Tools |
|---|---|
| Licenses | LGPL |
| Operating Systems | OS Independent |
| Implementation | Python C |
Recent releases


Changes: An issue that could cause the wrong (lower priority) option in a choice to be decoded was fixed along with a bug that caused sequence integer entries to compile to structs instead of ints.


Changes: This release will correctly hide common entries that have been referenced with a hidden name. It fixes out of data error reporting invalid ranges. It fixes compilation errors when entries are named after keywords (such as 'int'). It allows references to be used as common entries.


Changes: This release reports the correct entry when there is a missing referenced entry. It fixes a Mako compile exception when running from an egg (ignores .pyc files).


Changes: Compilation speedups (around five times) and Python decoding speedups (up to 30 times). Compiled choices are now represented by an 'enum' and a 'union'. Expressions can now directly reference choice entries to reference the decoded option. A new 'tips' section was added in the documentation, which includes the ':' hidden entry hint. Entries whose values are passed both in and out of an entry due to expressions were fixed. Little endian fields with an expected value in compiled specifications were fixed.


Changes: The project can be compiled to an egg (including templates). The generated C can be used from C++ programs (e.g. extern c). 'bdecode' and 'bcompile' are installed as part of the egg install. Generated C language type names are consistent across runs.