# hhh
This is a hexadecimal encoder/decoder for files but has a parser for reading descriptions and generating binary files. See the book distributed with the source (in the `doc` folder) for details.
**hhh** uses [Semantic Versioning][].
Have you found a bug? Submit it through the [hhh Issues][] tracker, and be sure to include (1) what happens, (2) what you *expect* to happen, (3) how to *reproduce* the bug, and (4) what *version* of hhh you are using.
## Online Documentation
For the master branch only:
- [The hhh Book](https://binary-tools.gitlab.io/hhh/book/)
- [hhh Rust API](https://binary-tools.gitlab.io/hhh/hhh/)
## Local Documentation
**If you have built the documentation locally**, then this link will take you to it.
- [Local hhh Book](book.html)
- [Local hhh Rust API](apidocs.html)
## Building
You need to have Rust 2021 edition installed to compile. Compilation should be relatively simple.
$ cargo build
This should build the hhh binary.
You might have a look at `etc/build.sh` and `etc\build.ps1`. These is a little scripts (in bash and powershell) that run the "pre-commit" pipeline.
## API Documentation
If you want documentation run `cargo doc --nodeps`.
After generation the API documentation should be available locally starting at [`target/doc/hhh/index.html`](target/doc/hhh/index.html).
## Security
Please submit sensitive security issues using the "This issue is confidential..." button below the issue description field in the issue tracker.
The code should be checked, periodically, against the known Rust security advisories. This can be done with `cargo audit`. You can install that with `cargo install cargo-audit`.
Consider installing [Trivy][]. This is a vulnerability scanner.
## Contribute
See [CONTRIBUTING][] for information about contributing to this project.
If you are interested in contributing, see the [Roadmap][], the [TechDebt][], and any `TODO` or `BUG` comments in the code for some things that still need to be done. Others may be working on them, so be sure to check in with the project.
## Copyright
**hhh** is Copyright (c) 2023 by Stacy Prowell (sprowell+hhh@gmail.com). All rights reserved. See the [Copyright][] and [License][] files for more information.
[Copyright]: ./COPYRIGHT
[License]: ./LICENSE
[TechDebt]: ./TechDebt.md
[Roadmap]: ./Roadmap.md
[CONTRIBUTING]: ./CONTRIBUTING.md
[hhh Issues]: https://gitlab.com/sprowell/hhh/-/issues
[Semantic Versioning]: https://semver.org/
[Trivy]: https://aquasecurity.github.io/trivy/