sharkdp/fd
70.9
Strong · 26 September 2026
4.6k
lines of production code
Rust
primary language
4
measurements over time
What this system is
This system is a high-performance, parallel file finder implemented in Rust, designed as a fast and user-friendly alternative to traditional shell-based search tools. It provides robust file discovery capabilities with advanced filtering options for size, time, and ownership, alongside support for regex pattern matching and logical conjunctions. The tool also enables direct command execution on search results through batch or individual processing modes. To ensure reliability and ease of use, it includes comprehensive shell completions, formal documentation, and a modernized testing infrastructure.
Features
Add --exec and --exec-batch command execution
Users can now execute external commands on search results using the new --exec (one-by-one) and --exec-batch (batched) flags. This feature introduces a new execution module that handles command generation, output buffering, and exit code aggregation, allowing users to pipe or process found files directly through other tools.
src/exec · high confidence
Add native Zsh completion and fix shell completions for fd and fdfind
Users of Zsh now receive native tab-completion support for the \fd\ command, including intelligent filtering for file types (such as block and character devices), options like \--hyperlink\ and \--prune\, and argument grouping. The \fdfind\ alias is also fully supported in Zsh, Bash, and Fish, with specific fixes applied to ensure correct completion behavior for flags like \--version\ and proper alias resolution in Debian packages.
contrib · high confidence
Add official man page and release documentation
The documentation directory now includes a formal man page (fd.1) covering command-line options, a release checklist to guide maintainers through version bumps and publishing, and a script to generate an animated screencast for the README. A .gitattributes file is also added to mark the new SVG logo as vendored.
doc · high confidence
Automated release and packaging scripts
New shell scripts have been added to automate the release process: create-archive.sh builds distribution archives (tar.gz/zip) for various targets, create-deb.sh generates Debian packages with correct architecture detection, conflict handling, and shell completion symlinks, version-bump.sh automates version updates in Cargo.toml and documentation, and update-help.awk regenerates CLI help text in documentation.
scripts · high confidence
Initial project scaffolding and documentation
This change establishes the foundational structure for the fd project by adding the initial source code, build configuration (Makefile, Cross.toml, rustfmt.toml), and comprehensive documentation (README, CHANGELOG, CONTRIBUTING, SECURITY). It also sets the licensing terms under MIT/Apache-2.0 and configures build artifacts (target, autocomplete, package) to be ignored by Git.
(repo-wide) · high confidence
Initial release of fd (v8.11.0) in Rust
The tool has been rewritten in Rust, replacing the previous shell-script implementation. This change introduces a new CLI structure using clap, a parallel directory walker, and support for features such as colorized output, hyperlinks, and custom format templates.
src · high confidence
New file filtering capabilities for size, time, and ownership
The \src/filter\ module has been introduced to centralize and expand file filtering logic. Users can now filter results by file size using the \--size\ flag, supporting both SI (e.g., \+1k\) and binary (e.g., \+1ki\) prefixes for minimum, maximum, and exact matches. Time-based filtering via \--changed-within\ and \--changed-before\ has been refactored to use the \jiff\ library, enabling more robust parsing of relative spans, absolute dates, and UTC timestamps (prefixed with \@\). On Unix systems, a new \--owner\ filter allows matching files by user or group ID, supporting negation with the \!\ prefix (e.g., \!root\) and handling both numeric IDs and names.
src/filter · high confidence
Test coverage
Integration tests for the \--and\ flag and pattern matching; New Rust-based integration test environment.
Dependencies
Update Rust toolchain and dependency versions for fd 10.5.0
The fd-find project has updated its minimum supported Rust version (MSRV) to 1.90.0 and upgraded the Rust edition to 2024. Several core dependencies have been bumped to their latest versions, including clap to 4.6.1, regex to 1.12.2, and nix to 0.31.1, while replacing the chrono library with jiff for time handling. The Cargo.lock file has been regenerated to reflect these changes, ensuring consistent builds across the updated dependency tree.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 71.
Lenses
- Code Health 91
- Architecture 99
- Maturity 55
- Readiness 79
- Security 91
Changes since last survey
- 300 commits — 255 feature/other, 45 fixes
By area
- (repo) — 120 commits
- (root) — 101 commits
- .github/workflows — 24 commits
- src/cli.rs — 10 commits
- tests/tests.rs — 9 commits
- doc/fd.1 — 7 commits
- src/exec — 5 commits
- src/walk.rs — 5 commits
- src/main.rs — 3 commits
- src/config.rs — 2 commits
- src/dir_entry.rs — 2 commits
- .cargo/config.toml — 1 commit
- .github/dependabot.yml — 1 commit
- .sisyphus/drafts — 1 commit
- contrib/completion — 1 commit
- doc/release-checklist.md — 1 commit
- src/error.rs — 1 commit
- src/filesystem.rs — 1 commit
- src/filter — 1 commit
- src/hyperlink.rs — 1 commit
Notable commits
- fix: Add changelog entry for Windows hyperlink fix
- fix: Fix Windows hyperlinks for paths with spaces
- fix: Fix completions for alias fdfind in deb package for bash, zsh and fish.
- fix: Fix inconsistent code fence language in README.md
- fix: Fixes for tmccombs review comments.
- fix: Merge pull request #1833 from tmccombs/build-fixes
- fix: Merge pull request #1839 from andstepan/fix/read-bin-from-environment
- fix: Merge pull request #1872 from josephadamsdev/fix-1843-windows-hyperlink-slash
- fix: Merge pull request #1889 from skane-lukas/issue-1888-fix-symlink-bash-completion
- fix: Merge pull request #1904 from tmccombs/fix-deploy
- fix: Merge pull request #1921 from rexkirshner/fix-exclude-value-name-glob
- fix: Merge pull request #1928 from tmccombs/full-path-fixes
- fix: Merge pull request #1934 from Rohan5commit/docs/fix-contributing-intro-20260319
- fix: Merge pull request #1941 from tmccombs/fix-attest
- fix: Merge pull request #1975 from SAY-5/fix/pattern-path-separator-v2
- fix: Merge pull request #1979 from YoshKoz/fix/pwsh-placeholder-docs
- fix: Merge pull request #2036 from greymoth-jp/fix/and-pattern-path-separator
- fix: Merge pull request #2039 from hexbinoct/fix/min-depth-broken-symlink
- fix: Merge pull request #2040 from bonanza127/fix-readme-number-format
- fix: Merge pull request #2064 from WilliamLeony/fix-readme-bash-fence
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
sharkdp/fd was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 26 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit ce97e473ebaec49697c07daa50a7bc2b32f713d2 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-7c1cb6328e11.