// the find
BurntSushi/walkdir
Rust library for walking directories recursively.
A small Rust crate for recursively walking directory trees, with explicit control over symlink following, open file descriptor limits, and pruning subtrees via a filter_entry iterator adapter. Useful for anyone writing CLI tools, linters, or build scripts in Rust that need to traverse a filesystem without hand-rolling recursion.
Pruning via filter_entry is the standout feature — you can skip entire directories (e.g. .git, node_modules) without descending into them first, which matters a lot on large trees. Bounded file descriptor usage is called out explicitly, so it won't blow past ulimits on deep trees the way a naive recursive walker can. It's an iterator, so it composes with the rest of the standard iterator adapters (take, skip_while, map) instead of forcing callbacks.
No async support — if your project is built on tokio this blocks a thread per walk, and you'd reach for a different crate like async-walkdir instead. Error handling returns a Result per entry but the README's own examples show silently swallowing errors with filter_map(|e| e.ok()), which is an easy footgun for anyone copy-pasting from the docs. No built-in gitignore/ignore-file support, so if you want to respect .gitignore while walking you're pulling in the separate `ignore` crate anyway (same author, but still another dependency). The crate is feature-complete and stable but essentially unmaintained in terms of new capability — it does one thing and hasn't grown, which is fine until you need something it doesn't do.