1个不稳定版本
0.6.0 | 2023年11月24日 |
---|
#647 在 内存管理
38 每月下载量
在 reloaded-memory-buffers 中使用
120KB
2.5K SLoC
mmap-rs
一个跨平台的、安全的Rust API,用于创建和管理调用进程虚拟地址空间中的内存映射。此crate可用于创建文件映射和匿名映射。此外,此crate在提供这些功能的平台上支持使用大页面、锁定物理内存等特性。此外,此crate允许您枚举进程的内存映射。
支持的平台
一级(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
二级(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
三级(没有CI,但应该可以工作)
aarch64-apple-darwin
x86_64-apple-ios
i686-unknown-freebsd
特性
- 匿名内存映射。
- 基于文件的内存映射(
unsafe
- 详细内容请参阅文档)。 - 写时复制与共享内存映射。
- 不可访问的内存映射(使用
PROT_NONE
和PAGE_NOACCESS
)。 - 只读内存映射。
- 读写内存映射。
- 可执行内存映射。
- 用于JIT的RWX内存映射(
unsafe
- 详细内容请参阅文档)。 - 可移植指令缓存刷新。
- 同步和异步刷新。
- 支持锁定物理内存。
- 大页面支持。
- 堆栈支持(在Unix上称为
MAP_STACK
)。 - 支持从核心转储中排除内存映射(仅限Unix)。
- 预留内存映射,而不是直接提交。
- 拆分和合并内存映射。
- 查询当前/给定进程的内存区域(对于给定的地址或地址范围)。
依赖关系
~3–40MB
~623K SLoC