yeslogic / fathom

🚧 (Alpha stage software) A declarative data definition language for formally specifying binary data formats. 🚧
Apache License 2.0
259 stars 14 forks source link
binary-data binary-format compiler data-description-language declarative dependent-record-types dependent-types dsl language parser programming-language rust statically-typed type-checker type-system

Fathom

Actions Status Matrix License

A language for specifying data-dependent binary formats.

Example

def pixel = {
    red <- u8,
    green <- u8,
    blue <- u8,
};

def main = {
    width <- u16le,
    height <- u16le,
    pixels <- repeat_len16 (width * height) pixel,
};

More examples can be found in the formats directory.

Code of Conduct

Please note that this project is released with a Code of Conduct. By participating in this project you agree to abide by its terms.

License

Fathom is licensed under the terms of the Apache License (Version 2.0).

See LICENSE or http://www.apache.org/licenses/LICENSE-2.0 for details.