zkp-u256 0.2.1

Performant implementation of 256-bit unsigned integers
Documentation
# Unsigned 256-bit integers

[![Crates.io](https://img.shields.io/crates/l/zkp-u256)](/License.md)
[![](https://docs.rs/zkp-u256/badge.svg)](https://docs.rs/zkp-stark)
[![CircleCI](https://img.shields.io/circleci/build/github/0xProject/OpenZKP)](https://circleci.com/gh/0xProject/OpenZKP)
[![Codecov](https://img.shields.io/codecov/c/gh/0xproject/OpenZKP)](https://codecov.io/gh/0xProject/OpenZKP)

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][cci-local].

[cci-local]: https://circleci.com/docs/2.0/local-cli/

## Benchmark

Checkout master branch:

```sh
cargo bench --bench benchmark -- --save-baseline master
```

```sh
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.

```sh
cargo install cargo-instruments
```

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

```sh
cargo instruments --release --bench benchmark --open [test name]
```