warm-fs 0.2.0

File system warmer
Documentation
[![License](https://img.shields.io/crates/l/warm-fs.svg)](https://choosealicense.com/licenses/mit/)
[![Crates.io](https://img.shields.io/crates/v/warm-fs.svg)](https://crates.io/crates/warm-fs)
[![Docs.rs](https://docs.rs/warm-fs/badge.svg)](https://docs.rs/warm-fs)

# warm-fs

A File system warmer

Cloud providers tent to restore volumes from snapshots in a cold state:

> For volumes that were created from snapshots, the storage blocks must be pulled down from
Amazon S3 and written to the volume before you can access them. This preliminary action takes
time and can cause a significant increase in the latency of I/O operations the first time
each block is accessed ([source][ebs-initialize]).

It has methods to estimates total size of particular folder and then recursively read files
in a thread pool.

It implements `Iterator` giving an access to the warming process intermediate state.
Refer to [cli example] for progress bar implementation.

[ebs-initialize]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-initialize.html
[cli example]: https://github.com/imbolc/warm-fs/blob/main/examples/cli.rs

## Contributing

We appreciate all kinds of contributions, thank you!

### Note on README

The `README.md` file isn't meant to be changed directly. It instead generated from the crate's docs
by the [cargo-readme] command:

* Install the command if you don't have it: `cargo install cargo-readme`
* Change the crate-level docs in `src/lib.rs`, or wrapping text in `README.tpl`
* Apply the changes: `cargo readme > README.md`

If you have [rusty-hook] installed the changes will apply automatically on commit.

## License

This project is licensed under the [MIT license](LICENSE).

[cargo-readme]: https://github.com/livioribeiro/cargo-readme
[rusty-hook]: https://github.com/swellaby/rusty-hook