{"id":21000739,"url":"https://github.com/phylum-dev/birdcage","last_synced_at":"2025-04-08T02:36:28.749Z","repository":{"id":59699378,"uuid":"528985627","full_name":"phylum-dev/birdcage","owner":"phylum-dev","description":"Cross-platform embeddable sandboxing","archived":false,"fork":false,"pushed_at":"2024-11-14T21:46:46.000Z","size":345,"stargazers_count":184,"open_issues_count":3,"forks_count":7,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-04-01T01:36:46.104Z","etag":null,"topics":["malware","sandbox","secure-software-supply-chain","security","security-tools","software-supply-chain-security"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phylum-dev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-25T19:09:45.000Z","updated_at":"2025-02-24T05:40:55.000Z","dependencies_parsed_at":"2024-02-07T21:35:56.891Z","dependency_job_id":"3e5e1351-3c7a-43ed-976a-f0ffda1222c0","html_url":"https://github.com/phylum-dev/birdcage","commit_stats":{"total_commits":32,"total_committers":4,"mean_commits":8.0,"dds":0.46875,"last_synced_commit":"656dbe63c0e3d3f0d9ff1765e30001a604894147"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phylum-dev%2Fbirdcage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phylum-dev%2Fbirdcage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phylum-dev%2Fbirdcage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phylum-dev%2Fbirdcage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phylum-dev","download_url":"https://codeload.github.com/phylum-dev/birdcage/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247765470,"owners_count":20992314,"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":["malware","sandbox","secure-software-supply-chain","security","security-tools","software-supply-chain-security"],"created_at":"2024-11-19T08:12:09.531Z","updated_at":"2025-04-08T02:36:28.729Z","avatar_url":"https://github.com/phylum-dev.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Birdcage\n\n\u003cdiv align=\"center\"\u003e\n\n[![GitHub](https://img.shields.io/github/license/phylum-dev/birdcage)][license]\n[![GitHub issues](https://img.shields.io/github/issues/phylum-dev/birdcage)][issues]\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)][CoC]\n[![Discord](https://img.shields.io/discord/1070071012353376387?logo=discord)][discord_invite]\n[![Crate](https://img.shields.io/crates/v/birdcage)](https://crates.io/crates/birdcage)\n[![Documentation](https://docs.rs/birdcage/badge.svg)](https://docs.rs/birdcage)\n\n[license]: https://github.com/phylum-dev/birdcage/blob/main/LICENSE\n[issues]: https://github.com/phylum-dev/birdcage/issues\n[CoC]: https://github.com/phylum-dev/birdcage/blob/main/CODE_OF_CONDUCT.md\n[discord_invite]: https://discord.gg/Fe6pr5eW6p\n\n[![Birdcage logo](./assets/Birdcage.png)][protection]\n\n\u003c/div\u003e\n\n## About\n\nBirdcage is a cross-platform embeddable sandboxing library allowing restrictions\nto Filesystem and Network operations using native operating system APIs.\n\nBirdcage was originally developed for use by the [Phylum CLI] as an extra layer\nof [protection] against potentially malicious dependencies (see the [blog post]\nfor details). To better protect yourself from these security risks, [sign up\nnow]!\n\n[phylum cli]: https://github.com/phylum-dev/cli\n[protection]: https://www.phylum.io/defend-developers\n[blog post]: https://blog.phylum.io/sandboxing-package-installations-arms-developers-with-defense-against-open-source-attacks-and-unintended-consequences/\n[sign up now]: https://www.phylum.io/\n\nBirdcage focuses **only** on Filesystem and Network operations. It **is not** a\ncomplete sandbox preventing all side-effects or permanent damage. Applications\ncan still execute most system calls, which is especially dangerous when\nexecution is performed as root. Birdcage should be combined with other security\nmechanisms, especially if you are executing known-malicious code.\n\n## Example\n\nAn example for using Birdcage's API can be found in `./examples/sandbox`, which\nruns an application with CLI-configurable restrictions applied.\n\nTrying to run without any exceptions will produce an error:\n\n```bash\n$ cargo run --example sandbox -- echo \"Hello, Sandbox\\!\"\nError: Os { code: 13, kind: PermissionDenied, message: \"Permission denied\" }\n```\n\nRunning the same command with explicit permissions allows execution:\n\n```bash\n$ cargo run --example sandbox -- -e /usr/bin/echo -e /usr/lib echo \"Hello, Sandbox\\!\"\nHello, Sandbox!\n```\n\nCheck out `cargo run --example sandbox -- --help` for more information on how to\nuse the example.\n\n## Supported Platforms\n\n - Linux via [namespaces]\n - macOS via `sandbox_init()` (aka Seatbelt)\n\n[namespaces]: https://man7.org/linux/man-pages/man7/namespaces.7.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphylum-dev%2Fbirdcage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphylum-dev%2Fbirdcage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphylum-dev%2Fbirdcage/lists"}