Winter utils
This crate contains utilities used by the Winterfell STARK prover and verifier. These utilities fall into the following broad categories:
- Traits used for serialization and deserialization.
- Functions for transmuting vectors and slices.
- Macros for easily switching between regular and parallel iterators.
- Feature-based re-exports of collections and strings.
Crate features
This crate can be compiled with the following features:
std
- enabled by default and relies on the Rust standard library.concurrent
- impliesstd
and also re-exportsrayon
crate and enables multi-threaded execution for some of the crate functions.no_std
- does not rely on Rust's standard library and enables compilation to WebAssembly.
To compile with no_std
, disable default features via --no-default-features
flag.
Concurrent execution
When compiled with concurrent
feature enabled, this crate re-exports rayon
crate and executes the following functions using multiple threads:
transpose_slice()
The number of threads can be configured via RAYON_NUM_THREADS
environment variable, and usually defaults to the number of logical cores on the machine.
License
This project is MIT licensed.