tree

GitHub release (latest by date) Rust Crate Build & Test MIT License

tree is a command-line utility that recursively displays the directory structure of a given path in a tree-like format, inspired by the Unix tree command. It is implemented in Rust and aims to provide a fast and efficient alternative with additional features.

tree Example

Features

Disclaimer

Using this project to learn Rust, so it's not production ready. Feel free to PR for any improvements.

Installation

Download Binaries

Ready to use binaries for various platforms are available on the Releases Page (Windows, MacOS, Linux). - Download and unzip for your plaform - If placing in $PATH, you can rename it to avoid confusing with any other tree binaries

Build from Source

If you have Rust and Cargo installed, you can build the project by running:

```sh git clone https://github.com/peteretelej/tree.git cd tree cargo build --release

./target/release/tree -L 2 .

copy tree binary to a PATH directory

``` The resulting binary will be located at ./target/release/tree.

Usage

sh ./tree [FLAGS] [OPTIONS] [PATH]

For example ```sh ./tree -L 2 .

-L 2: displays upto 2 levels of recursion

```

Using as Rust Crate

```rust use rusttree::tree::{listdirectory, options::TreeOptions};

fn main() { let path = "."; let options = TreeOptions { fullpath: true, noindent: true, ..Default::default() }; list_directory(path, &options).unwrap(); } ```

Using the bytes_to_human_readable function to print human readable file sizes ```rust use rusttree::utils::bytestohumanreadable; use std::fs;

fn main() { let metadata = fs::metadata("myfile.txt").unwrap(); let size = metadata.len(); let sizestr = bytestohumanreadable(size); println!("File size: {}", sizestr); } ```

Contributing

Contributions are welcome! If you have any suggestions, feature requests, or bug reports, please feel free to open an issue or submit a pull request on the GitHub repository.

License

MIT