7 个版本 (重大变更)
0.6.1 | 2024年1月22日 |
---|---|
0.6.0 | 2023年6月20日 |
0.5.0 | 2023年3月4日 |
0.4.0 | 2022年9月12日 |
0.1.0 | 2021年10月27日 |
#64 在 内存管理
5,550 每月下载量
在 22 个crate中使用 (8 直接)
120KB
2.5K SLoC
mmap-rs
一个跨平台的、安全的Rust API,用于在调用进程的虚拟地址空间中创建和管理内存映射。此crate可用于创建文件映射和匿名映射。此外,此crate支持在具有这些功能的平台上使用大页、锁定物理内存等特性。此外,此crate允许您枚举进程的内存映射。
变更日志
Rust版本要求(MSRV)
mmap-rs自0.6.1版本起支持 rustc版本1.67或更高。
支持的平台
第1级(CI中构建和测试运行)
x86_64-pc-windows-msvc
x86_64-unknown-linux-gnu
i686-unknown-linux-gnu
aarch64-unknown-linux-gnu
armv7a-unknown-linux-gnueabihf
x86_64-apple-darwin
x86_64-unknown-freebsd
第2级(CI中构建运行)
i686-pc-windows-msvc
aarch64-pc-windows-msvc
aarch64-linux-android
armv7-linux-androideabi
x86_64-linux-android
i686-linux-android
aarch64-apple-ios
第3级(没有CI,但应该可以工作)
aarch64-apple-darwin
x86_64-apple-ios
i686-unknown-freebsd
特性
- 匿名内存映射。
- 文件支持的内存映射 (
unsafe
- 请参阅文档以获取详细信息)。 - 写时复制与共享内存映射。
- 不可访问的内存映射(使用
PROT_NONE
和PAGE_NOACCESS
)。 - 只读内存映射。
- 读写内存映射。
- 可执行内存映射。
- 用于JIT的RWX内存映射(
unsafe
- 请参阅文档以获取详细信息)。 - 可移植指令缓存刷新。
- 同步和异步刷新。
- 支持锁定物理内存。
- 大页支持。
- 堆栈支持(在Unix上也称为
MAP_STACK
)。 - 支持将内存映射排除在核心转储之外(仅在Unix上)。
- 预留内存映射,而不是直接提交它们。
- 拆分和合并内存映射。
- 查询当前/指定进程的内存区域(针对指定地址或地址范围)。
依赖项
~3-41MB
~631K SLoC