{"id":33185534,"url":"https://github.com/OCamlPro/dirdiff","last_synced_at":"2025-11-17T10:01:35.946Z","repository":{"id":62889477,"uuid":"563373379","full_name":"OCamlPro/dirdiff","owner":"OCamlPro","description":"Efficiently compute the differences between two directories","archived":false,"fork":false,"pushed_at":"2022-11-29T12:43:44.000Z","size":901,"stargazers_count":93,"open_issues_count":3,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-10-30T04:55:07.274Z","etag":null,"topics":[],"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/OCamlPro.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-11-08T13:34:45.000Z","updated_at":"2025-08-29T19:22:08.000Z","dependencies_parsed_at":"2023-01-23T18:31:37.102Z","dependency_job_id":null,"html_url":"https://github.com/OCamlPro/dirdiff","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/OCamlPro/dirdiff","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OCamlPro%2Fdirdiff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OCamlPro%2Fdirdiff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OCamlPro%2Fdirdiff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OCamlPro%2Fdirdiff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OCamlPro","download_url":"https://codeload.github.com/OCamlPro/dirdiff/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OCamlPro%2Fdirdiff/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284861038,"owners_count":27075155,"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-11-17T02:00:06.431Z","response_time":55,"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":[],"created_at":"2025-11-16T05:00:20.094Z","updated_at":"2025-11-17T10:01:35.941Z","avatar_url":"https://github.com/OCamlPro.png","language":"Rust","funding_links":[],"categories":["\u003ca name=\"diff\"\u003e\u003c/a\u003eDiff"],"sub_categories":[],"readme":"[![Crates.io badge](https://img.shields.io/crates/v/dirdiff?style=flat-square)](https://crates.io/crates/dirdiff-ocamlpro)\n[![github release badge badge](https://img.shields.io/github/v/release/OCamlPro/dirdiff?style=flat-square)](https://github.com/OCamlPro/dirdiff/releases/latest)\n![github downloads badge](https://img.shields.io/github/downloads/OCamlPro/dirdiff/total?style=flat-square)\n\u003cbr/\u003e\n[\u003cimg src=\"resources/red-iron-sponsor.png\" alt=\"This project is proudly sponsored by Red Iron, the Rust division of OCamlPro\" width=\"372\"/\u003e](https://red-iron.eu/)\n\nDirdiff\n=======\n\nDirdiff efficiently computes the differences between two directories. It lists files that either:\n\n1. exist only in one of the directories, or\n2. exist in both directories but with different content.\n\nDirdiff is intended to work on large directories, thanks to multi-threading, and by not trying to display the diff of the files' content.\n\nIt can be up to ten times faster than `diff -qNr`.\n\nInstallation\n------------\n\n## Released binary\n\nPrecompiled binaries for (relatively recent) Linux/amd64 are available for every tagged [release](https://github.com/OCamlPro/dirdiff/releases).\n\n## Install (by compiling from sources) using cargo\n\n```\ncargo install dirdiff-ocamlpro\n```\n\n## Building\n\nDirdiff is written in Rust. To build it you will need to have the rust toolchain installed. \n\nOnce you have obtained the source, the following command will build the binary and put it in the root directory of the repo.\n\n```bash\ncd dirdiff/\ncargo build --release\n# Copy the binary to the root of the repo\nmv target/release/dirdiff dirdiff\n```\n\nUsage\n-----\n\n```\nUsage: dirdiff [OPTIONS] \u003cDIR1\u003e \u003cDIR2\u003e\n\nArguments:\n  \u003cDIR1\u003e\n          First directory to diff from\n\n  \u003cDIR2\u003e\n          Second directory to diff from\n\nOptions:\n  -j, --jobs \u003cJOBS\u003e\n          Number of parallel threads to use.\n\n          Use 0 or no option for auto-detection.\n\n      --check-mtime\n          Whether to check if the mtime is different.\n\n          Only applies to file whose content is otherwise the same, and gets its specific output tag: `[Differ by mtime only]`.\n\n  -L, --follow-symlink\n          Whether to follow symlinks when comparing directories' content\n\n  -H\n          Whether to follow symlinks for program's arguments\n\n  -h, --help\n          Print help information (use `-h` for a summary)\n\n  -V, --version\n          Print version information\n```\n\nSample output\n-------------\n\nColumns are tab separated\n\n```\n[Files differ]\t\"foo/bar\"\n[Present in first dir. only]\t\"subdir_a\"\n[Present in second dir. only]\t\"subdir_b\"\n```\n\nThe diff is outputted to `stdout`.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOCamlPro%2Fdirdiff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FOCamlPro%2Fdirdiff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOCamlPro%2Fdirdiff/lists"}