{"id":13558385,"url":"https://github.com/samuela/rustybox","last_synced_at":"2025-04-13T02:06:54.184Z","repository":{"id":55005891,"uuid":"219088021","full_name":"samuela/rustybox","owner":"samuela","description":"A free-range, non-GMO fork of busybox in 100% Rust 🦀","archived":false,"fork":false,"pushed_at":"2023-04-09T04:14:27.000Z","size":8445,"stargazers_count":833,"open_issues_count":9,"forks_count":33,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-03-28T03:07:52.779Z","etag":null,"topics":["busybox","linux","rust","rust-lang"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/samuela.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-11-02T01:35:39.000Z","updated_at":"2025-03-20T05:51:02.000Z","dependencies_parsed_at":"2024-01-13T19:41:18.241Z","dependency_job_id":null,"html_url":"https://github.com/samuela/rustybox","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/samuela%2Frustybox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samuela%2Frustybox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samuela%2Frustybox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samuela%2Frustybox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samuela","download_url":"https://codeload.github.com/samuela/rustybox/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247117757,"owners_count":20886439,"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":["busybox","linux","rust","rust-lang"],"created_at":"2024-08-01T12:04:55.408Z","updated_at":"2025-04-04T04:09:20.931Z","avatar_url":"https://github.com/samuela.png","language":"Rust","readme":"# rustybox\n[![](https://github.com/samuela/rustybox/workflows/Rust/badge.svg)](https://github.com/samuela/rustybox/actions)\n\nRustyBox is a free-range, non-GMO fork of [BusyBox](https://busybox.net/) written entirely in [Rust](https://www.rust-lang.org/). It includes all your favorite commands like `ls`, `mount`, and `top`, but without a single line of C code! Like BusyBox, rustybox weighs in at just under 1 megabyte and includes all the basic utilities you need to set up a small Linux OS.\n\n![screenshot](https://i.ibb.co/fnJG4K3/carbon-1.png)\n\n## Status\n\nrustybox is a work-in-progress! It started out life as a direct [c2rust](https://github.com/immunant/c2rust) transpile of the busybox project, and has been steadily improving since then. This has the benefit of ensuring that rustybox is \"bug-for-bug\" compatible with busybox, but it does mean that we have inherited the raw pointers and `unsafe`s that come from C land. If making essential software memory-safe is your cup of tea then join the party with a PR!\n\n## Contributing to rustybox\n\nContributing to rustybox is a great way to get started with rust, dig into the bowels of linux, or to help to free the world from the diabolical tyranny of C.\n\nThere's lots to be done, so we're happy to have you! Here are just a few ideas:\n\n- Replace some `extern \"C\"` includes with more idiomatic `use`s. Pretty straightforward find/replace-all usually does the trick.\n- Pick a utility, like `cat` or `touch`, and work on translating it into safer, more idiomatic rust. There are plenty of `unsafe`s lying around that you can tackle!\n- Try building Alpine linux with rustybox in place of busybox. This could be an awesome drop-in replacement for the popular [`alpine` Docker image](https://hub.docker.com/_/alpine).\n\nCheck out [the contributing doc](CONTRIBUTING.md) for more info!\n\nAnd of course please test out rustybox and report [any and all](https://pointersgonewild.com/2019/11/02/they-might-never-tell-you-its-broken/) issues, concerns, and comments!\n\n## Building rustybox\n\nRustybox requires a Linux system to build. Developing in Docker works just as well on macOS and Windows. You'll need GCC and its development headers (esp. `quadmath.h`) in order to build the f128 dependency. Running `sudo apt install build-essential` should do the trick on Ubuntu/Debian.\n\nPlease open an issue if you have trouble building!\n\n### Customizing your rustybox distribution\n\nBy default, rustybox does not include any utility. You can include all of them:\n\n```\ncargo build --all-features\n```\n\nChances are you don't actually need or want _everything_ in rustybox, especially for a release. If you'd like to build rustybox with only a specific set of utilities:\n\n```\ncargo build --release --features \"cat ls which\"\n```\n\nCheck out the `[features]` section of `Cargo.toml` for the full list of utilities on tap.\n\nAfter building, you can remove unnecessary debug sections with `strip`. This is recommended if you are particularly size-conscious.\n\n## Acknowledgements\n\nThere's simply no way this project would be possible without the hard work from the wonderful [busybox](https://busybox.net/) and [c2rust](https://github.com/immunant/c2rust) teams. Both projects are dope, and you should check them out. Much of the code you find in this repo is transpiled from the work of the busybox [AUTHORS](https://github.com/mirror/busybox/blob/master/AUTHORS).\n","funding_links":[],"categories":["Rust","rust","linux"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamuela%2Frustybox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamuela%2Frustybox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamuela%2Frustybox/lists"}