zkp-u256

Crates.iozkp-u256
lib.rszkp-u256
version0.2.1
sourcesrc
created_at2019-10-07 04:19:40.143894
updated_at2020-12-24 05:02:22.843236
descriptionPerformant implementation of 256-bit unsigned integers
homepage
repositoryhttps://github.com/0xProject/starkcrypto/tree/master/algebra/u256
max_upload_size
id170498
size169,392
Remco Bloemen (recmo)

documentation

README

Unsigned 256-bit integers

Crates.io CircleCI Codecov

Implementation of 256-bit unsigned integers.

Warning. Side-channel resistance is currently not implemented. This library is optimized for performance and does not use slower side-channel resistant algorithms. Please evaluate the risks before using with sensitive data.

Note. Code coverage in Rust is still very early days. The above number is likely inaccurate. Please view the coverage report for details.

Feature flags

  • std Build using libstd. (enabled by default)
  • inline Inline small operations like bitshifts, addition, multiplication, etc. This leads to better performance at the cost of larger code size. You can always force inlining by using the _inline suffixed version of the operations. (enabled by default)
  • use_rand Add support for the rand crate to generate random numbers.

Testing

See CircleCI documentation on how to run tests locally.

Benchmark

Checkout master branch:

cargo bench --bench benchmark -- --save-baseline master
cargo bench --bench benchmark -- --baseline master
open target/criterion/report/index.html

Benchmarking using Mac OS' instrumentation. For this we need the cargo-instruments plugin for Cargo.

cargo install cargo-instruments

You can then run tests under profiling. It is recommended to filter for a specific test.

cargo instruments --release --bench benchmark --open [test name]
Commit count: 0

cargo fmt