BurntSushi / walkdir

Rust library for walking directories recursively.
The Unlicense
1.24k stars 107 forks source link

Join efforts with Walker #1

Closed passcod closed 8 years ago

passcod commented 8 years ago

I'm the author / publisher of the Walker crate. Its signature is the same as the recursive directory walker that was in the pre-1.0 stdlib. A brief search of the crates index suggests it is currently the only such library usable in stable.

Unless you envision walkdir as a very different library, how about we join these two up, and provide a seamless upgrade for all who are already using Walker into a better algorithm, more efficient implementation, etc?

BurntSushi commented 8 years ago

My intention actually is to get this merged back into std::fs---I'm just prototyping out of tree for now. I sketched out a rough plan here: https://github.com/rust-lang/rust/issues/27707#issuecomment-140936777 (This basically implies completely scratching the current implementation and coming up with a new API.)

I'm currently doing a survey of other recursive directory walkers. I haven't written anything up on it, but so far, I've been most impressed by Java's implementation in nio (but nftw in glibc is a close second).

passcod commented 8 years ago

Fair enough! Walker will deprecate when this gets into the tree, then :)

BurntSushi commented 8 years ago

OK, I'm done my initial design work I think. It did end up becoming quite different than the existing fs::walk_dir, however, the implementation was quite a bit more complex than I imagined. I'm not quite sure if it's ready for std yet, which means it will probably bake in crates.io first: https://crates.io/crates/walkdir