vm-memory
Safe abstractions for accessing the VM physical memory
0.18.0
6.8M downloads/mo
#3850 most downloaded on crates.io
rust-vmm/vm-memory
What this package is like to depend on
Last release 8 months ago
11 Dec 2025
Release timing varies
gaps range from 9 days to 7 months
Some releases are documented
notes for 10 of 30 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
30 releases · first in 2020
4 releases in the last 12 months
see the full history below
Release timeline
30 releases · Mar 2020 to Dec 2025Releases
latest 30-
0.18.002 Dec 2025Release notes
Open source →Changed
This release includes a major change to the
vm-memoryAPI in order to support memory access permissions. The previousGuestMemorytrait is now renamed toGuestMemoryBackend, andGuestMemoryhas a completely new definition. However, common interfaces such asGuestAddressSpaceandBytesremain onGuestMemory; therefore, all callers that just use theBytesinterface remain completely unchanged.- [#362] Rename
GuestMemorytoGuestMemoryBackend,IoMemorytoGuestMemory
Added
- [#327] I/O virtual memory support via
IoMemory,IommuMemory, andIommu/Iotlb
Fixed
- [#361] clippy: allow mut_from_ref
- [#362] Rename
-
0.17.211 Dec 2025Release notes
Open source →This release re-packages the code of vm-memory 0.18.0 while preserving
API compatibility with 0.17.1. All the actual implementation comes from
version 0.18.0, which this crate re-exports withGuestMemoryBackend
changed back toGuestMemory. -
0.17.111 Oct 2025 -
0.17.006 Oct 2025Release notes
Open source →Changelog
[v0.17.0]
Added
- [#311] Allow compiling without the ReadVolatile and WriteVolatile implementations
- [#312]
GuestRegionContainer, a generic container ofGuestMemoryRegions, generalizingGuestMemoryMmap(which
is now a type alias forGuestRegionContainer<GuestRegionMmap>). - [#338] Make
GuestMemoryAtomicalways implementClone. - [#338] Make
GuestAddressSpacea subtrait ofClone. - [#339] Add
GuestMemory::get_slices()
Changed
- [#307] Move
read_volatile_from,read_exact_volatile_from,
write_volatile_toandwrite_all_volatile_tofunctions from theGuestMemorytrait to theBytestrait. - [#312]: Give
GuestMemory::find_regionandGuestMemory::num_regions
a default implementation, based on linear search. - [#312]: Provide a marker trait,
GuestMemoryRegionBytes, which enables a default implementation ofBytes<MemoryRegionAddress>
for aGuestMemoryRegionif implemented. - [#312]: Adjust error types returned from
GuestMemoryMmap::from_ranges[_with_files]
andGuestRegionMmap::from_rangeto be separate from the error type returned byGuestRegionCollectionfunctions.
Change return type ofGuestRegionMmap::newfromResulttoOption. - [#324]
GuestMemoryRegion::bitmap()now returns aBitmapSlice. Accessing the full bitmap is now possible only if the type of the memory region is know, for example withMmapRegion::bitmap(). - [#339] Implement
Bytes::load()andBytes::store()withget_slices()instead ofto_region_addr()
Removed
- [#307] Remove deprecated functions
Bytes::read_from,Bytes::read_exact_from,
Bytes::write_to,Bytes::write_all_to,GuestMemory::as_slice,GuestMemory::as_slice_mut,GuestMemory::with_regions,
GuestMemory::with_regions_mut,GuestMemory::map_and_fold,VolatileSlice::as_ptr,VolatileRef::as_ptr, and
VolatileArrayRef::as_ptr. - [#320] Drop
check_file_offsetcheck when usingMmapRegionBuilder.
Themmap(2)syscall itself already validates that offset and length are valid, and trying to replicate this check
in userspace ended up being imperfect.
Fixed
- [#339] Fix
Bytes::read()andBytes::write()not to ignoretry_access()'scountparameter
Deprecated
- [#349] Deprecate
GuestMemory::try_access(). UseGuestMemory::get_slices()instead.
-
0.16.230 May 2025 -
0.16.111 Nov 2024Release notes
Open source → -
0.16.009 Oct 2024Release notes
Open source →Changelog
Upcoming version
[v0.16.0]
Added
Changed
- [#278 Remove
GuestMemoryIteratortrait, and instead haveGuestMemory::iter()returnimpl Iterator.
- [#278 Remove
-
0.15.005 Sep 2024Release notes
Open source →Changelog
[v0.15.0]
Added
- [#270] atomic_bitmap: add capability to reset bits range
- [#285] Annotated modules in lib.rs to indicate their feature
dependencies such that it is reflected in the docs, enhancing documentation clarity for users.
Changed
- [#275] Fail builds on non 64-bit platforms.
Fixed
- [#279] Remove restriction from
read_volatile_fromandwrite_volatile_into
that made it copy data it chunks of 4096.
-
0.14.111 Mar 2024Release notes
Open source →Changelog
[v0.14.1]
Fixed
- [#279] Remove restriction from
read_volatile_fromandwrite_volatile_intothat made it copy data it chunks of 4096.
- [#279] Remove restriction from
-
0.14.005 Jan 2024Release notes
Open source →Changelog
[v0.14.0]
Added
- [#266] Derive
Debugfor several types that were missing it.
Changed
- [#274] Drop
Defaultas requirement forByteValued.
- [#266] Derive
-
0.13.111 Oct 2023Nothing published for this version
-
0.13.022 Sep 2023Nothing published for this version
-
0.12.229 Aug 2023Nothing published for this version
-
0.12.108 Aug 2023Nothing published for this version
-
0.12.029 Jun 2023Nothing published for this version
-
0.11.019 Apr 2023Nothing published for this version
-
0.10.011 Nov 2022Nothing published for this version
-
0.9.016 Aug 2022Nothing published for this version
-
0.8.007 Apr 2022Nothing published for this version
-
0.7.020 Oct 2021Nothing published for this version
-
0.6.005 Aug 2021Nothing published for this version
-
0.5.010 Feb 2021Nothing published for this version
-
0.4.020 Nov 2020Nothing published for this version
-
0.3.002 Oct 2020Nothing published for this version
-
0.2.205 Aug 2020Nothing published for this version
-
0.2.128 May 2020Nothing published for this version
-
0.2.019 Mar 2020Nothing published for this version
-
0.1.205 Aug 2020Nothing published for this version
-
0.1.128 May 2020Nothing published for this version
-
0.1.003 Mar 2020Nothing published for this version