You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
1.5 KiB

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