{"id":21909203,"url":"https://github.com/somehowchris/rust-gitpod-workspace","last_synced_at":"2026-04-10T20:50:17.458Z","repository":{"id":37069427,"uuid":"443132982","full_name":"somehowchris/rust-gitpod-workspace","owner":"somehowchris","description":"Workspace image for gitpod with the needed tools for modern rust development","archived":false,"fork":false,"pushed_at":"2025-03-16T21:24:27.000Z","size":4119,"stargazers_count":0,"open_issues_count":10,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-16T22:26:59.643Z","etag":null,"topics":["docker","gitpod","podman","rust","workspace"],"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/somehowchris.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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":{"github":["somehowchris"]}},"created_at":"2021-12-30T16:50:11.000Z","updated_at":"2024-09-02T12:51:56.000Z","dependencies_parsed_at":"2024-01-29T15:13:29.485Z","dependency_job_id":"0f2c0aff-8a5c-44fc-8ade-fe6d4ae5dfb5","html_url":"https://github.com/somehowchris/rust-gitpod-workspace","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somehowchris%2Frust-gitpod-workspace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somehowchris%2Frust-gitpod-workspace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somehowchris%2Frust-gitpod-workspace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/somehowchris%2Frust-gitpod-workspace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/somehowchris","download_url":"https://codeload.github.com/somehowchris/rust-gitpod-workspace/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244924767,"owners_count":20532874,"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":["docker","gitpod","podman","rust","workspace"],"created_at":"2024-11-28T17:15:57.523Z","updated_at":"2026-04-10T20:50:12.396Z","avatar_url":"https://github.com/somehowchris.png","language":"Shell","funding_links":["https://github.com/sponsors/somehowchris"],"categories":[],"sub_categories":[],"readme":"# Gitpod Rust Workspace\n\n### Why is this needed?\n\nGitpod workspaces have rust installed, well actually most of the time you are not running the version they specify in the docs which makes it hard to use new(er) features with old(er) versions of rust.\n\nThe main workspaces also do not include rust components, addons and binaries such as rls, rust-analysis, clippy, flamegraph, udeps and many more to make the setup more productive.\n\nGitpod also builds your base images everytime you create a workspace which takes some hours if you're into installing rust tooling fresh everytime.\n\n### What's included\n\nHeres a summary of what's done:\n - installs docker buildx\n - Installs and updates rust stable and nightly\n - Adds the rustup components clippy, rustfmt, rls and rust-analysis\n - Installs the binaries of diesel_cli, cargo-watch, cargo-outdated, cargo-audit, cargo-binstall, cargo-geiger, cargo-all-features, cargo-whatfeatures, cargo-spellcheck, cargo-udeps, flamegraph, cargo-edit, cargo-whatfeatures, cargo-expand\n - Adds debugging support for rust (according to https://www.gitpod.io/docs/languages/rust#debugging) within vs code\n - Installs jq, yq, mysql client and gh-cli\n\n### How to get it setup\n\nThis approach let's you be notified when this image updates and let's you opt in at your pace.\n\nFirst let's create a `.gitpod.Dockerfile` file (or where and however you would save and name it)\n```dockerfile\nFROM chweicki/gitpod-rust-workspace:0.0.2\n```\n\nNext lets add the following lines to your `.gitpod.yml` file:\n```yml\nimage:\n  file: .gitpod.Dockerfile\n```\n\nCommit these changes and your workspace will be setup with this image as it's base image.\n\nIf you would like to get notified about image updates, opt into services like [renovate](https://www.whitesourcesoftware.com/free-developer-tools/renovate/) or [dependabot](https://docs.github.com/en/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/configuring-dependabot-security-updates)\n\n\n#### VS Code Extensions\n\nVS Code workspaces on gitpod usually do not come with rust extensions. Here are the ones I like to use (if you feel like using them just copy paste the yaml into your `.gitpod.yml`):\n```yml\nvscode:\n  extensions:\n    - ms-azuretools.vscode-docker\n    - rust-lang.rust\n    - pinage404.rust-extension-pack\n    - belfz.search-crates-io\n    - webfreak.debug\n    - Swellaby.vscode-rust-test-adapter\n```\n\n\n#### Debugging\n\nTo support debugging within vscode you need to install the vs code extension `webfreak.debug` and add the following `launch.json` and `tasks.json` in a `.vscode/` folder.\n\n__launch.json__\n```json\n{\n    // Use IntelliSense to learn about possible attributes.\n    // Hover to view descriptions of existing attributes.\n    \"version\": \"0.2.0\",\n    \"configurations\": [\n        {\n            \"type\": \"gdb\",\n            \"request\": \"launch\",\n            \"name\": \"Debug Rust Code\",\n            \"preLaunchTask\": \"cargo\",\n            \"target\": \"${workspaceFolder}/target/debug/\u003cbin-name\u003e\",\n            \"cwd\": \"${workspaceFolder}\",\n            \"valuesFormatting\": \"parseText\"\n        }\n    ]\n}\n```\n\u003e Replace `\u003cbin-name\u003e` with the name of your actual binary\n\n\n__tasks.json__\n```tasks.json\n{\n    \"tasks\": [\n        {\n            \"command\": \"cargo\",\n            \"args\": [\n                \"build\"\n            ],\n            \"type\": \"process\",\n            \"label\": \"cargo\"\n        }\n    ]\n}\n```\n\n\u003e if you need any support setting this up, head over to the [gitpod tutorial about debugging](https://www.gitpod.io/docs/languages/rust#debugging)\n\nAfter this setup, head into the debug pannel of vs code, setup breakpoints and click \"Debug Rust Code\" in the debug pannel","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsomehowchris%2Frust-gitpod-workspace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsomehowchris%2Frust-gitpod-workspace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsomehowchris%2Frust-gitpod-workspace/lists"}