# dhat-rs
**Warning:** *This crate is experimental. It relies on implementation techniques
that are hard to keep working for 100% of configurations. It may work fine for
you, or it may crash, hang, or otherwise do the wrong thing. Its maintenance is
not a high priority of the author. Support requests such as issues and pull
requests may receive slow responses, or no response at all. Sorry!*
This crate provides heap profiling and ad hoc profiling capabilities to Rust
programs, similar to those provided by [DHAT].
[DHAT]: https://www.valgrind.org/docs/manual/dh-manual.html
It also provides heap usage testing capabilities, which let you write tests
that check things like:
- "This code should do exactly 96 heap allocations".
- "The peak heap usage of this code should be less than 10 MiB".
- "This code should free all heap allocations before finishing".
It provides helpful details if these fail.
See the [crate documentation] for details on how to use it.
[crate documentation]: https://docs.rs/dhat
## License
Licensed under either of
* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or
http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or
http://opensource.org/licenses/MIT)
at your option.
## Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall
be dual licensed as above, without any additional terms or conditions.