mirror of
https://github.com/BLAKE3-team/BLAKE3
synced 2024-05-03 22:27:42 +02:00
e06a0f255a
The biggest change here is that assembly implementations are enabled by default. Added features: - "pure" (Pure Rust, with no C or assembly implementations.) Removed features: - "c" (Now basically the default.) Renamed features; - "c_prefer_intrinsics" -> "prefer_intrinsics" - "c_neon" -> "neon" Unchanged: - "rayon" - "std" (Still the only feature on by default.)
73 lines
2.8 KiB
INI
73 lines
2.8 KiB
INI
[package]
|
|
name = "blake3"
|
|
version = "0.2.3"
|
|
authors = ["Jack O'Connor <oconnor663@gmail.com>"]
|
|
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"]
|
|
|
|
# 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. Enabling the "pure" feature
|
|
# disables all FFI to C and assembly implementations, leaving only the Rust
|
|
# intrinsics implementations for SSE4.1 and AVX2. This removes the dependency
|
|
# on a C compiler/assembler, which can be helpful for certain applications.
|
|
# Library crates should generally avoid this feature, so that each binary crate
|
|
# is free make its own decision about build dependencies.
|
|
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. This is mainly for
|
|
# testing, and calling crates should not need it.
|
|
prefer_intrinsics = []
|
|
|
|
# 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.
|
|
|
|
[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.8.1"
|
|
crypto-mac = "0.7.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.48"
|