{"id":16476227,"url":"https://github.com/softprops/rust-bin","last_synced_at":"2026-03-12T04:30:49.078Z","repository":{"id":66115686,"uuid":"207313363","full_name":"softprops/rust-bin","owner":"softprops","description":"🏗️🗑️ a recipe for Rust bins built, tested, and published with GitHub Actions","archived":false,"fork":false,"pushed_at":"2020-05-14T00:31:03.000Z","size":29,"stargazers_count":12,"open_issues_count":5,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-18T02:12:23.881Z","etag":null,"topics":["github-actions","rust"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/softprops.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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,"dei":null,"publiccode":null,"codemeta":null},"funding":{"ko_fi":"softprops"}},"created_at":"2019-09-09T13:17:57.000Z","updated_at":"2025-09-21T14:52:35.000Z","dependencies_parsed_at":"2023-02-20T18:00:52.622Z","dependency_job_id":null,"html_url":"https://github.com/softprops/rust-bin","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/softprops/rust-bin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softprops%2Frust-bin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softprops%2Frust-bin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softprops%2Frust-bin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softprops%2Frust-bin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/softprops","download_url":"https://codeload.github.com/softprops/rust-bin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softprops%2Frust-bin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30415440,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T04:25:42.844Z","status":"ssl_error","status_checked_at":"2026-03-12T04:25:34.624Z","response_time":114,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["github-actions","rust"],"created_at":"2024-10-11T12:41:49.925Z","updated_at":"2026-03-12T04:30:49.056Z","avatar_url":"https://github.com/softprops.png","language":"Shell","funding_links":["https://ko-fi.com/softprops"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  🗑️\n\u003c/div\u003e\n\u003ch1 align=\"center\"\u003e\n  rust bin\n\u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\n   A recipe for \u003ca href=\"https://www.rust-lang.org/\"\u003eRust\u003c/a\u003e bins built, tested, and published with \u003ca href=\"https://help.github.com/en/categories/automating-your-workflow-with-github-actions\"\u003eGitHub Actions\u003c/a\u003e.\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n\u003e **⚠️ Note:** To use GitHub Actions, you must have access to the [GitHub Actions](https://github.com/features/actions) feature. GitHub Actions are currently only available in public beta. You can [apply for the GitHub Actions beta here](https://github.com/features/actions/signup/).\n\n## Goals\n\n* ♻️ 🚚 Create a repeatable process for making it as easy as possible to get Rust binaries into the hands of people as early and often as possible\n\nAs rewarding of a language as Rust is to program in, it means little if you don't **use it** to improve the lives of others with applications.\n\n* 👩‍🎤 Inspire others to think about increasing Rust's potential reach\n\nThere are many ways we could make Rust more accessible to others. This is one way. I'm excited to see others.\n\n## Non-Goals\n\n* 🚫 😵 Not be complete by default.\n\nRust supports a very [wide array](https://forge.rust-lang.org/platform-support.html) of compilation targets. Including all of these by default will inevitably put more burden on common case people trying figuring out which binaries to download and be a burden on new Rustaceans writing application that want the simplest thing that could be possible work for the majority of cases.\n\n\u003e **⚠️ Note:** If you need to support more cases, you can make changes to `.github/workflows/main.yml`\n\n## How to use this repo\n\nThis repository is meant to use as a template for new Rust projects intended to produce\na binary for users to run.\n\n### cargo generate\n\nThis repository works well with the [`cargo generate`](https://github.com/ashleygwilliams/cargo-generate) plugin.\n\nYou can install `cargo generate` with the following\n\n```sh\n$ cargo install cargo-generate \\\n  --features vendored-openssl\n```\n\nThen generate a new rust bin project with run the following providing a `--name` option with the name of the binary\nyou want to generate\n\n```sh\n$ cargo generate \\\n  --git https://github.com/softprops/rust-bin.git \\\n  --name my-awesome-rust-bin\n```\n\n\n[Create a new git repository](https://help.github.com/en/articles/create-a-repo) on GitHub.com\n\nIn your generated project, complete the repository setup process and push to GitHub\n\n```sh\ngit add .\ngit commit -m \"init to winit\"\ngit remote add origin git@github.com:{you}/{my-awesome-rust-bin}.git\ngit push -u origin master\n```\n\n### GitHub repository template\n\nThis repository is configured to be a GitHub repository template.\n\n\u003e **⚠️ Note:** You can learn more about repository templates [here](https://help.github.com/en/articles/creating-a-repository-from-a-template)\n\nSimply click the `Use this template` button on this repository's GitHub page and follow the problems.\n\nClone your new repository to your local computer and run the `./bootstrap.sh` script. This will update some cargo placeholders that `cargo generate` would fill in for you. Commit these and push the changes to GitHub.\n\n\u003e **⚠️ Note:**  You will likely also want to update the `README.md` file to reflect your new projects contents.\n\n### Start the action\n\nAssumming you have already [applied for the GitHub Actions beta here](https://github.com/features/actions/signup/) and received\nyour invite you should find GitHub already going to work for you on your first `push` by visiting\n\n```\nhttps://github.com/{you}/{my-awesome-rust-bin}/actions\n```\n\n\u003e **⚠️ Note:** This may take a few seconds on the first push. GitHub will take a few seconds to register push events with your newly provided workflow.\n\nYou'll find GitHub is doing the following for you\n\n* checking your codestyle with rustfmt\n* linting your code with clippy\n* doing a quick compile check\n* running tests against Rust channels `nightly`, `beta`, `stable` on `linux`, `osx`, and `windows` virtual hosts\n\n### Releasing\n\nYou'll notice this workflow ends with a publish step but does **not** actually publish anything yet.\n\nThe reason why is that you typically only want to publish a release with a [git tag](https://git-scm.com/book/en/v2/Git-Basics-Tagging).\n\nLet's try that.\n\n```sh\ngit tag -a v0.1.0 -m \"initial release\"\ngit push origin v0.1.0\n```\n\nVisit `https://github.com/{you}/{my-awesome-rust-bin}/actions` once more and you should find another workflow run has started. This time the workflow will end with a publish step that will create a new GitHub release named after the tag.\n\nYou can find your GitHub releases here.\n\n```\nhttps://github.com/{you}/{my-awesome-rust-bin}/releases\n```\n\n🎁 You should find 3 assets attached to your GitHub release. One for `linux`, one for `OSX`, and one for `windows`. Download the one for the type of operating system you are using by clicking the link.\n\nUnpack the asset locally and run it...\n\n🎉 Congradulations. You've just shipped your first release 🚀! Now you can share your awesome Rust binaries with all your friends.\n\n⭐ You can also communicate with the world that your project is in a stable state by creating a `README.md` file adding a [workflow badge](https://help.github.com/en/articles/configuring-a-workflow#adding-a-workflow-status-badge-to-your-repository).\n\n```\n![](https://github.com/actions/{you}/{my-awesome-rust-bin}/main/badge.svg)\n```\n\n\u003e **⚠️ Note:** You can extend your GitHub workflow by editing the `.github/workflows/main.yml` file in your project. You can also create separate workflows for separate GitHub events. Learn more [here](https://help.github.com/en/categories/automating-your-workflow-with-github-actions).\n\n\n## Resources\n\n* [setup-rust action](https://github.com/hecrj/setup-rust-action)\n* [gh-release action](https://github.com/softprops/action-gh-release)\n* [GitHub actions docs](https://help.github.com/en/categories/automating-your-workflow-with-github-actions)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftprops%2Frust-bin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoftprops%2Frust-bin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftprops%2Frust-bin/lists"}