4 个版本 (2 个稳定版本)

2.0.0 2024年6月16日
1.0.0 2024年1月4日
0.2.0 2020年9月7日
0.1.0 2020年8月31日

#73异步

Download history 11622/week @ 2024-05-03 15555/week @ 2024-05-10 10684/week @ 2024-05-17 11996/week @ 2024-05-24 17858/week @ 2024-05-31 19838/week @ 2024-06-07 10933/week @ 2024-06-14 12998/week @ 2024-06-21 17795/week @ 2024-06-28 19373/week @ 2024-07-05 13298/week @ 2024-07-12 13503/week @ 2024-07-19 16241/week @ 2024-07-26 18808/week @ 2024-08-02 16614/week @ 2024-08-09 20615/week @ 2024-08-16

75,939 每月下载次数
用于 34 个 Crates (15 个直接使用)

Apache-2.0

19KB
338 代码行

Github CI docs.rs

async-walkdir

为 Rust 实现的异步目录遍历。

基于 async-fsblocking,它使用线程池来处理阻塞 I/O。请参考这些 Crates 以了解其理由。此 Crates 与异步运行时 tokioasync-stdsmol 以及基于 futures 0.3 的任何运行时兼容。

我们不打算像 Walkdir Crates 在同步世界中那样功能丰富,但请不要犹豫,提出问题或提交 PR。

示例

use async_walkdir::WalkDir;
use futures_lite::future::block_on;
use futures_lite::stream::StreamExt;

block_on(async {
    let mut entries = WalkDir::new("my_directory");
    loop {
        match entries.next().await {
            Some(Ok(entry)) => println!("file: {}", entry.path().display()),
            Some(Err(e)) => {
                eprintln!("error: {}", e);
                break;
            },
            None => break,
        }
    }
});

依赖项

~1.3–1.8MB
~33K SLoC