{"id":23484915,"url":"https://github.com/pluto/web-prover-circuits","last_synced_at":"2025-04-15T01:27:38.586Z","repository":{"id":259325720,"uuid":"877581728","full_name":"pluto/web-prover-circuits","owner":"pluto","description":"Circuits for Pluto's `web-prover`","archived":false,"fork":false,"pushed_at":"2025-02-13T18:18:41.000Z","size":1371,"stargazers_count":21,"open_issues_count":9,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T13:21:17.545Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/pluto.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-23T22:45:05.000Z","updated_at":"2025-03-10T16:38:31.000Z","dependencies_parsed_at":"2024-12-11T00:18:37.679Z","dependency_job_id":"be02eccc-f245-44ab-8e24-2174866b3b36","html_url":"https://github.com/pluto/web-prover-circuits","commit_stats":null,"previous_names":["pluto/web-prover-circuits"],"tags_count":34,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pluto%2Fweb-prover-circuits","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pluto%2Fweb-prover-circuits/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pluto%2Fweb-prover-circuits/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pluto%2Fweb-prover-circuits/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pluto","download_url":"https://codeload.github.com/pluto/web-prover-circuits/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248987878,"owners_count":21194310,"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-12-24T22:11:37.184Z","updated_at":"2025-04-15T01:27:38.579Z","avatar_url":"https://github.com/pluto.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  Web-Prover Circuits\n\u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/pluto/web-prover-circuits/graphs/contributors\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/contributors/pluto/spark?style=flat-square\u0026logo=github\u0026logoColor=8b949e\u0026labelColor=282f3b\u0026color=32c955\" alt=\"Contributors\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/pluto/web-prover-circuits/actions/workflows/test.yml\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/tests-passing-32c955?style=flat-square\u0026logo=github-actions\u0026logoColor=8b949e\u0026labelColor=282f3b\" alt=\"Tests\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n## Overview\n\n`web-prover-circuits` is a project focused on implementing parsers and extractors/selective-disclosure for various data formats inside zero-knowledge circuits.\nSpecifically, these are designed to be used in an NIVC folding scheme.\nCurrently, our program layout looks like this:\n![v0.9.0](docs/images/v0.9.0.png)\n\n## Repository Structure\n\n- `circuits/`: Current implementation of circuits\n  - `chacha`: ChaCha encryption circuit\n  - `http`: HTTP parser and extractor\n  - `json`: JSON parser and extractor\n    - `json` has its own documentation [here](docs/json.md)\n  - `utils`: Utility circuits\n  - `test`: Circuit tests\n- `src/`: Rust public-params creation binary\n- `examples/`: Reference examples for JSON and HTTP parsers\n\nDocumentation, in general, can be found in the `docs` directory.\n\n## Getting Started\n\n### Prerequisites\n\nTo use this repo, you will need to install the following dependencies.\nThese instructions should work on Linux/GNU and MacOS, but aren't guaranteed to work on Windows.\n\n#### Install Rust\nTo install Rust, you need to run:\n```sh\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\nexec $SHELL\n```\nCheck this is installed by running:\n```sh\nrustc --version \u0026\u0026 cargo --version\n```\nto see the path to your Rust compiler and Cargo package manager.\n\n#### Install Circom\nSuccinctly, `cd` to a directory of your choosing and run:\n```sh\ngit clone https://github.com/iden3/circom.git\ncd circom\ncargo build --release\ncargo install --path circom\n```\nin order to install `circom` globally.\n\n#### Install Node\nFirst, install `nvm` by running:\n```sh\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash\nexec $SHELL\n```\nNow with `nvm` installed, run:\n```sh\nnvm install --lts\nnvm use --lts\nnode --version \u0026\u0026 npm --version\n```\n\n#### Node packages\nFrom the root of the repository, you can now run:\n```sh\nnpm install\n```\nwhich will install all the necessary packages for working with Circom.\nThis includes executables `circomkit`, `snarkjs`, and `mocha` which are accessible with Node: `npx`.\n\n##### Circomkit\nThis repository uses `circomkit` to manage Circom circuits.\nTo see what you can do with `circomkit`, we suggest running:\n```\nnpx circomkit help\n```\n`circomkit` can essentially do everything you would want to do with these Circuits, though we can't guarantee all commands work properly.\n\n**Example:**\nFor example, to compile the `plaintext_authentication`, you can run the following from the repository root:\n```\nnpx circomkit compile plaintext_authentication_1024b\n```\nwhich implicitly checks the `circuits.json` for an object that points to the circuit's code itself.\n\nIf you are having trouble with `circomkit`, consider\n\n##### Mocha\n`mocha` will also be installed from before.\nRunning\n```sh\nnpx mocha\n```\nwill run every circuit test.\nTo filter tests, you can use the `-g` flag (very helpful!).\n\n## License\n\nLicensed under the Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)\n\n## Contributing\n\nWe welcome contributions to our open-source projects. If you want to contribute or follow along with contributor discussions, join our [main Telegram channel](https://t.me/pluto_xyz/1) to chat about Pluto's development.\n\nOur contributor guidelines can be found in [CONTRIBUTING.md](./CONTRIBUTING.md). A good starting point is issues labelled 'bounty' in our repositories.\n\nUnless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpluto%2Fweb-prover-circuits","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpluto%2Fweb-prover-circuits","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpluto%2Fweb-prover-circuits/lists"}