{"id":19641648,"url":"https://github.com/risc0/zirgen","last_synced_at":"2025-04-28T12:31:33.516Z","repository":{"id":254901524,"uuid":"842701059","full_name":"risc0/zirgen","owner":"risc0","description":"Zirgen compiler and RISC Zero circuits","archived":false,"fork":false,"pushed_at":"2025-04-23T17:26:54.000Z","size":88409,"stargazers_count":92,"open_issues_count":22,"forks_count":19,"subscribers_count":16,"default_branch":"main","last_synced_at":"2025-04-23T18:35:21.630Z","etag":null,"topics":["compiler","dsl","zk"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/risc0.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,"zenodo":null}},"created_at":"2024-08-14T22:18:56.000Z","updated_at":"2025-04-16T14:52:43.000Z","dependencies_parsed_at":"2025-04-23T18:36:40.398Z","dependency_job_id":null,"html_url":"https://github.com/risc0/zirgen","commit_stats":null,"previous_names":["risc0/zirgen"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/risc0%2Fzirgen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/risc0%2Fzirgen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/risc0%2Fzirgen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/risc0%2Fzirgen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/risc0","download_url":"https://codeload.github.com/risc0/zirgen/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251313590,"owners_count":21569456,"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":["compiler","dsl","zk"],"created_at":"2024-11-11T14:10:00.517Z","updated_at":"2025-04-28T12:31:29.838Z","avatar_url":"https://github.com/risc0.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Zirgen Circuit Compiler\n\nZirgen is a compiler for a domain-specific language, also called \"zirgen\",\nwhich creates arithmetic circuits for the RISC Zero proof system.\n\nFor the most part, users of RISC Zero should be writing their zkApps in Rust\nand using our RISC-V zkVM rather than building them directly in Zirgen.\nSometimes, however, it is necessary or desirable to write parts of an\napplication as an arithmetic circuit to integrate directly with our proof system\nand achieve better performance. In fact, we have an upcoming version of the zkVM\ncircuit written in Zirgen! Zirgen will make it possible to build accelerators\nfor important parts of your applications, or even to build entire other VMs that\nintegrate into the RISC Zero ecosystem through proof composition. With that said,\nit's still a work in progress and has quite a few rough edges.\n\n[Getting Started](zirgen/docs/01_Getting_Started.md)\n\n[Language Overview](zirgen/docs/02_Conceptual_Overview.md)\n\n## Included circuits\n\n* [The recursion circuit](/zirgen/circuit/recursion/)\n* [The RISC-V zkVM](/zirgen/circuit/rv32im/) \n\n## Circom integration\n\nWe also have an integration with Circom in the works -- this will make it\npossible to generate recursion circuit programs that verify witnesses for\narbitrary Circom circuits. This can be found\n[here](/zirgen/compiler/tools/zirgen-r1cs.cpp).\n\n```mermaid\ngraph TD;\n    A[Zirgen] --\u003e B[Zirgen Compiler]\n    C[Circom] --\u003e B\n    B --\u003e D[Rust code]\n    B --\u003e E[C++ code]\n    B --\u003e F[Recursion VM predicates]\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frisc0%2Fzirgen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frisc0%2Fzirgen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frisc0%2Fzirgen/lists"}