{"id":27753625,"url":"https://github.com/sunfishcode/rustix-linux-procfs","last_synced_at":"2025-04-29T06:01:40.387Z","repository":{"id":265588475,"uuid":"853125788","full_name":"sunfishcode/rustix-linux-procfs","owner":"sunfishcode","description":"Utilities for opening Linux procfs files and directories","archived":false,"fork":false,"pushed_at":"2025-04-21T21:17:50.000Z","size":25,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-21T22:26:51.161Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sunfishcode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-09-06T03:30:10.000Z","updated_at":"2025-04-21T21:17:54.000Z","dependencies_parsed_at":"2025-04-21T22:23:18.616Z","dependency_job_id":"68dc52c7-374a-4138-8230-e57ba983ecad","html_url":"https://github.com/sunfishcode/rustix-linux-procfs","commit_stats":null,"previous_names":["sunfishcode/rustix-linux-procfs"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunfishcode%2Frustix-linux-procfs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunfishcode%2Frustix-linux-procfs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunfishcode%2Frustix-linux-procfs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunfishcode%2Frustix-linux-procfs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sunfishcode","download_url":"https://codeload.github.com/sunfishcode/rustix-linux-procfs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251446169,"owners_count":21590668,"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":[],"created_at":"2025-04-29T06:00:56.010Z","updated_at":"2025-04-29T06:01:40.362Z","avatar_url":"https://github.com/sunfishcode.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003e\u003ccode\u003erustix-linux-procfs\u003c/code\u003e\u003c/h1\u003e\n\n  \u003cp\u003e\n    \u003cstrong\u003eUtilities for opening Linux procfs files and directories\u003c/strong\u003e\n  \u003c/p\u003e\n\n  \u003cp\u003e\n    \u003ca href=\"https://github.com/sunfishcode/rustix-linux-procfs/actions?query=workflow%3ACI\"\u003e\u003cimg src=\"https://github.com/sunfishcode/rustix-linux-procfs/workflows/CI/badge.svg\" alt=\"Github Actions CI Status\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://bytecodealliance.zulipchat.com/#narrow/stream/206238-general\"\u003e\u003cimg src=\"https://img.shields.io/badge/zulip-join_chat-brightgreen.svg\" alt=\"zulip chat\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://crates.io/crates/rustix-linux-procfs\"\u003e\u003cimg src=\"https://img.shields.io/crates/v/rustix-linux-procfs.svg\" alt=\"crates.io page\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://docs.rs/rustix-linux-procfs\"\u003e\u003cimg src=\"https://docs.rs/rustix-linux-procfs/badge.svg\" alt=\"docs.rs docs\" /\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\nThis crate contains functions for obtaining file descriptors for files and\ndirectories under \"/proc\" on Linux.\n\nThis crate does a considerable amount of work to determine whether `/proc` is\nmounted, with actual `procfs`, and without any additional mount points on top\nof the paths we open.\n\nWhy all the effort to detect bind mount points? People are doing all kinds of\nthings with Linux containers these days, with many different privilege schemes,\nand we want to avoid making any unnecessary assumptions. Libraries\nwill sometimes use procfs *implicitly* (when Linux gives them no better\noptions), in ways that aren't obvious from their public APIs. These filesystem\naccesses might not be visible to someone auditing the main code of an\napplication for places which may be influenced by the filesystem namespace. So\nwith the checking here, they may fail, but they won't be able to succeed with\nbogus results.\n\nAs a caveat, QEMU intercepts selected paths in `open` to emulate their\ncontents, however this crate's extra checks bypass QEMU's interceptions, so\nusing this crate instead of just opening the paths directly can cause problems\nwhen running under QEMU.\n\nAs a historical note, the functions used to be part of the [`rustix`] crate,\nbut were factored out into a separate crate to simplify the `rustix` crate, as\nthey can be implemented on top of rustix's public API.\n\n[`rustix`]: https://crates.io/crates/rustix\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunfishcode%2Frustix-linux-procfs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsunfishcode%2Frustix-linux-procfs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunfishcode%2Frustix-linux-procfs/lists"}