hyperplonk/README.md
README.mdRaw
1# Hyperplonk library
2A linear-time FFT-free SNARK proof system (https://eprint.iacr.org/2022/1355.pdf).
3
4## Disclaimer
5
6**DISCLAIMER:** This software is provided "as is" and its security has not been externally audited. Use at your own risk.
7
8## Development environment setup
9
10### Install RUST
11
12We recommend using nix for installing the correct version of rust and
13additional libraries:
14
15```bash
16> curl -L https://nixos.org/nix/install | sh
17```
18
19### Compiling the project for the first time
20
21```bash
22> nix-shell
23> cargo build
24```
25
26### Direnv
27
28We recommend the following tools:
29
30- [nix](https://nixos.org/download.html)
31- [direnv](https://direnv.net/docs/installation.html)
32
33Run `direnv allow` at the repo root. You should see dependencies (including Rust) being installed (the first time might take a while).
34Upon modification on `flake.nix`, run `direnv reload` to reflect new dependencies or environment setups.
35
36### Tests
37
38```
39> cargo test --release --all
40```
41
42### Generate and read the documentation
43
44#### Standard
45
46```
47> cargo doc --open
48```
49
50### Code formatting
51
52To format your code run
53
54```
55> cargo fmt
56```
57
58### Updating non-cargo dependencies
59
60Run `nix flake update` if you would like to pin other version edit `flake.nix`
61beforehand. Commit the lock file when happy.
62
63To update only a single input specify it as an argument, for example
64
65 nix flake update github:oxalica/rust-overlay
66
67### Benchmarks
68
69To obtain benchmarks, run the script file `scripts/run_benchmarks.sh`.
70We refer to Table 5 and Table 6 in https://eprint.iacr.org/2022/1355.pdf for an example benchmark.