sharkdp

sharkdp/fd

Rust Apache-2.0 Dev Tools

A simple, fast and user-friendly alternative to 'find'

43.7k stars
1.1k forks
active
GitHub +96 / week

43.7k

Stars

1.1k

Forks

176

Open issues

30

Contributors

v10.4.2 10 Mar 2026

AI Analysis

fd is a fast, user-friendly alternative to the Unix find command, emphasizing intuitive syntax, sensible defaults, and parallelized performance. It serves developers and system administrators who perform frequent filesystem searches and value speed and ease-of-use over the full feature set of find. It is not suitable for users who require find's specialized options or portability to minimal POSIX environments.

Dev Tools CLI Tool Discovery value: 3/10
Documentation 9/10
Activity 10/10
Community 9/10
Code quality 9/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 9/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

cli-tool filesystem-search rust-utility command-line-alternative performance-focused
Actively maintained Well documented Popular Niche/specialized use case Beginner friendly Production ready
Deep Analysis · Based on README and public signals
2w ago

fd: A faster, friendlier file search tool that has quietly displaced 'find' for millions of developers

fd is a command-line file finder written in Rust that trades POSIX completeness for ergonomics and speed. It targets developers and power users who find GNU find's syntax unintuitive and slow. Key differentiators: regex-first search, smart case sensitivity, automatic .gitignore respect, colorized output, and parallel execution. With 43k+ stars, broad package manager availability (homebrew, apt, cargo, scoop, nix), and consistent multi-year growth, fd has become a de facto standard recommendation in developer tooling lists. It is mature, actively maintained, and genuinely widely used.

Origin

Created in May 2017 by David Peter (sharkdp), the same author behind bat and hyperfine. It emerged during a wave of Rust-based Unix tool rewrites targeting developer ergonomics over POSIX compatibility.

Growth

Growth was driven by word-of-mouth in developer communities (Reddit r/rust, Hacker News, dotfiles repositories) and heavy recommendation in 'modern Unix tools' blog posts and talks. Integration with fzf as a default file listing backend significantly expanded its user base. Slow but consistent star accumulation (~86/week currently) reflects steady organic adoption rather than viral spikes.

In production

Available in major package managers: Homebrew, apt (Debian/Ubuntu), Nix, Cargo, Scoop, Chocolatey, and others. Listed as a recommended fzf companion in fzf's own documentation. Appears in numerous public dotfiles repos on GitHub. Pre-installed or recommended in several developer-focused Linux distributions. Adoption is well-documented and broad across the developer community.

Code analysis
Architecture

Likely uses Rust's rayon crate for parallelized directory traversal and the ignore crate (also by sharkdp) for .gitignore parsing. Appears to be a well-decomposed CLI binary with regex support via the regex crate. Parallel execution of external commands via -x/-X flags suggests a thread-pool design.

Tests

CI/CD badge is present and active (CICD.yml workflow). A testenv module is visible in README examples suggesting integration tests exist. Specific coverage metrics are not documented in README.

Maintenance

Last push was 2026-06-18, six days before the analysis date — actively maintained. The project is mature (~9 years old) and in a steady maintenance phase rather than rapid feature development, which is appropriate for its scope.

Honest verdict

ADOPT IF: you want a faster, more readable alternative to find for everyday developer workflows and are comfortable with a tool that doesn't cover every POSIX find edge case. AVOID IF: you need POSIX compliance, scripting portability across environments where fd is not installed, or advanced find predicates like -newer, -perm with complex expressions. MONITOR IF: you are evaluating fd for use in CI pipelines or shared scripts where dependency management adds friction.

Independent dimensions

Mainstream potential

7/10

Technical importance

7/10

Adoption evidence

8/10

Risks
  • Not POSIX-compatible: shell scripts using fd are not portable to systems without it installed, limiting use in shared infrastructure or CI without explicit dependency management.
  • Intentionally omits some advanced find functionality; users with complex predicates (e.g., hard link counts, inode queries) will still need GNU find.
  • Project is in mature/maintenance mode — major new features are unlikely, though this is a feature not a bug for a stable utility.
  • Name collision: the binary is named 'fd' but the crate is 'fd-find' due to a pre-existing crate name, which creates minor discoverability friction.
  • Single primary maintainer (sharkdp) — while the project appears healthy, bus-factor risk exists if maintainer availability changes, though the project's stability reduces this concern.
Prediction

fd will continue slow, steady growth as a standard recommendation in developer environment setups. It is unlikely to see dramatic adoption shifts but also unlikely to decline given its stability and broad package manager availability.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

Rust
93%
Shell
6.2%
Makefile
0.6%
Awk
0.2%

Information

Language
Rust
License
Apache-2.0
Last updated
3d ago
Created
112mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Similar repos

sharkdp

sharkdp/hyperfine

Hyperfine is a command-line benchmarking tool written in Rust that measures and...

28.4k Rust Dev Tools
sharkdp

sharkdp/bat

bat is a feature-rich command-line file viewer written in Rust that enhances...

59.6k Rust Dev Tools
jhspetersson

jhspetersson/fselect

fselect is a CLI tool that allows users to find files using SQL-like query...

4.5k Rust Dev Tools
dmtrKovalenko

dmtrKovalenko/fff

FFF is a file search SDK optimized for speed and accuracy, designed for AI...

9.6k Rust Dev Tools
fish-shell

fish-shell/fish-shell

fish is a user-friendly command-line shell for macOS, Linux, and Unix-like...

33.8k Rust Dev Tools
vs. alternatives
GNU find

find is POSIX-standard, universally pre-installed, and supports the full breadth of filesystem queries. fd deliberately sacrifices that completeness for ease of use and speed. fd is not a drop-in replacement but wins for the common 80% of use cases.

fzf

fzf is an interactive fuzzy finder, not a file search tool per se. The two are complementary: fd is commonly used as fzf's file listing backend via FZF_DEFAULT_COMMAND. They solve adjacent problems and are frequently used together.

ripgrep (rg)

ripgrep searches file contents; fd searches file names and paths. Both share the .gitignore-aware, parallelized-Rust design philosophy and are frequently recommended together as a pair.

fff (dmtrKovalenko)

fff appears to be a file manager/finder with a different interaction model. Based on available metadata it appears less mature and has a narrower, different use case than fd's headless search.

locate / mlocate

locate uses a pre-built database for instant results but requires scheduled index updates and misses recently created files. fd is always up-to-date by traversing live filesystems, at the cost of slightly more CPU per query.