shmemfdrs

Crates.ioshmemfdrs
lib.rsshmemfdrs
version0.1.4
sourcesrc
created_at2017-12-09 12:45:46.578627
updated_at2022-10-01 23:39:57.855205
descriptionCreates anonymous shared memory file descriptors for IPC on Unix platforms, using memfd/SHM_ANON/shm_open.
homepagehttps://codeberg.org/valpackett/shmemfdrs
repositoryhttps://codeberg.org/valpackett/shmemfdrs
max_upload_size
id42235
size20,084
Val Packett (valpackett)

documentation

README

crates.io

shmemfdrs

This tiny little crate provides a function that creates anonymous shared memory file descriptors for IPC, using the best available platform-specific method:

  • on Linux, unless the memfd Cargo feature is disabled: memfd (requires kernel >= 3.17)
  • on FreeBSD: shm_open(SHM_ANON)
  • otherwise: shm_open with a name, instantly unlinked

memfd and SHM_ANON are actually anonymous from the start, i.e. they don't need access the filesystem at all, so they work well with process sandboxes like Capsicum. (memfd actually uses the provided name, but only for debugging purposes.)

Usage

There's just one function exported from this crate:

fn create_shmem<T: AsRef<CStr>>(name: T, length: usize) -> c_int

Should be easy to figure out :)

The name should start with / and shouldn't be very long (255 characters max).

Contributing

Please feel free to submit pull requests!

By participating in this project you agree to follow the Contributor Code of Conduct.

License

Licensed under the Apache License, Version 2.0 < LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0 > or the MIT license < LICENSE-MIT or https://opensource.org/licenses/MIT >, at your option.

Commit count: 0

cargo fmt