# df3 - Advanced Disk Free Utility
[](https://crates.io/crates/df3)
[](https://docs.rs/df3)
[](https://github.com/cumulus13/df3/actions)
[](https://github.com/cumulus13/df3#license)
A modern, cross-platform disk usage viewer with multiple output formats, real-time monitoring, and advanced filtering capabilities.
## Features
- 🚀 **Fast and efficient** - Written in Rust for maximum performance
- 🎨 **Multiple output formats** - Table, JSON, CSV, and more
- 📊 **Real-time monitoring** - Watch mode with configurable refresh interval
- 🔍 **Advanced filtering** - Filter by filesystem type, mount point, and more
- 💻 **Cross-platform** - Works on Linux, macOS, and Windows
- 🎯 **Human-readable output** - Smart size formatting
- 📈 **Progress indicators** - Visual feedback for long operations
- 🔧 **Highly configurable** - Extensive CLI options
## Installation
### From crates.io
```bash
cargo install df3
```
### From source
```bash
git clone https://github.com/cumulus13/df3
cd df3
cargo install --path .
```
## Quick Start
```bash
# Basic usage
df
# Human-readable output
df -H
# JSON output
df --output json
# Watch mode (refresh every 5 seconds)
df --watch 5
# Show only specific filesystem types
df -t ext4 -t xfs
# Exclude filesystem types
df -x tmpfs -x devtmpfs
# Sort by usage percentage
df -S percent -r
# Show total with inode information
df --total -i
```
## Usage
```
Advanced disk free utility - modern alternative to df command
Usage: df [OPTIONS] [MOUNTS]...
Arguments:
[MOUNTS]... Mount point(s) to show
Options:
-H, --human-readable Show human readable sizes
-l, --local Limit listing to local file systems
-a, --all Include dummy file systems
-i, --inodes Show inode information
-o, --output <OUTPUT> Output format [default: table] [possible values: table, json, csv, inodes]
-B, --block-size <BLOCK_SIZE> Block size [default: 1024]
-t, --type <FS_TYPE> Filesystem type to show
-x, --exclude-type <FS_TYPE> Filesystem type to exclude
-S, --sort <SORT_FIELD> Sort by field [possible values: filesystem, size, used, avail, percent, mount]
-r, --reverse Reverse sort order
--total Show total row
-s, --sync Display sync progress
-w, --watch <SECONDS> Watch mode - refresh every N seconds
-V, --version Print version
-h, --help Print help
```
## Examples
### Basic Usage
```bash
$ df -H
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 256G 180G 76G 70% /
/dev/sdb1 512G 320G 192G 63% /data
```
### JSON Output
```bash
$ df --output json
[
{
"filesystem": "/dev/sda1",
"size": 274877906944,
"used": 193273528320,
"available": 81604378624,
"percent": 70.3,
"mount_point": "/"
}
]
```
### Watch Mode
```bash
$ df --watch 2
```
## Configuration
df3 can be configured via a config file at:
- Linux/macOS: `~/.config/df3/config.toml`
- Windows: `%APPDATA%\df3\config.toml`
## Contributing
Contributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details.
## 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.
## 👤 Author
[Hadi Cahyadi](mailto:cumulus13@gmail.com)
[](https://www.buymeacoffee.com/cumulus13)
[](https://ko-fi.com/cumulus13)
[Support me on Patreon](https://www.patreon.com/cumulus13)
## Acknowledgments
- Inspired by the Unix/Linux `df` command
- Built with ❤️ using Rust