Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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. 🚧
- Host: GitHub
- URL: https://github.com/yeslogic/fathom
- Owner: yeslogic
- License: apache-2.0
- Created: 2015-01-09T00:55:38.000Z (almost 10 years ago)
- Default Branch: main
- Last Pushed: 2023-09-06T23:51:16.000Z (about 1 year ago)
- Last Synced: 2024-05-22T22:30:20.519Z (6 months ago)
- Topics: 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
- Language: Rust
- Homepage:
- Size: 5.51 MB
- Stars: 257
- Watchers: 15
- Forks: 14
- Open Issues: 39
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-rust-formalized-reasoning - Fathom - declarative data definition language for formally specifying binary data formats. (Programming Language / Libraries)
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]: ./LICENSEA 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.