{"id":20929398,"url":"https://github.com/cognitive-engineering-lab/argus","last_synced_at":"2025-04-09T07:05:40.727Z","repository":{"id":206452105,"uuid":"716674563","full_name":"cognitive-engineering-lab/argus","owner":"cognitive-engineering-lab","description":"An IDE extension for debugging trait errors in Rust.","archived":false,"fork":false,"pushed_at":"2025-03-20T22:01:49.000Z","size":44393,"stargazers_count":107,"open_issues_count":16,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-21T09:33:51.686Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cognitive-engineering-lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2023-11-09T16:22:31.000Z","updated_at":"2025-03-17T17:52:42.000Z","dependencies_parsed_at":"2023-12-20T19:32:30.325Z","dependency_job_id":"5507a7ed-fdcc-42db-9b31-bd5bb1204157","html_url":"https://github.com/cognitive-engineering-lab/argus","commit_stats":null,"previous_names":["gavinleroy/argus","cognitive-engineering-lab/argus"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cognitive-engineering-lab%2Fargus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cognitive-engineering-lab%2Fargus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cognitive-engineering-lab%2Fargus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cognitive-engineering-lab%2Fargus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cognitive-engineering-lab","download_url":"https://codeload.github.com/cognitive-engineering-lab/argus/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247704568,"owners_count":20982298,"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":"2024-11-18T21:19:16.592Z","updated_at":"2025-04-09T07:05:40.709Z","avatar_url":"https://github.com/cognitive-engineering-lab.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# \u003cimg src=\"https://github.com/cognitive-engineering-lab/argus/blob/main/ide/packages/extension/argus-logo-128.png?raw=true\" height=\"64\" /\u003e Argus: a Trait Debugger for Rust\n\n[![tests](https://github.com/cognitive-engineering-lab/argus/actions/workflows/ci.yml/badge.svg)](https://github.com/cognitive-engineering-lab/argus/actions/workflows/ci.yml)\n\nArgus is a tool to help you with compiler errors related to traits. If you have ever seen an error that says `the trait bound ... is not satisfied`, that is a good opportunity to use Argus. An IDE extension is available for VSCode which provides the Argus Inspection Panel. Read the [trait debugging tutorial](https://cel.cs.brown.edu/argus/) to learn more.\n\n## Limitations\n\n\u003e :warning: **Argus is research software and is under active development!** :warning:\n\nArgus relies on the New Trait Solver for Rust. Therefore, Argus inherits all the limitations of that solver which is also _under active development_. The New Trait Solver is known to be incomplete — while using Argus you may accidentally run into areas of Rust where the solver is limited. This does not mean that Argus is useless. The New Trait Solver is only used to type-check the current workspace and is still useful to debug a wide-range of trait errors.\n\n\u003chttps://github.com/user-attachments/assets/9a544060-e8ad-455e-9831-5e5d48c96542\u003e\n\n## Installation\n\nArgus is available as a VSCode extension. You can install Argus from the [VSCode Marketplace](https://marketplace.visualstudio.com/items?itemName=gavinleroy.argus) or the [Open VSX Registry](https://open-vsx.org/extension/gavinleroy/argus). In VSCode:\n\n- Go to the extensions panel by clicking this button in the left margin: \u003cimg width=\"53\" alt=\"Screenshot 2024-02-23 at 23 26 58\" src=\"https://github.com/cognitive-engineering-lab/argus/assets/20209337/10d9297e-3c2a-4866-854f-de79f7de11de\"\u003e\n\n- Search for \"Argus\" and click \"Install\".\n- Open a Rust workspace and wait for Argus to finish installing.\n\n### Building from source\n\nSome additional software is needed to build Argus from source. For the TypeScript bindings, you need to install the language [Guile](https://www.gnu.org/software/guile/). The IDE requires [Depot](https://github.com/cognitive-engineering-lab/depot). Afterward run\n\n```sh\ncargo make init-bindings\n\ncargo install --path crates/argus-cli\n\ncd ide \u0026\u0026 depot build\n```\n\n## FAQ\n\n\u003ch3 id=\"rustup-fails-on-install\"\u003erustup fails on installation\u003c/h3\u003e\n\nIf rustup fails, especially with an error like \"could not rename the downloaded file\", this is probably because Argus is running rustup concurrently with another tool (like rust-analyzer). Until [rustup#988](https://github.com/rust-lang/rustup/issues/988) is resolved, there is, unfortunately, no automated way around this.\n\nTo solve the issue, go to the command line and run:\n\n```bash\nrustup toolchain install nightly-2025-03-03 -c rust-src -c rustc-dev -c llvm-tools-preview\n```\n\nThen go back to VSCode and click \"Continue\" to let Argus continue installing.\n\n### Where does the name come from?\n\nArgus or Argos Panoptes (Ancient Greek: Ἄργος Πανόπτης, \"All-seeing Argos\") is a many-eyed giant in Greek mythology.\n\n\u003e Argus was Hera's servant. His great service to the Olympian pantheon was to slay the chthonic serpent-legged monster Echidna as she slept in her cave. Hera's defining task for Argus was to guard the white heifer Io from Zeus, who was attracted to her, keeping her chained to the sacred olive tree at the Argive Heraion. She required someone who had at least a hundred eyes spread out, always watching in all directions, someone who would stay awake despite being asleep. _Argos was meant to be the perfect guardian_.\n\n—[Wikipedia](https://en.wikipedia.org/wiki/Argus_Panoptes)\n\n## Having trouble? (or providing feedback!)\n\nWe're happy to chat and answer questions on the [Argus Zulip channel](https://cognitive-engineering-lab.zulipchat.com/#narrow/stream/453634-argus). You can also reach the authors via email, \u003cgavinleroy@brown.edu\u003e and \u003cwcrichto@brown.edu\u003e, we'd love to hear your feedback as we iterate in the design and development of Argus!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcognitive-engineering-lab%2Fargus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcognitive-engineering-lab%2Fargus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcognitive-engineering-lab%2Fargus/lists"}