#disk #scanner #multi-threaded #csv #json #multi-threading

app volscan

๐Ÿš€ VolScan: High-speed, multi-threaded disk scanner providing detailed directory summaries with JSON/CSV output support

1 unstable release

new 0.1.3 Nov 17, 2024

#9 in #multi-threaded

MIT license

740KB
737 lines

๐Ÿงน VolScan


__     __        _  ____
\ \   / /  ___  | |/ ___|   ___   __ _  _ __
 \ \ / /  / _ \ | |\___ \  / __| / _` || '_ \
  \ V /  | (_) || | ___) || (__ | (_| || | | |
   \_/    \___/ |_||____/  \___| \__,_||_| |_|

๐Ÿš€ VolScan: High-speed, multi-threaded disk scanner providing detailed directory summaries with JSON/CSV output support.

โœจ Features

  • โšก High Performance: Scans large disks at lightning speed, outperforming traditional tools like du, find, and tree.
  • ๐Ÿ“Š Detailed Directory Summaries: Provides per-directory stats, including:
    • Number of files
    • Total size
    • Latest creation, access, and modification times
  • ๐Ÿ“‚ Flexible Output Formats: Outputs results in easy-to-analyze JSON or CSV formats.
  • ๐Ÿ”„ Streaming Output: Streams results directly to output files, maintaining low and consistent memory usage regardless of disk size.
  • ๐Ÿ› ๏ธ Customizable Threads: Configurable multi-threading support to maximize performance based on your system's resources.
  • ๐ŸŒ Network Disk Support: Optimized for inspecting both local and network-mounted disks.
  • ๐ŸŽ›๏ธ Built-in Viewer: Includes a lightweight viewer to analyze JSON/CSV outputs directly.
  • ๐Ÿ” Precision Scanning: Handles enormous filesystems while ensuring accuracy and reliability.

Perfect for professionals dealing with massive storage systems or anyone seeking deep insights into disk contents!

๐Ÿš€ Installation

To install volscan, simply clone the repository and follow the instructions below:

git clone git@github.com:trinhminhtriet/volscan.git
cd volscan

cargo build --release
cp ./target/release/volscan /usr/local/bin/

Running the below command will globally install the volscan binary.

cargo install volscan

Optionally, you can add ~/.cargo/bin to your PATH if it's not already there

echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

๐Ÿ’ก Usage

USAGE:
    volscan <SUBCOMMAND>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

SUBCOMMANDS:
    help      Prints this message or the help of the given subcommand(s)
    parse     Parse results files
    scan      Scan a directory
    stream    Stream file paths to stdout from a given set of directories

๐Ÿ—‘๏ธ Uninstallation

Running the below command will globally uninstall the volscan binary.

cargo uninstall volscan

Remove the project repo

rm -rf /path/to/git/clone/volscan

๐Ÿค How to contribute

We welcome contributions!

  • Fork this repository;
  • Create a branch with your feature: git checkout -b my-feature;
  • Commit your changes: git commit -m "feat: my new feature";
  • Push to your branch: git push origin my-feature.

Once your pull request has been merged, you can delete your branch.

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

Dependencies

~10โ€“20MB
~262K SLoC