NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #341 most downloaded on crates.io
Cross-platform Rust API for memory-mapped file IO
Last release 3 months ago
22 Jun 2026
Release timing varies
gaps range from 8 days to 10 months
Nearly every release is documented
notes for 34 of 34 stable releases
2 versions withdrawn
withdrawn after publishing
7 years old
36 releases · first in 2020
One column per quarter.
Fix unchecked pointer arithmatic in advice_range , unchecked_advise_range , flush_range and flush_async_range .
advice_range, unchecked_advise_range, flush_range and flush_async_range.advice_range, unchecked_advise_range, flush_range and flush_async_range.Fix compilation on AIX targets. @xingxue-ibm
ErrorKind::Unsupported on unsupported platforms to allow reliable runtime detection.
@daxpeddaFix compilation on visionOS (and other apple operating systems). @sinkingsugar
isize::MAX fits in a u64.
@ThomasHabetsMmapOptions::no_reserve_swap. @nhtyy
MmapOptions::no_reserve_swap.
@nhtyyFix incomplete validation of mapping length, which could lead to violation of safety requirements of slice::from_raw_parts on 32-bit platforms. @nabij
slice::from_raw_parts on 32-bit platforms.
@nabijaczleweliAdvise::is_supported and UncheckedAdvice::is_supported. Linux only. @xzfc
Advise::is_supported and UncheckedAdvice::is_supported. Linux only.
@xzfcThe libc crate >= 0.2.151 is required now.
libc crate >= 0.2.151 is required now.libc crate.### Fixed - Build on Android.
### Fixed - Build on FreeBSD.
Added MmapOptions::huge method to support mapping hugetlb. Linux only. @ollie-etl @oliverbunting
MmapOptions::huge method to support mapping hugetlb. Linux only.
@ollie-etl
@oliverbuntingThe Advice struct was split into two enums: Advice and UncheckedAdvice. Advice can be passed to safe advise and advise_range methods. And UncheckedAdv
Advice struct was split into two enums: Advice and UncheckedAdvice.<br>
Advice can be passed to safe advise and advise_range methods.
And UncheckedAdvice can be passed to unsafe unchecked_advise
and unchecked_advise_range methods.<br>
@adamreicholdThe Advice type is a struct and not an enum now. @adamreichold
Advice type is a struct and not an enum now.
@adamreicholdAdvise variants were unsound and now require unsafe to be constructed.
@adamreicholdMapping beyond 4GB offset on 32 bit glibc. Linux-only. @lvella
Mmap::remap, MmapMut::remap and MmapRaw::remap. Linux-only. @Phantomical
Mmap::remap, MmapMut::remap and MmapRaw::remap. Linux-only.
@PhantomicalAdvice::PopulateRead and Advice::PopulateWrite. Linux-only.
@Jesse-BakkerAlignment for empty files on Windows. @timvisee
Add MmapOptions::map_raw_read_only to avoid intermediate invalid Mmap instances. @adamreichold
MmapOptions::map_raw_read_only to avoid intermediate invalid Mmap instances.
@adamreicholdlock() and unlock methods require &self and not &mut self now. @timvisee
lock() and unlock methods require &self and not &mut self now.
@timviseeMmapOptions::map_anon accounts for populate on Linux now. @jsgf
MmapOptions::map_anon accounts for populate on Linux now.
@jsgfFrom for MmapRaw and From for MmapRaw. @swlynch99
From<Mmap> for MmapRaw and From<MmapMut> for MmapRaw.
@swlynch99Mmap::advise_range, MmapMut::advise_range, MmapRaw::advise_range.
@ho-229MmapRaw::advise, MmapRaw::lock and MmapRaw::unlock. @diwic
MmapRaw::advise, MmapRaw::lock and MmapRaw::unlock.
@diwicMmapMut::make_exec documentation.Simplify file size retrieving code. @saethlin
Memory locking and unlocking. See Mmap::lock, Mmap::unlock, MmapMut::lock and MmapMut::unlock. @vmx
Mmap::lock, Mmap::unlock,
MmapMut::lock and MmapMut::unlock.
@vmxLimit mapping length to isize::MAX to prevent undefined behavior on calling std::from_raw_parts. Technically affects only 32-bit systems. @adamreichol
isize::MAX to prevent undefined behavior
on calling std::slice::from_raw_parts. Technically affects only 32-bit systems.
@adamreicholdAdd madvice operations specific to Darwin. @turbocool3r
Advice enum. @nyuriktempfile crate instead of tempdir in tests.
@alexanderkjallMmap::advise and MmapMut::advise. @nyurik
Mmap::advise and MmapMut::advise. @nyurikflush, flush_async, flush_range and flush_async_range to MmapRaw matching the corresponding methods on MmapMut. @cberner
flush, flush_async, flush_range and flush_async_range to MmapRaw matching
the corresponding methods on MmapMut.
@cbernerExplicitly call fstat64 on Linux, emscripten and l4re targets. @adamreichold
fstat64 on Linux, emscripten and l4re targets.
@adamreicholdMmapOptions accepts any type that supports RawHandle/RawFd returning now. This allows using memmap2 not only with Rust std types, but also with async-
MmapOptions accepts any type that supports RawHandle/RawFd returning now.
This allows using memmap2 not only with Rust std types, but also with
async-std one.
@adamreicholdstd::os::windows::io::AsRawHandle directly, without relying on std::fs::File.
@adamreicholdOptional `StableDeref` support. @SimonSapin
StableDeref support.
@SimonSapinInteger overflow during file length calculation on 32bit targets.
MmapOptions allows mapping using Unix descriptors and not only std::File now. @mripard
MmapOptions allows mapping using Unix descriptors and not only std::fs::File now.
@mripardAllow compilation on unsupported platforms. The code will panic on access just like in std. @jcaesar
std.
@jcaesarMmapOptions::populate. @adamreichold
MmapOptions::populate. @adamreicholdflush_async to match flush.
@adamreicholdMmapOptions::map_raw and MmapRaw. @diwic
MmapOptions::map_raw and MmapRaw. @diwicMSRV is 1.31 now (edition 2018).
map_copy_read_only. @zseriUse LICENSE-APACHE instead of README.md for some tests since it's immutable.
LICENSE-APACHE instead of README.md for some tests since it's immutable.winapi dependency. memmap-rs/pull/89Your coding agent can read these notes before it upgrades. Set up the MCP server →