9 个版本
0.2.0 | 2024 年 5 月 20 日 |
---|---|
0.1.0 | 2023 年 12 月 6 日 |
0.0.8 | 2023 年 6 月 24 日 |
#665 在 文件系统
用于 yeet-yoink
35KB
635 行
共享文件
✨ 基于磁盘的单写多读进程内文件共享 ✨
提供异步单写多读文件操作的功能,其中多个并发读取器需要从当前被同一进程写入的文件中读取。预期用例是具有最小(进程)内存要求的字节流并行处理,例如在处理大型文件的 Web 服务中。
通常,在写入文件的同时读取文件会导致读取流提前结束,因为到达了文件末尾;此 crate 的目的是防止这种情况发生。
任何实现了 crate 的 SharedFileType
trait 的文件类型都可以用作后端,该 trait 又要求实现 tokio::io::AsyncWrite
和 tokio::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