finds.dev← search

// the find

BurntSushi/walkdir

★ 1,549 · Rust · Unlicense · updated Jun 2026

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.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →