ferralk
ferralk is a safe, portable filesystem walker with byte-first,
root-relative glob filtering. It re-exports ferralk-glob, so walker patterns
and standalone matchers use the same component-aware language.
use ferralk::{ErrorPolicy, WalkOptions, Walker};
let result = Walker::new(".")
.include("src/**/*.rs")?
.exclude("**/generated/**")?
.respect_git_ignore(true)
.threads(4)
.error_policy(ErrorPolicy::Collect)
.options(WalkOptions::default().files_only(true).sort(true))
.collect()?;
for entry in result.entries() {
println!("{}", entry.path().display());
}
for error in result.errors() {
eprintln!("{error}");
}
# Ok::<(), Box<dyn std::error::Error>>(())
Paths remain native Path values throughout traversal; use
WalkEntry::path_bytes() only when passing a path to a byte-first matcher.
Portable std::fs traversal is the default, with optional native Linux and
macOS backends for platform-specific performance work.
See the crate documentation for the full API and the Ferralk repository for compatibility and development documentation.