region
Cross-platform virtual memory API
4.0.0
18M downloads/mo
#2185 most downloaded on crates.io
darfink/region-rs
What this package is like to depend on
Last release 16 days ago
07 Aug 2026
Release timing varies
gaps range from 1 weeks to 2.6 years
Some releases are documented
notes for 10 of 23 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
23 releases · first in 2016
1 release in the last 12 months
see the full history below
Release timeline
23 releases · Nov 2016 to Aug 2026Releases
latest 23-
4.0.007 Aug 2026Release notes
Open source →Breaking modernization: no_std, edition 2024, MSRV 1.85, provenance cleanup, unsafe unlock, and Error::SystemCall(i32) with richer std conversion.
Release notes
Open source →Added
- Added an explicit MSRV of Rust 1.85.
- Added
#![no_std]support with an optionalstdfeature (enabled by default). The crate always usescore/allocinstead of assuming the standard library. - Added GNU/Hurd support via the Linux
/proc/self/mapsquery backend. CI compile-checks Hurd with nightly-Zbuild-std=core,allocbecause prebuiltrust-stdis unavailable via rustup. - Added Redox OS support for allocation / protection / locking. Region querying
is not available there yet and returns
Error::UnmappedRegion. - Added
Region::max_protection(). - Added
Allocation::is_empty(). - Under the
stdfeature,Error::SystemCalldisplays viastd::io::Errorand converts withFrom<Error> for std::io::Error/Error::into_os_error(). - Added a Windows-only regression covering large
Protection::NONEaddress-space reservations.
Changed
-
OpenBSD now uses
libc::kinfo_vmentry/KVE_*instead of a local copy (thanks @devnexen; closes #20). -
Bumped the crate edition from 2018 to 2024.
-
Upgraded
bitflagsto 2.x. -
Widened the Windows dependency to
windows-sys = ">=0.52, <=0.61". -
Updated
libcand retainedmach2. -
Adopted strict-provenance pointer helpers throughout the crate.
-
Made
unlockunsafe. -
Changed
Error::SystemCallto carry a raw OS error code (i32) instead ofstd::io::Error, so system-call failures remain representable withoutstd. Withstdenabled, display/conversion still go throughio::Error. -
On Windows,
alloc(..., Protection::NONE)now reserves address space without committing pages. -
Modernized GitHub Actions workflows:
- bumped
actions/checkoutto v6 and migrated BSD jobs to CPA custom shell (cpa.sh) - added Hurd compile coverage via nightly
-Zbuild-std=core,alloc - moved Android to compile-check coverage while cross linking is broken
- replaced unmaintained
actions-rs/*usage - updated checkout / toolchain / Pages deploy actions
- added an explicit MSRV CI job
- refreshed runner / BSD matrix versions
- bumped
Removed
- Dropped the ancient MIPS CI target that required a pinned Rust 1.52 toolchain.
Fixed
- Fixed Clippy / documentation lint noise that blocked modern toolchains.
- Fixed Windows system-info caching to avoid
static muton recent Rust.
-
3.0.225 Mar 2024Release notes
Open source →Removed
- Removed explicit support for OpenBSD < 7.x (req libc locking)
Fixed
- Dropped explicit versioning of
libcversion.
-
3.0.110 Mar 2024Release notes
Open source →Added
- Added support for NetBSD.
- Added support for non-standard UNIX flags w/
Protection::from_bits_*.
Changed
- Replaced deprecated
winapiwithwindows-sys. - Replaced deprecated
machwithmach2.
Fixed
- Fixed
queryto recursively query pages on macOS. - Fixed
MAP_JITto be set when allocating (R)WX pages on macOS (aarch64).
-
3.0.005 Aug 2021Release notes
Open source →Added
- Added support for OpenBSD.
- Added support for Illumos.
- Added support for memory allocations (
alloc&alloc_at). - Added
QueryIterfor lazily iterating regions. - Added
inlineannotation where applicable.
Changed
- Addresses are now defined as
*const T(instead of*const u8). Regionstate has been internalized, now exposed via methods.Errorenumerations have been altered.query_iternow returns an iterator.
Removed
- Removed
page::size_from_range. - Removed deprecated functionality.
-
2.2.028 May 2020 -
2.1.220 Jun 2019 -
2.1.111 Jun 2019 -
2.1.010 Jun 2019 -
2.0.003 Jan 2019 -
1.0.023 Oct 2018 -
0.3.004 May 2018Nothing published for this version
-
0.2.006 Mar 2018Nothing published for this version
-
0.1.115 Jan 2018Nothing published for this version
-
0.1.015 Jan 2018Nothing published for this version
-
0.0.914 Sep 2017Nothing published for this version
-
0.0.813 Jul 2017Nothing published for this version
-
0.0.713 Jun 2017Nothing published for this version
-
0.0.610 Jun 2017Nothing published for this version
-
0.0.504 Dec 2016Nothing published for this version
-
0.0.403 Dec 2016Nothing published for this version
-
0.0.330 Nov 2016Nothing published for this version
-
0.0.206 Nov 2016Nothing published for this version
-
0.0.106 Nov 2016Nothing published for this version