diff options
Diffstat (limited to 'thirdparty/BLAKE3/Cargo.toml')
| -rw-r--r-- | thirdparty/BLAKE3/Cargo.toml | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/thirdparty/BLAKE3/Cargo.toml b/thirdparty/BLAKE3/Cargo.toml new file mode 100644 index 000000000..3df0fd279 --- /dev/null +++ b/thirdparty/BLAKE3/Cargo.toml @@ -0,0 +1,90 @@ +[package] +name = "blake3" +version = "0.3.7" +authors = ["Jack O'Connor <[email protected]>"] +description = "the BLAKE3 hash function" +repository = "https://github.com/BLAKE3-team/BLAKE3" +license = "CC0-1.0 OR Apache-2.0" +documentation = "https://docs.rs/blake3" +readme = "README.md" +edition = "2018" + +[features] +default = ["std"] + +# The NEON implementation does not participate in dynamic feature detection, +# which is currently x86-only. If "neon" is on, NEON support is assumed. Note +# that AArch64 always supports NEON, but support on ARMv7 varies. The NEON +# implementation uses C intrinsics and requires a C compiler. +neon = [] + +# This crate uses libstd for std::io trait implementations, and also for +# runtime CPU feature detection. This feature is enabled by default. If you use +# --no-default-features, the only way to use the SIMD implementations in this +# crate is to enable the corresponding instruction sets statically for the +# entire build, with e.g. RUSTFLAGS="-C target-cpu=native". +std = ["digest/std"] + +# The "rayon" feature (defined below as an optional dependency) enables the +# join::RayonJoin type, which can be used with Hasher::update_with_join to +# perform multi-threaded hashing. However, even if this feature is enabled, all +# other APIs remain single-threaded. + +# ---------- Features below this line are for internal testing only. ---------- + +# By default on x86_64, this crate uses Samuel Neves' hand-written assembly +# implementations for SSE4.1, AVX2, and AVX512. (These provide both the best +# runtime performance, and the fastest build times.) And by default on 32-bit +# x86, this crate uses Rust intrinsics implementations for SSE4.1 and AVX2, and +# a C intrinsics implementation for AVX-512. In both cases, if a C compiler is +# not detected, or if AVX-512 support is missing from the detected compiler, +# build.rs automatically falls back to a pure Rust build. This feature forces +# that fallback, for testing purposes. (Note that in CI testing, we set the +# BLAKE3_CI environment variable, which instructs build.rs to error out rather +# than doing an automatic fallback.) +pure = [] + +# As described above, on x86_64 this crate use assembly implementations by +# default. Enabling the "prefer_intrinsics" feature makes this crate use +# intrinsics implementations on both 32-bit and 64-bit x86, again for testing +# purposes. +prefer_intrinsics = [] + +# Disable individual instruction sets. CI testing uses these flags to simulate +# different levels of hardware SIMD support. Note that code for the +# corresponding instruction set is still compiled; only detection is disabled. +# +# As noted above, these flags are *for testing only* and are not stable. It's +# possible that some users might find that their particular use case performs +# better if e.g. AVX-512 is disabled, because of issues like CPU downlocking. +# If that comes up, and if disabling the instruction set here at the feature +# level turns out to be the right approach, then we can design a stable +# feature. Until then, we reserve the right to break these features in a patch +# release. +no_sse2 = [] +no_sse41 = [] +no_avx2 = [] +no_avx512 = [] + +[package.metadata.docs.rs] +# Document blake3::join::RayonJoin on docs.rs. +features = ["rayon"] + +[dependencies] +arrayref = "0.3.5" +arrayvec = { version = "0.5.1", default-features = false, features = ["array-sizes-33-128"] } +constant_time_eq = "0.1.5" +rayon = { version = "1.2.1", optional = true } +cfg-if = "0.1.10" +digest = "0.9.0" +crypto-mac = "0.8.0" + +[dev-dependencies] +hex = "0.4.2" +page_size = "0.4.1" +rand = "0.7.2" +rand_chacha = "0.2.1" +reference_impl = { path = "./reference_impl" } + +[build-dependencies] +cc = "1.0.4" |