#byte-slice #iovec #memory-safe #api-bindings #os #vectored-io

无需 std ioslice

无需 std 的 I/O 字节切片,可选与 std 和 lbc 兼容的 ABI

11 个不稳定版本

0.6.0 2024年3月18日
0.6.0-alpha.22021年4月27日
0.5.1 2020年10月11日
0.4.0 2020年9月15日
0.1.0 2020年9月8日

#167Unix API

Download history 78/week @ 2024-04-22 76/week @ 2024-04-29 84/week @ 2024-05-06 163/week @ 2024-05-13 86/week @ 2024-05-20 100/week @ 2024-05-27 86/week @ 2024-06-03 114/week @ 2024-06-10 143/week @ 2024-06-17 108/week @ 2024-06-24 107/week @ 2024-07-01 61/week @ 2024-07-08 129/week @ 2024-07-15 82/week @ 2024-07-22 197/week @ 2024-07-29 156/week @ 2024-08-05

568 每月下载量
23 个 crate(直接使用3个) 中使用

MIT 许可证

84KB
1.5K SLoC

ioslice-rs

Build Status Crates.io Documentation

提供与常规切片实现大多数特征的 I/O 字节切片类型,并与 structiovecWSABUF 兼容的 ABI。此外,还包括处理安全代码中未初始化内存的各种实用函数和特征。


lib.rs:

#![no_std] 友好的包装器,覆盖 std::io::IoSlicestd::io::IoSliceMut,分别是共享切片和独占切片,并且与系统类型的 I/O 向量兼容。

内部,结构将根据 crate 功能存储以下内容

  • std - 直接包装 std::io::IoSlice,以及访问器以及转换函数和 From 实现。
  • libc(以及#[cfg(unix)])- 在支持的平台直接包装libc::iovec。还存储了一个标记,以安全地包装原始指针,并强制使用此API遵循借用检查器规则。
  • (none) - 包装普通切片,可能不具有与std或libc类型相同的ABI保证。

IoSlice将实现AsRef<[u8]>Borrow<[u8]>Deref<Target = [u8]>,无论使用哪些功能,只要切片被标记为已初始化。

依赖项

~190KB