| ZK-Kit is a set of libraries (algorithms or utility functions) that can be reused in different projects and zero-knowledge protocols, making it easier for developers to access user-friendly, tested, and documented code for common tasks. ZK-Kit provides different repositories for each language - this one contains Rust code only. |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
## 🗂️ Repositories
- **JavaScript:** [zk-kit](https://github.com/privacy-scaling-explorations/zk-kit)
- **Rust:** [zk-kit.rust](https://github.com/privacy-scaling-explorations/zk-kit.rust)
- **Solidity:** [zk-kit.solidity](https://github.com/privacy-scaling-explorations/zk-kit.solidity)
- **Circom:** [zk-kit.circom](https://github.com/privacy-scaling-explorations/zk-kit.circom)
- **Noir:** [zk-kit.noir](https://github.com/privacy-scaling-explorations/zk-kit.noir)
## 📦 Crates
## 👥 Ways to Contribute
- 🔧 Work on [open issues](https://github.com/privacy-scaling-explorations/zk-kit.rust/contribute)
- 📦 Suggest new [crates](https://github.com/privacy-scaling-explorations/zk-kit.rust/issues/new?assignees=&labels=feature+%3Arocket%3A&template=---crate.md&title=)
- 🚀 Share ideas for new [features](https://github.com/privacy-scaling-explorations/zk-kit.rust/issues/new?assignees=&labels=feature+%3Arocket%3A&template=---feature.md&title=)
- 🐛 Create a report if you find any [bugs](https://github.com/privacy-scaling-explorations/zk-kit.rust/issues/new?assignees=&labels=bug+%F0%9F%90%9B&template=---bug.md&title=) in the code
## 🛠 Setup
```bash
git clone https://github.com/privacy-scaling-explorations/zk-kit.rust.git && make setup
```
This will clone this repository and install the required development dependencies locally.
## 📜 Usage
You can view the available tasks with:
```commandline
make
```
### Code Quality and Formatting
You can proof your code for consistency with our formatting rules:
```commandline
make check
```
or automatically format the code (performed automatically in a `pre-commit` hook):
```commandline
make fmt
```
To lint and analyze the code for potential bugs:
```commandline
make lint
```
or automatically apply lint fix suggestions:
```commandline
make fix
```
### Conventional commits
ZK-Kit uses [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/).\
Compliance with these rules is enforced with a `commit-msg` git hook, which was set up when you ran `make setup`.
### Testing
To test the code:
```commandline
make test
```
### Build
To build crates:
```commandline
make build
```