# Unsigned 256-bit integers
[](/License.md)
[](https://docs.rs/zkp-stark)
[](https://circleci.com/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]
```