#内存映射 #内存映射 #内存 #映射 #虚拟内存 #mmap #共享内存

mmap-rs

一个跨平台的、安全的Rust API,用于在调用进程的虚拟地址空间中创建和管理内存映射

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内存管理

Download history 1129/week @ 2024-04-08 889/week @ 2024-04-15 1265/week @ 2024-04-22 1133/week @ 2024-04-29 901/week @ 2024-05-06 1422/week @ 2024-05-13 1298/week @ 2024-05-20 1260/week @ 2024-05-27 1358/week @ 2024-06-03 1334/week @ 2024-06-10 1515/week @ 2024-06-17 936/week @ 2024-06-24 1085/week @ 2024-07-01 1599/week @ 2024-07-08 1960/week @ 2024-07-15 797/week @ 2024-07-22

5,550 每月下载量
22 个crate中使用 (8 直接)

Apache-2.0 OR MIT

120KB
2.5K SLoC

mmap-rs

CI Crates.io Docs

一个跨平台的、安全的Rust API,用于在调用进程的虚拟地址空间中创建和管理内存映射。此crate可用于创建文件映射和匿名映射。此外,此crate支持在具有这些功能的平台上使用大页、锁定物理内存等特性。此外,此crate允许您枚举进程的内存映射。

变更日志

查看 CHANGELOG.

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_NONEPAGE_NOACCESS)。
  • 只读内存映射。
  • 读写内存映射。
  • 可执行内存映射。
  • 用于JIT的RWX内存映射(unsafe - 请参阅文档以获取详细信息)。
  • 可移植指令缓存刷新。
  • 同步和异步刷新。
  • 支持锁定物理内存。
  • 大页支持。
  • 堆栈支持(在Unix上也称为 MAP_STACK)。
  • 支持将内存映射排除在核心转储之外(仅在Unix上)。
  • 预留内存映射,而不是直接提交它们。
  • 拆分和合并内存映射。
  • 查询当前/指定进程的内存区域(针对指定地址或地址范围)。

依赖项

~3-41MB
~631K SLoC