9 个版本

0.2.0 2024 年 5 月 20 日
0.1.0 2023 年 12 月 6 日
0.0.8 2023 年 6 月 24 日

#665文件系统


用于 yeet-yoink

EUPL-1.2

35KB
635

共享文件

基于磁盘的单写多读进程内文件共享


Crates.io Crates.io codecov

提供异步单写多读文件操作的功能,其中多个并发读取器需要从当前被同一进程写入的文件中读取。预期用例是具有最小(进程)内存要求的字节流并行处理,例如在处理大型文件的 Web 服务中。

通常,在写入文件的同时读取文件会导致读取流提前结束,因为到达了文件末尾;此 crate 的目的是防止这种情况发生。

任何实现了 crate 的 SharedFileType trait 的文件类型都可以用作后端,该 trait 又要求实现 tokio::io::AsyncWritetokio::io::AsyncRead

功能

  • async-tempfile:通过 async-tempfile crate 启用 SharedTemporaryFile 类型。由于这是 crate 最初打算使用的方式,因此默认启用此功能。

示例

请参阅 tests/parallel_write_read.rs 以获取使用示例。该示例需要 async-tempfile crate 功能。要运行它,例如使用:

cargo test --test parallel_write_read --features=async-tempfile

依赖关系

~2.9–4.5MB
~76K SLoC