package memfd
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=078ae990f6c0924abf294693a91e00c70c9062a925be180f97dee3cba15bb958
sha512=bef05e931bbb75376667957f73fadc81996edcc515023d0bc53e0b6bffac3ba1627b77f58c8d9abd308f5f5c4e4198045276d7ad46bb49bda0854a6a107ea986
Description
A library to create and manage the Linux Memory Mapped Files(memfd). Supports Linux kernel version >= 3.17
README
Memfd
Create and manage Linux Memory Mapped Files
What is memfd
As per Linux manual, "memfd_create() creates an anonymous file and returns a file descriptor that refers to it. The file behaves like a regular file, and so can be modified, truncated, memory-mapped, and so on. However, unlike a regular file, it lives in RAM and has a volatile backing storage. Once all references to the file are dropped, it is automatically released. Anonymous memory is used for all backing pages of the file. Therefore, files created by memfd_create() have the same semantics as other anonymous memory allocations such as those allocated using mmap(2) with the MAP_ANONYMOUS flag."
This library manages the call to Linux memfd_create(), including kernel version guard and other conveniences.
Unix.file_descr and memfd
This library is unopinionated about the conversion between Unix.file_descr and memfd, therefore no such function is exposed. You can check out this line in the test for reference: https://github.com/gborough/memfd/blob/b3a615924aff705798d7c6e4e33f48cf51fa64a8/test/test_memfd.ml#L11
CAVEAT
To use this library on Alpine Linux/musl, make sure to install related packages that include memfd.h