{"id":16858456,"url":"https://github.com/justincormack/go-memfd","last_synced_at":"2025-03-31T07:09:32.888Z","repository":{"id":47329215,"uuid":"81690447","full_name":"justincormack/go-memfd","owner":"justincormack","description":"Golang Linux memfd library","archived":false,"fork":false,"pushed_at":"2017-02-19T21:37:14.000Z","size":64,"stargazers_count":82,"open_issues_count":1,"forks_count":15,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-24T05:09:08.006Z","etag":null,"topics":["capnproto","golang","linux","linux-memfd","memfd","syscalls"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/justincormack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-02-11T23:42:43.000Z","updated_at":"2025-02-28T08:29:43.000Z","dependencies_parsed_at":"2022-09-07T15:41:07.230Z","dependency_job_id":null,"html_url":"https://github.com/justincormack/go-memfd","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justincormack%2Fgo-memfd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justincormack%2Fgo-memfd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justincormack%2Fgo-memfd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justincormack%2Fgo-memfd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/justincormack","download_url":"https://codeload.github.com/justincormack/go-memfd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246429487,"owners_count":20775807,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["capnproto","golang","linux","linux-memfd","memfd","syscalls"],"created_at":"2024-10-13T14:13:05.734Z","updated_at":"2025-03-31T07:09:32.873Z","avatar_url":"https://github.com/justincormack.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Go Memfd library\n\n[![GoDoc](https://godoc.org/github.com/justincormack/go-memfd?status.svg)](https://godoc.org/github.com/justincormack/go-memfd)\n[![Build Status](https://travis-ci.org/justincormack/go-memfd.svg?branch=master)](https://travis-ci.org/justincormack/go-memfd)\n\nThis is a Go library for working with Linux memfd, memory file descriptors.\n\nThese provide shareable anonymous memory, which can be passed around via file descriptors,\nand also locked from write or resize. They are designed to let programs that do not trust each\nother communicate via shared memory without issues of naming, truncation, or race conditions due\nto modifications.\n\nFor more information about the underlying syscalls see [`memfd_create`](http://man7.org/linux/man-pages/man2/memfd_create.2.html)\nand the file sealing section of [`fcntl`](http://man7.org/linux/man-pages/man2/fcntl.2.html). There is also a\n[sealed files overview](https://lwn.net/Articles/593918/) from LWN, but written slightly before the final design was merged,\nso the details are not quite correct for the final version.\n\nThe functionality was added in Linux 3.17, in February 2015. It was also added to the Debian Jessie 3.16 kernels, and is in the\nUbuntu 14.04 updates, as well as being backported to the Centos 7.3/RHEL 7.3 series, so it is available in all non ancient Linux\ndistros, so should be generally usable.. Currently there is no support in the BSDs or other non Linux systems, I hope this can\nbe added as it is a useful interface.\n\nA Capnproto Arena library is also included, for sending structured data between processes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustincormack%2Fgo-memfd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjustincormack%2Fgo-memfd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustincormack%2Fgo-memfd/lists"}