{"id":13485630,"url":"https://github.com/trailofbits/circomspect","last_synced_at":"2025-04-12T23:30:35.131Z","repository":{"id":59659592,"uuid":"497006740","full_name":"trailofbits/circomspect","owner":"trailofbits","description":"A static analyzer and linter for the Circom zero-knowledge DSL","archived":false,"fork":false,"pushed_at":"2024-06-22T15:39:04.000Z","size":7620,"stargazers_count":246,"open_issues_count":7,"forks_count":18,"subscribers_count":16,"default_branch":"main","last_synced_at":"2025-04-04T02:09:55.138Z","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":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/trailofbits.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-27T13:26:28.000Z","updated_at":"2025-04-03T08:35:18.000Z","dependencies_parsed_at":"2023-02-08T20:01:24.009Z","dependency_job_id":"59cc4e2c-f911-4faf-9e2c-80c08af60fca","html_url":"https://github.com/trailofbits/circomspect","commit_stats":{"total_commits":312,"total_committers":6,"mean_commits":52.0,"dds":0.05769230769230771,"last_synced_commit":"ece9efe0a21e6c422a43ab6f2e1c0ce99678013b"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trailofbits%2Fcircomspect","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trailofbits%2Fcircomspect/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trailofbits%2Fcircomspect/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trailofbits%2Fcircomspect/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trailofbits","download_url":"https://codeload.github.com/trailofbits/circomspect/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248647249,"owners_count":21139081,"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-07-31T18:00:28.400Z","updated_at":"2025-04-12T23:30:35.111Z","avatar_url":"https://github.com/trailofbits.png","language":"Rust","funding_links":[],"categories":["Tools","Get Coding","Code editors \u0026 tooling"],"sub_categories":["Specific blog posts / Vulnerability Disclosures","Dev Tools","Cryptographic primitives in other languages"],"readme":"# Circomspect 🔎\n\n![Crates.io badge](https://img.shields.io/crates/v/circomspect.svg) ![GitHub badge](https://github.com/trailofbits/circomspect/actions/workflows/ci.yml/badge.svg)\n\nCircomspect is a static analyzer and linter for the [Circom](https://iden3.io/circom) programming language. The codebase borrows heavily from the Rust Circom compiler built by [iden3](https://github.com/iden3).\n\nCircomspect currently implements a number of analysis passes which can identify potential issues in Circom circuits. It is our goal to continue to add new analysis passes to be able to detect more issues in the future.\n\n![Circomspect example image](https://github.com/trailofbits/circomspect/raw/main/doc/circomspect.png)\n\n## Installing Circomspect\n\nCircomspect is available on [crates.io](https://crates.io/crates/circomspect) and can be installed by invoking\n\n```sh\n  cargo install circomspect\n```\n\nTo build Circomspect from source, simply clone the repository and build the\nproject by running `cargo build` in the project root. To install from source, use\n\n```sh\n  cargo install --path cli\n```\n\n## Running Circomspect\n\nTo run Circomspect on a file or directory, simply run\n\n```sh\n  circomspect path/to/circuit\n```\n\nBy default, Circomspect outputs warnings and errors to stdout. To see informational results as well you can set the output level using the `--level` option. To ignore certain types of results, you can use the `--allow` option together with the corresponding result ID. (The result ID can be obtained by passing the `--verbose` flag to Circomspect.)\n\nTo output the results to a Sarif file (which can be read by the [VSCode Sarif Viewer](https://marketplace.visualstudio.com/items?itemName=MS-SarifVSCode.sarif-viewer)), use the option `--sarif-file`.\n\n![VSCode example image](https://github.com/trailofbits/circomspect/raw/main/doc/vscode.png)\n\nCircomspect supports the same curves that Circom does: BN254, BLS12-381, and Goldilocks. If you are using a different curve than the default (BN254) you can set the curve using the command line option `--curve`.\n\n## Analysis Passes\n\nCircomspect implements analysis passes for a number of different types of issues. A complete list, together with a high-level description of each issue, can be found [here](https://github.com/trailofbits/circomspect/blob/main/doc/analysis_passes.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrailofbits%2Fcircomspect","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrailofbits%2Fcircomspect","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrailofbits%2Fcircomspect/lists"}