1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
[]
= "blake3"
= "0.3.0"
= ["Jack O'Connor <oconnor663@gmail.com>"]
= "the BLAKE3 hash function"
= "https://github.com/BLAKE3-team/BLAKE3"
= "CC0-1.0 OR Apache-2.0"
= "https://docs.rs/blake3"
= "README.md"
= "2018"
[]
= ["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.
= []
# 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.
= []
# 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".
= ["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. ----------
# 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.
= []
# 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.
= []
= []
= []
[]
# Document blake3::join::RayonJoin on docs.rs.
= ["rayon"]
[]
= "0.3.5"
= { = "0.5.1", = false, = ["array-sizes-33-128"] }
= "0.1.5"
= { = "1.2.1", = true }
= "0.1.10"
= "0.8.1"
= "0.7.0"
[]
= "0.4.2"
= "0.4.1"
= "0.7.2"
= "0.2.1"
= { = "./reference_impl" }
[]
= "1.0.48"