2 个版本

0.0.7 2022 年 9 月 16 日
0.0.6 2022 年 9 月 16 日

#759并发


用于 serde_json_merge

自定义许可协议

65KB
1.5K SLoC

par-dfs

build status test status benchmarks crates.io docs.rs

Rust 中的并行、串行和异步 DFS 和 BFS 遍历迭代器。

[dependencies]
par-dfs = "0"

用法

有关用法示例,请参阅示例文档

示例

cargo run --example async_fs --features async -- --path ./
cargo run --example sync_fs --features sync,rayon -- --path ./

文档

RUSTDOCFLAGS="--cfg docsrs" cargo +nightly doc --all-features

代码风格检查

cargo clippy --tests --benches --examples -- -Dclippy::all -Dclippy::pedantic

基准测试

cargo install cargo-criterion
# full benchmark suite
cargo criterion --features full
# sync benchmarks only
cargo criterion --features sync -- sync
# dfs benchmarks only
cargo criterion --features full -- dfs

CI 的基准测试报告可在此处获取。

致谢

动态增长图遍历的rayon::iter::ParallelIterator实现基于tavianator的博客文章中的出色工作tavianator's blog post

futures_util::stream::Buffered的实现也有助于异步流的开发。

待办事项

  • 可能合并 FastNode 和 Node 特性
  • 在文档中添加示例

依赖项

~0.3–1.2MB
~26K SLoC