{"id":30269737,"url":"https://github.com/healeycodes/dumac","last_synced_at":"2025-08-16T02:18:12.176Z","repository":{"id":307541452,"uuid":"1029616030","full_name":"healeycodes/dumac","owner":"healeycodes","description":"🗃️ Very fast alternative to 'du -sh' for macOS.","archived":false,"fork":false,"pushed_at":"2025-07-31T18:09:10.000Z","size":37,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-31T21:52:04.609Z","etag":null,"topics":["disk-usage","du"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/healeycodes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-31T10:03:47.000Z","updated_at":"2025-07-31T18:45:11.000Z","dependencies_parsed_at":"2025-07-31T21:52:06.797Z","dependency_job_id":"37585b68-a5df-4584-b60f-8fcd82b5e705","html_url":"https://github.com/healeycodes/dumac","commit_stats":null,"previous_names":["healeycodes/dumac"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/healeycodes/dumac","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/healeycodes%2Fdumac","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/healeycodes%2Fdumac/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/healeycodes%2Fdumac/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/healeycodes%2Fdumac/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/healeycodes","download_url":"https://codeload.github.com/healeycodes/dumac/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/healeycodes%2Fdumac/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270657715,"owners_count":24623465,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-16T02:00:11.002Z","response_time":91,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["disk-usage","du"],"created_at":"2025-08-16T02:18:11.562Z","updated_at":"2025-08-16T02:18:12.164Z","avatar_url":"https://github.com/healeycodes.png","language":"Rust","readme":"# dumac\n\u003e My blog posts:\n\u003e - [Maybe the Fastest Disk Usage Program on macOS](https://healeycodes.com/maybe-the-fastest-disk-usage-program-on-macos)\n\u003e - [Optimizing My Disk Usage Program](https://healeycodes.com/optimizing-my-disk-usage-program)\n\u003cbr\u003e\n\nA very fast `du -sh` clone for macOS. Maybe the fastest.\n\n`dumac` calculates the size of a given directory.\n\nIt's a parallelized version of `du -sh` and uses highly efficient macOS syscalls ([getattrlistbulk](https://man.freebsd.org/cgi/man.cgi?query=getattrlistbulk\u0026sektion=2\u0026manpath=macOS+13.6.5) – avaliable since Mac OS X 10.10).\n\n```bash\ndumac /tmp/\n11.5K   /tmp/\n```\n\n\u003cbr\u003e\n\n## Benchmarks\n\nIt has been benchmarked (and beats) against most of the tools that come up when you search \"disk usage CLI for macOS\" but the fairest comparisons are `du` and `diskus` because they don't generate other output.\n\nMy benchmark is a directory with 12 levels, 100 small files per level, with a branching factor of two — 4095 directories, 409500 files.\n\nIt's ran with a warm disk cache as I found that warm disk cache performance strongly correlates with cold disk cache performance on macOS with modern Apple hardware.\n\n```\nhyperfine --warmup 3 --min-runs 5 'du -sh temp/deep' 'diskus temp/deep' './target/release/dumac temp/deep'\nBenchmark 1: du -sh temp/deep\n  Time (mean ± σ):      3.186 s ±  0.198 s    [User: 0.040 s, System: 1.391 s]\n  Range (min … max):    2.851 s …  3.367 s    5 runs\n\nBenchmark 2: diskus temp/deep\n  Time (mean ± σ):      1.834 s ±  0.157 s    [User: 0.482 s, System: 10.333 s]\n  Range (min … max):    1.622 s …  2.046 s    5 runs\n\nBenchmark 3: ./target/release/dumac temp/deep\n  Time (mean ± σ):     563.1 ms ±  22.6 ms    [User: 57.4 ms, System: 2213.7 ms]\n  Range (min … max):   545.1 ms … 595.5 ms    5 runs\n\nSummary\n  ./target/release/dumac temp/deep ran\n    3.26 ± 0.31 times faster than diskus temp/deep\n    5.66 ± 0.42 times faster than du -sh temp/deep\n```\n\n\u003cbr\u003e\n\nTo setup the benchmark:\n\n```bash\npip install -r requirements.txt\npython setup_benchmark.py\n```\n\n\u003cbr\u003e\n\n```bash\nbrew install hyperfine\nbrew install diskus\ncargo build --release\nhyperfine --warmup 3 --min-runs 3 'du -sh temp/deep' 'diskus temp/deep' './target/release/dumac temp/deep'\n```\n\n\u003cbr\u003e\n\n## Tests\n\n```\ncargo test\n```\n","funding_links":[],"categories":["Rust"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhealeycodes%2Fdumac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhealeycodes%2Fdumac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhealeycodes%2Fdumac/lists"}