Journal article Open Access

General binary file parser version 1.0.1

Jeroen F.J. laros

MARC21 XML Export

<?xml version='1.0' encoding='UTF-8'?>
<record xmlns="">
  <datafield tag="041" ind1=" " ind2=" ">
    <subfield code="a">eng</subfield>
  <datafield tag="653" ind1=" " ind2=" ">
    <subfield code="a">binary</subfield>
  <datafield tag="653" ind1=" " ind2=" ">
    <subfield code="a">parser</subfield>
  <datafield tag="653" ind1=" " ind2=" ">
    <subfield code="a">yaml</subfield>
  <datafield tag="653" ind1=" " ind2=" ">
    <subfield code="a">json</subfield>
  <controlfield tag="005">20180621190220.0</controlfield>
  <controlfield tag="001">1295625</controlfield>
  <datafield tag="856" ind1="4" ind2=" ">
    <subfield code="s">45481</subfield>
    <subfield code="z">md5:32f28fafa5c0dfc519e4e7acb5606a71</subfield>
    <subfield code="u"></subfield>
  <datafield tag="542" ind1=" " ind2=" ">
    <subfield code="l">open</subfield>
  <datafield tag="260" ind1=" " ind2=" ">
    <subfield code="c">2018-06-21</subfield>
  <datafield tag="909" ind1="C" ind2="O">
    <subfield code="p">openaire</subfield>
    <subfield code="o"></subfield>
  <datafield tag="909" ind1="C" ind2="4">
    <subfield code="c">766</subfield>
    <subfield code="n">26</subfield>
    <subfield code="p">JOSS - The Journal of Open Source Software</subfield>
    <subfield code="v">3</subfield>
  <datafield tag="100" ind1=" " ind2=" ">
    <subfield code="u">Leiden University Medical Center</subfield>
    <subfield code="a">Jeroen F.J. laros</subfield>
  <datafield tag="245" ind1=" " ind2=" ">
    <subfield code="a">General binary file parser version 1.0.1</subfield>
  <datafield tag="540" ind1=" " ind2=" ">
    <subfield code="u"></subfield>
    <subfield code="a">MIT License</subfield>
  <datafield tag="650" ind1="1" ind2="7">
    <subfield code="a">cc-by</subfield>
    <subfield code="2"></subfield>
  <datafield tag="520" ind1=" " ind2=" ">
    <subfield code="a">&lt;p&gt;This library provides general binary file parsing by interpreting documentation of a file structure and data types. By default, it supports basic data types like big-endian and little-endian integers, floats and doubles, variable length (delimited) strings, maps and bit fields (flags) and it can iterate over sub structures. Other data types are easily added.&lt;/p&gt;

&lt;p&gt;The file structure and the types are stored in nested dictionaries. The structure is separated from the types, this way multiple file formats using the same types (within one project for example) can be easily supported without much duplication.&lt;/p&gt;

&lt;p&gt;The design of the library is such that all operations can be reversed. This means that fully functional binary editing is possible using this implementation; first use the reader to convert a binary file to a serialised dictionary representation, this representation is easily edited using a text editor, and then use the writer to convert back to binary.&lt;/p&gt;

&lt;p&gt;This idea is implemented in two languages; Python and JavaScript. All main development is done in Python. We chose YAML as our preferred serialised dictionary format, but other serialisation formats (JSON for example) can be used too.&lt;/p&gt;

&lt;p&gt;Please see &lt;a href=""&gt;ReadTheDocs&lt;/a&gt; for the latest documentation.&lt;/p&gt;</subfield>
  <datafield tag="773" ind1=" " ind2=" ">
    <subfield code="n">doi</subfield>
    <subfield code="i">isVersionOf</subfield>
    <subfield code="a">10.5281/zenodo.1295624</subfield>
  <datafield tag="024" ind1=" " ind2=" ">
    <subfield code="a">10.5281/zenodo.1295625</subfield>
    <subfield code="2">doi</subfield>
  <datafield tag="980" ind1=" " ind2=" ">
    <subfield code="a">publication</subfield>
    <subfield code="b">article</subfield>
All versions This version
Views 5050
Downloads 44
Data volume 181.9 kB181.9 kB
Unique views 4949
Unique downloads 33


Cite as