PackageTrack
Sign in Get early access

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 2025
2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 30
  1. 0.18.0 02 Dec 2025
    Release notes

    This release includes a major change to the vm-memory API in order …

    Open source →
    Release notes

    Changed

    This release includes a major change to the vm-memory API in order to support memory access permissions. The previous GuestMemory trait is now renamed to GuestMemoryBackend, and GuestMemory has a completely new definition. However, common interfaces such as GuestAddressSpace and Bytes remain on GuestMemory; therefore, all callers that just use the Bytes interface remain completely unchanged.

    • [#362] Rename GuestMemory to GuestMemoryBackend, IoMemory to GuestMemory

    Added

    • [#327] I/O virtual memory support via IoMemory, IommuMemory, and Iommu/Iotlb

    Fixed

    • [#361] clippy: allow mut_from_ref
    Open source →
  2. 0.17.2 11 Dec 2025
    Release notes

    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 with GuestMemoryBackend
    changed back to GuestMemory.

    Open source →
  3. 0.17.1 11 Oct 2025
    Release notes

    Changelog

    [v0.17.1]

    No visible changes. Needed to fix docs.rs build.

    Open source →
  4. 0.17.0 06 Oct 2025
    Release notes

    Changelog

    [v0.17.0]

    Added

    • [#311] Allow compiling without the ReadVolatile and WriteVolatile implementations
    • [#312] GuestRegionContainer, a generic container of GuestMemoryRegions, generalizing GuestMemoryMmap (which
      is now a type alias for GuestRegionContainer<GuestRegionMmap>).
    • [#338] Make GuestMemoryAtomic always implement Clone.
    • [#338] Make GuestAddressSpace a subtrait of Clone.
    • [#339] Add GuestMemory::get_slices()

    Changed

    • [#307] Move read_volatile_from, read_exact_volatile_from,
      write_volatile_to and write_all_volatile_to functions from the GuestMemory trait to the Bytes trait.
    • [#312]: Give GuestMemory::find_region and GuestMemory::num_regions
      a default implementation, based on linear search.
    • [#312]: Provide a marker trait, GuestMemoryRegionBytes, which enables a default implementation of Bytes<MemoryRegionAddress>
      for a GuestMemoryRegion if implemented.
    • [#312]: Adjust error types returned from GuestMemoryMmap::from_ranges[_with_files]
      and GuestRegionMmap::from_range to be separate from the error type returned by GuestRegionCollection functions.
      Change return type of GuestRegionMmap::new from Result to Option.
    • [#324] GuestMemoryRegion::bitmap() now returns a BitmapSlice. Accessing the full bitmap is now possible only if the type of the memory region is know, for example with MmapRegion::bitmap().
    • [#339] Implement Bytes::load() and Bytes::store() with get_slices() instead of to_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_offset check when using MmapRegionBuilder.
      The mmap(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() and Bytes::write() not to ignore try_access()'s count parameter

    Deprecated

    • [#349] Deprecate GuestMemory::try_access(). Use GuestMemory::get_slices() instead.
    Open source →
  5. 0.16.2 30 May 2025
    Release notes

    Changelog

    [v0.16.2]

    • [#328] Support vmm-sys-util 0.14.0
    Open source →
  6. 0.16.1 11 Nov 2024
    Release notes

    Changelog

    [v0.16.1]

    Added

    • [#304] Implement ReadVolatile and WriteVolatile for TcpStream
    Open source →
  7. 0.16.0 09 Oct 2024
    Release notes

    Changelog

    Upcoming version

    [v0.16.0]

    Added

    • [#287] Support for RISC-V 64-bit platform.
    • [#299] atomic_bitmap: support enlarging the bitmap.

    Changed

    • [#278 Remove GuestMemoryIterator trait, and instead have GuestMemory::iter() return impl Iterator.
    Open source →
  8. 0.15.0 05 Sep 2024
    Release notes

    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_from and write_volatile_into
      that made it copy data it chunks of 4096.
    Open source →
  9. 0.14.1 11 Mar 2024
    Release notes

    Changelog

    [v0.14.1]

    Fixed

    • [#279] Remove restriction from read_volatile_from and write_volatile_into that made it copy data it chunks of 4096.
    Open source →
  10. 0.14.0 05 Jan 2024
    Release notes

    Changelog

    [v0.14.0]

    Added

    • [#266] Derive Debug for several types that were missing it.

    Changed

    • [#274] Drop Default as requirement for ByteValued.
    Open source →
  11. 0.13.1 11 Oct 2023

    Nothing published for this version

  12. 0.13.0 22 Sep 2023

    Nothing published for this version

  13. 0.12.2 29 Aug 2023

    Nothing published for this version

  14. 0.12.1 08 Aug 2023

    Nothing published for this version

  15. 0.12.0 29 Jun 2023

    Nothing published for this version

  16. 0.11.0 19 Apr 2023

    Nothing published for this version

  17. 0.10.0 11 Nov 2022

    Nothing published for this version

  18. 0.9.0 16 Aug 2022

    Nothing published for this version

  19. 0.8.0 07 Apr 2022

    Nothing published for this version

  20. 0.7.0 20 Oct 2021

    Nothing published for this version

  21. 0.6.0 05 Aug 2021

    Nothing published for this version

  22. 0.5.0 10 Feb 2021

    Nothing published for this version

  23. 0.4.0 20 Nov 2020

    Nothing published for this version

  24. 0.3.0 02 Oct 2020

    Nothing published for this version

  25. 0.2.2 05 Aug 2020

    Nothing published for this version

  26. 0.2.1 28 May 2020

    Nothing published for this version

  27. 0.2.0 19 Mar 2020

    Nothing published for this version

  28. 0.1.2 05 Aug 2020

    Nothing published for this version

  29. 0.1.1 28 May 2020

    Nothing published for this version

  30. 0.1.0 03 Mar 2020

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive