Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/yeslogic/fathom

🚧 (Alpha stage software) A declarative data definition language for formally specifying binary data formats. 🚧
https://github.com/yeslogic/fathom

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

Last synced: 3 months ago
JSON representation

🚧 (Alpha stage software) A declarative data definition language for formally specifying binary data formats. 🚧

Awesome Lists containing this project

README

        

# Fathom

[![Actions Status][actions-badge]][actions-url]
[![Matrix][matrix-badge]][matrix-lobby]
[![License][license-badge]][license-url]

[actions-badge]: https://github.com/yeslogic/fathom/workflows/ci/badge.svg
[actions-url]: https://github.com/yeslogic/fathom/actions
[matrix-badge]: https://img.shields.io/badge/chat-%23fathom--lang%3Amatrix.org-brightgreen
[matrix-lobby]: https://matrix.to/#/#fathom-lang:matrix.org
[license-badge]: https://img.shields.io/github/license/yeslogic/fathom
[license-url]: ./LICENSE

A language for specifying data-dependent binary formats.

## Example

```fathom
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](./formats) directory.

## Code of Conduct

Please note that this project is released with a [Code of Conduct](./CODE_OF_CONDUCT.md).
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](./LICENSE) or for details.