#serialization #stark #transmute #iterator #deserialize #parallel-iterator #utilities

no-std winter-utils

Utilities for the Winterfell STARK prover/verifier

23 releases

0.8.4 Mar 18, 2024
0.8.2 Feb 28, 2024
0.7.4 Dec 7, 2023
0.7.0 Oct 23, 2023
0.2.0 Aug 24, 2021

#633 in Cryptography

Download history 1588/week @ 2023-12-18 646/week @ 2023-12-25 1148/week @ 2024-01-01 1857/week @ 2024-01-08 2481/week @ 2024-01-15 2469/week @ 2024-01-22 2287/week @ 2024-01-29 1921/week @ 2024-02-05 2186/week @ 2024-02-12 1675/week @ 2024-02-19 2028/week @ 2024-02-26 2600/week @ 2024-03-04 2146/week @ 2024-03-11 2194/week @ 2024-03-18 1488/week @ 2024-03-25 2595/week @ 2024-04-01

8,533 downloads per month
Used in 49 crates (13 directly)

MIT license

71KB
1.5K SLoC

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 - implies std and also re-exports rayon 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.

Dependencies

~0–265KB