🍺 BREW Explorer

← all formulae

ddh

brew install ddh v0.13.0 LGPL-3.0-only

Fast duplicate file finder

12
30-day installs · #8062
26
90-day · #9004
155
365-day · #8016
488
★ GitHub stars · updated 12mo ago

Build dependencies

GitHub topics

cli rust

Links

Raw metadata
{
  "aliases": [],
  "alternatives": [],
  "build_dependencies": [
    "rust"
  ],
  "categories": [],
  "caveats": null,
  "conflicts_with": [],
  "dependencies": [],
  "deprecated": 0,
  "deprecation_reason": null,
  "desc": "Fast duplicate file finder",
  "disable_reason": null,
  "disabled": 0,
  "enrichment_fetched_at": "2026-06-20T23:36:53+00:00",
  "first_seen": "2026-06-20T23:34:18+00:00",
  "full_name": "ddh",
  "github_default_branch": "master",
  "github_last_commit_at": "2025-08-27T22:12:07Z",
  "github_readme_excerpt": "# The **D**irectory **D**ifferential **h**Tool\nDDH traverses input directories and their subdirectories. It also hashes files as needed and reports findings.\n\nThe H in \"hTool\" is silent. The H in its abbreviation, \"DDH,\" is not.\n\nThis tool is called DDH for two very good reasons.\n* DDT is a dangerous pesticide\n* I mistyped when I created the project\n\n## Usage\nDDH is usable both as a library and as a stand alone CLI tool and aims to be simple to use in both cases.\n\n## Library example\n```rust\nlet (files, errors): (Vec\u003cFileinfo\u003e, Vec\u003c(_, _)\u003e) = ddh::deduplicate_dirs(dirs);\nlet (shared, unique): (Vec\u003c\u0026Fileinfo\u003e, Vec\u003c\u0026Fileinfo\u003e) = files\n                    .par_iter()\n                    .partition(|\u0026x| x.get_paths().len()\u003e1);\nprocess_full_output(\u0026shared, \u0026unique, \u0026files, \u0026errors, \u0026arguments);\n```\n\n## CLI Install\n* Install [Rust](https://www.rust-lang.org/en-US/install.html)\n* `cargo install --git https://github.com/darakian/ddh ddh`\n* The DDH binary will be installed into `$CARGO_HOME/.bin/ddh`, which usually is `$HOME/.cargo/bin/ddh`. This should be in your `PATH` already if you\u0027re using rustup.\n\n## CLI Features\nDDH supports both a `standard` output for human comprehension and a parsable `json` output for custom tools such as [ddh-move](https://github.com/JayWalker512/ddh-move).\n\n## CLI Example\n```\nDirectory Difference hTool\nJon Moroney jmoroney@hawaii.edu\nCompare and contrast directories.\n\nExample invocation: ddh -v duplicates -d /home/jon/downloads /home/jon/documents\nExample pipe: ddh -o no -v all -f json -d ~/Downloads/ | someJsonParser.bin\n\nUsage: ddh [OPTIONS]\n\nOptions:\n  -m, --minimum [\u003cMIN_SIZE\u003e]\n          Minimum file size in bytes to consider [default: 0]\n  -b, --blocksize [\u003cBLOCKSIZE\u003e]\n          Set the display blocksize to Bytes, Kilobytes, Megabytes or Gigabytes [default: K] [possible values: B, K, M, G]\n  -v, --verbosity [\u003cVERBOSITY\u003e]\n          Set verbosity for printed output [default: quiet] [possible values: quiet, duplicates, all]\n  -o, --output [\u003cOUT",
  "github_repo": "darakian/ddh",
  "github_stars": 488,
  "github_topics": [
    "cli",
    "rust"
  ],
  "homepage": "https://github.com/darakian/ddh",
  "homepage_og_description": null,
  "homepage_og_image": null,
  "homepage_title": null,
  "installs_30d": 12,
  "installs_365d": 155,
  "installs_90d": 26,
  "keg_only": 0,
  "keg_only_reason": null,
  "last_seen": "2026-06-20T23:34:18+00:00",
  "license": "LGPL-3.0-only",
  "llm_generated_at": null,
  "llm_model": null,
  "name": "ddh",
  "oldnames": [],
  "one_liner": null,
  "optional_dependencies": [],
  "rank_30d": 8062,
  "rank_365d": 8016,
  "rank_90d": 9004,
  "raw_hash": "c5159a37506e240e",
  "recommended_dependencies": [],
  "revision": 0,
  "ruby_source_path": "Formula/d/ddh.rb",
  "tap": "homebrew/core",
  "test_dependencies": [],
  "uses_from_macos": [],
  "version_head": null,
  "version_stable": "0.13.0",
  "versioned_formulae": [],
  "why_use_this": null
}