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 • Rust 包仓库 11622/week @ 2024-05-03 • Rust 包仓库 15555/week @ 2024-05-10 • Rust 包仓库 10684/week @ 2024-05-17 • Rust 包仓库 11996/week @ 2024-05-24 • Rust 包仓库 17858/week @ 2024-05-31 • Rust 包仓库 19838/week @ 2024-06-07 • Rust 包仓库 10933/week @ 2024-06-14 • Rust 包仓库 12998/week @ 2024-06-21 • Rust 包仓库 17795/week @ 2024-06-28 • Rust 包仓库 19373/week @ 2024-07-05 • Rust 包仓库 13298/week @ 2024-07-12 • Rust 包仓库 13503/week @ 2024-07-19 • Rust 包仓库 16241/week @ 2024-07-26 • Rust 包仓库 18808/week @ 2024-08-02 • Rust 包仓库 16614/week @ 2024-08-09 • Rust 包仓库 20615/week @ 2024-08-16 • Rust 包仓库

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