14 releases
| 0.6.5 | Sep 1, 2025 |
|---|---|
| 0.6.4 | Sep 18, 2023 |
| 0.6.3 | Mar 29, 2023 |
| 0.6.2 | Nov 10, 2022 |
| 0.2.0 | Sep 5, 2018 |
#23 in Unix APIs
998,935 downloads per month
Used in 759 crates
(19 directly)
17KB
257 lines
memfd
A pure-Rust library to work with Linux memfd and seals.
It provides support for creating memfd objects on Linux
and handling seals on them. This was first introduced in
Linux kernel 3.17.
For further details, see memfd_create(2) manpage.
Example
extern crate memfd;
use memfd::errors::Result;
fn new_sized_memfd() -> Result<memfd::Memfd> {
// Create a sealable memfd.
let opts = memfd::MemfdOptions::default().allow_sealing(true);
let mfd = opts.create("sized-1K")?;
// Resize to 1024B.
mfd.as_file().set_len(1024)?;
// Add seals to prevent further resizing.
let mut seals = memfd::SealsHashSet::new();
seals.insert(memfd::FileSeal::SealShrink);
seals.insert(memfd::FileSeal::SealGrow);
mfd.add_seals(&seals)?;
// Prevent further sealing changes.
mfd.add_seal(memfd::FileSeal::SealSeal);
Ok(mfd)
}
Some more examples are available under examples.
License
Licensed under either of
- MIT license - http://opensource.org/licenses/MIT
- Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0
at your option.
Dependencies
~1.6–6MB
~133K SLoC