19 个版本 (12 个重大变更)

0.14.1 2024 年 1 月 11 日
0.13.0 2023 年 6 月 30 日
0.12.2 2023 年 3 月 29 日
0.12.0 2022 年 11 月 27 日
0.3.0 2021 年 3 月 5 日

#528Rust 模式


用于 nameless

Apache-2.0…

86KB
2K SLoC

io-arrays

随机访问 I/O

Github Actions CI Status crates.io page docs.rs docs

将 I/O 数组想象成一个 Vec<u8>,它存在于程序外部。你可以对它进行索引并复制数据进出。你可以从后端向它追加数据或缩小它。

在 I/O 术语中,I/O 数组是 "文件" 的抽象。它支持在任意偏移量处进行 I/O、追加和截断。你可以使用 ReadAt::read_via_stream_at 以流式方式从它读取。

待办事项:以流式方式向数组写入尚不支持。

该包定义了 ReadAtWriteAtEditAt 特性,它们定义了随机访问或可寻址设备的接口,如普通文件、块设备、磁盘分区和内存缓冲区。

它还定义了 ArrayReaderArrayWriterArrayEditor 类型,它们实现了上述特性,并可以从任何类似文件的类型构建。在 Posix-like 平台上,随着对 WASI 的开发支持,这些类型仅包含一个文件描述符(并实现 AsRawFd),以及任何用于安全保留文件描述符所需资源。在 Windows 上,它们包含一个文件句柄(并实现 AsRawHandle)。

由于这些 crate 尚未包含所需的 I/O 安全特性实现,异步 std 的支持暂时禁用。

依赖关系

~3–12MB
~143K SLoC