aboutsummaryrefslogtreecommitdiff
path: root/Cargo.toml
AgeCommit message (Collapse)Author
2026-01-08version 1.8.3HEAD1.8.3masterJack O'Connor
Changes since 1.8.2: - Add `Hash::as_slice`. - Update to the 2024 Edition and bump the MSRV to 1.85. - Fix a set of Miri failures in the intrinsics implementations. We were computing (though not dereferencing) an out-of-bounds pointer using `add` rather than `wrapping_add`. I'm not aware of any observable consequences of this bug. See https://github.com/BLAKE3-team/BLAKE3/pull/507. - CPU feature detection on x86/x86-64 no longer requires the `std` Cargo feature in the `blake3` crate. - Build fixes in the C implementation for macOS and Cygwin, and various improvements to the CMake build.
2026-01-08update to the 2024 editionJack O'Connor
While we're taking this MSRV bump, we can also update `constant_time_eq`, which uses the 2024 edition in its most recent versions.
2026-01-08bump constant_time_eq version to 0.4.2silverstillisntgold
2025-11-12Revert "pin `generic-array` to the un-deprecated version"Jack O'Connor
Upstream `crypto-common` now does the pin itself: https://github.com/RustCrypto/traits/issues/2036#issuecomment-3522196740
2025-11-11pin `generic-array` to the un-deprecated versionJack O'Connor
This is a temporary hack to fix warnings in CI. Upstream tracking issue: https://github.com/RustCrypto/traits/issues/2036
2025-04-24update docs for the "std" featureJack O'Connor
Previously "std" enabled runtime CPU feature detection on x86, but as of https://github.com/BLAKE3-team/BLAKE3/pull/469 that's always on.
2025-04-24Check x86 features even in `no_std`Nazar Mokrynskyi
2025-04-20version 1.8.21.8.2Jack O'Connor
Changes since 1.8.1: - Fixes to the CMake build, particularly around the new TBB feature.
2025-04-20Remove `std` feature from `rayon` featureNazar Mokrynskyi
2025-04-02version 1.8.11.8.1Jack O'Connor
Changes since 1.8.0: - [CMake] Fix transitive dependencies for TBB when libblake3 is built with BLAKE3_USE_TBB=1 (#460 and #461).
2025-03-30version 1.8.01.8.0Jack O'Connor
Changes since 1.7.0: - The Rust crate now provides the `blake3::hazmat` module, which replaces the undocumented and now deprecated `blake3::guts` module. This is intended for advanced use cases like Bao and Iroh, which need to manipulate chunk and subtree "chaining values" directly. See the module docs for more: https://docs.rs/blake3/1.8.0/blake3/hazmat
2025-03-18version 1.7.01.7.0Jack O'Connor
Changes since 1.6.1: - The C implementation has gained multithreading support, based on Intel's oneTBB library. This works similarly to the Rayon-based multithreading used in the Rust implementation. See c/README.md for details. Contributed by @silvanshade (#445). - The Rust implementation has gained a WASM SIMD backend, gated by the `wasm32_simd` Cargo feature. Under Wasmtime on my laptop, this is a 6x performance improvement for large inputs. This backend is currently Rust-only. Contributed by @monoid (#341). - Fixed cross-compilation builds targeting Windows with cargo-xwin. Contributed by @Sporif and @toothbrush7777777 (#230). - Added `b3sum --tag`, which changes the output format. This is for compatibility with GNU checksum tools (which use the same flag) and BSD checksum tools (which use the output format this flag turns on). Contributed by @leahneukirchen (#453) and @dbohdan (#430).
2025-03-18README.md tweaksJack O'Connor
2025-03-16Misc textual improvementsIvan Boldyrev
2025-03-16Wasm32 SIMD implementationIvan Boldyrev
This code is based on rust_sse2.rs of the same distribution, and is subject to further improvements. Some comments are left intact even if their applicability is questioned. SIMD implementation is gated by `wasm32-simd` feature, portable version is used otherwise. Performance measurements with a primitive benchmark with ~16Kb of data: | M1 native | 11,610 ns | | M1 WASM SIMD | 13,355 ns | | M1 WASM | 22,037 ns | | x64 native | 6,713 ns | | x64 WASM SIMD | 11,985 ns | | x64 WASM | 25,978 ns | wasmtime v12.0.1 was used on both platforms. Closes #187.
2025-02-27version 1.6.11.6.1Jack O'Connor
Changes since 1.6.0: - Remove `mmap` from the default features list. It was added accidentally in v1.6.0, last week. This is technically a backwards-incompatible change, but I would rather not tag v2.0.0 for a build-time bugfix with a simple workaround.
2025-02-27remove mmap from the default features listJack O'Connor
I committed this change accidentally in a12fa7b8a4131d77c35eda5c680b9307a0fc28d3. Thanks to @ArmoredPony for catching this in https://github.com/BLAKE3-team/BLAKE3/issues/452.
2025-02-17version 1.6.01.6.0Jack O'Connor
Changes since 1.5.5: - Add Hash::from_slice. (#448) - Fix a build error on Windows 7 targets. (#447)
2025-02-06remove checks that memmap2 does internallyJack O'Connor
2025-02-03upgrade rand to v0.9Jack O'Connor
2024-11-26version 1.5.51.5.5Jack O'Connor
Changes since 1.5.4: - `b3sum --check` now supports checkfiles with Windows-style newlines. `b3sum` still emits Unix-style newlines, even on Windows, but sometimes text editors or version control tools will swap them. - The "digest" feature (deleted in v1.5.2) has been added back to the `blake3` crate. This is for backwards compatibility only, and it's insta-deprecated. All callers should prefer the "traits-preview" feature.
2024-11-26add back an explicit "digest" feature, for back compatJack O'Connor
2024-08-27Remove Miri equality workaround functionAaron Feickert
2024-08-19version 1.5.41.5.4Jack O'Connor
Changes since 1.5.3: - Initial implementation of SIMD acceleration for the XOF (i.e. blake3::Hasher::finalize_xof). This brings long output performance into line with long input performance. Currently AVX-512-only and Unix-only. - Add build support for "gnullvm" targets (Clang on Windows). - The "zeroize" feature no longer depends on proc-macros and syn.
2024-08-15update our required version of `cc`Jack O'Connor
Fixes https://github.com/BLAKE3-team/BLAKE3/issues/416.
2024-07-17Manually implement `Zeroize`Gard Kylling
Removes dependence on proc-macros when enabling the zeroize feature.
2024-07-14version 1.5.31.5.3Jack O'Connor
Changes since 1.5.2: - Revert the serialization change. It was intended to be backwards compatible, but that didn't hold for non-self-describing serialization formats like bincode. See #414.
2024-07-14Revert "serialize Hash with serde_bytes"Jack O'Connor
This mostly reverts commits 8416b1658c2690dc6351bdc7e0975b0d5f1a5282 and dd0afd640ad97b5ebcf887107162009a23ffdca0. Changing the serialization of Hash can only be backwards-compatible in self-describing formats like CBOR. In non-self-describing formats like bincode, the deserializer has to know in advance which serialization format was used. Fixes https://github.com/BLAKE3-team/BLAKE3/issues/414. Reopens https://github.com/BLAKE3-team/BLAKE3/issues/412.
2024-07-12version 1.5.21.5.2Jack O'Connor
Changes since 1.5.1: - `build.rs` sets `cc::Build::emit_rerun_if_env_changed(false)` to prevent some unnecessary rebuilds, particularly when the `PATH` changes on Windows. See #324. - Serializing a `Hash` produces a bytestring instead of an array in formats that support bytestrings (like CBOR). Deserialization is backwards-compatible with the array format. - Cleanup and edge case fixes in the C and CMake builds.
2024-07-09serialize Hash with serde_bytesJack O'Connor
Closes #412.
2024-07-03add a comment about depending on rayon-coreJack O'Connor
2024-07-03Switch to rayon-core for faster buildsilvanshade
2024-06-01update the license field in Cargo.tomlJack O'Connor
2024-03-12version 1.5.11.5.1Jack O'Connor
Changes since 1.5.0: - The Rust crate is now compatible with Miri. - ~1% performance improvement on Arm NEON contributed by @divinity76 (#384). - Various fixes and improvements in the CMake build. - The MSRV of b3sum is now 1.74.1. (The MSRV of the library crate is unchanged, 1.66.1.)
2024-01-21update memmap2 to v0.9Jack O'Connor
2023-09-20version 1.5.01.5.0Jack O'Connor
Changes since 1.4.1: - The Rust crate's Hasher type has gained new helper methods for common forms of IO: update_reader, update_mmap, and update_mmap_rayon. The latter matches the default behavior of b3sum. The mmap methods are gated by the new "mmap" Cargo feature. - Most of the Rust crate's public types now implement the Zeroize trait. This is gated by the new "zeroize" Cargo feature. - The Rust crate's Hash types now implements the serde Serialize and Deserialize traits. This is gated by the new "serde" Cargo feature. - The C library now uses atomics to cache detected CPU features under most compilers other than MSVC. Previously this was a non-atomic write, which was probably "benign" but made TSan unhappy. - NEON support is now disabled by default on big-endian AArch64. Previously this was a build error if the caller didn't explicitly disable it.
2023-09-19add a test for the new serde featureJack O'Connor
2023-09-19Add serde support for Hash behind optional featureRalph Minderhoud
Added a new cargo feature `serde` that when enabled will derive `serde::Serialize` and `serde::Deserialize` for the `blake3::Hash` struct.
2023-09-16replace the new file module with inherent methods on HasherJack O'Connor
New methods: - update_reader - update_mmap - update_mmap_rayon These are more discoverable, more convenient, and safer. There are two problems I want to avoid by taking a `Path` instead of a `File`. First, exposing `Mmap` objects to the caller is fundamentally unsafe, and making `maybe_mmap_file` private avoids that issue. Second, taking a `File` raises questions about whether memory mapped reads should behave like regular file reads. (Should they respect the current seek position? Should they update the seek position?) Taking a `Path` from the caller and opening the `File` internally avoids these questions.
2023-09-16move file operations from b3sum to blake3Banyc
2023-09-16document the `zeroize` Cargo featureJack O'Connor
As part of this change, I don't think we need the `zeroize_crate` workaround anymore if we use the relateively new `dep:` syntax in Cargo.toml.
2023-09-10update dev-dependenciesJack O'Connor
2023-07-16Remove unneeded digest/std in std featureElichai Turkel
2023-07-16Implement Zeroize on exported typesElichai Turkel
2023-07-06version 1.4.11.4.1Jack O'Connor
Changes since 1.4.0: - Improved performance in the ARM NEON implementation for both C and Rust callers. This affects AArch64 targets by default and ARMv7 targets that explicitly enable (and support) NEON. The size of the improvement depends on the microarchitecture, but I've benchmarked ~1.3x on a Cortex-A53 and ~1.2x on an Apple M1. Contributed by @sdlyyxy in #319. - The MSRV is now 1.66.1 for both the `blake3` crate and `b3sum`.
2023-07-06update constant_time_eq to v0.3.0Jack O'Connor
This bumps the MSRV of both `blake3` and `b3sum` to 1.66.1.
2023-06-08version 1.4.01.4.0Jack O'Connor
Changes since 1.3.3: - The C implementation provides a `CMakeLists.txt` for callers who build with CMake. The CMake build is not yet stable, and callers should expect breaking changes in patch version updates. The "by hand" build will always continue to be supported and documented. - `b3sum` supports the `--seek` flag, to set the starting position in the output stream. - `b3sum --check` prints a summary of errors to stderr. - `Hash::as_bytes` is const. - `Hash` supports `from_bytes`, which is const.
2023-03-25upgrade all Cargo.toml files to edition=2021Jack O'Connor
The MSRV is already 1.60, so this doesn't affect much. The only impact to other code is that we no longer need to explicitly import TryInto.
2022-11-26version 1.3.31.3.3Jack O'Connor
Changes since 1.3.2: - Fix incorrect output from AVX-512 intrinsics under GCC 5.4 and 6.1 in debug mode. This bug was found in unit tests and probably doesn't affect the public API in practice. See https://github.com/BLAKE3-team/BLAKE3/issues/271.
2022-11-20version 1.3.2:1.3.2Jack O'Connor
Changes since 1.3.1: - Dependency updates only. This includes updating Clap to v4, which changes the format of the `b3sum --help` output. The new MSRV is 1.59.0 for `blake3` and 1.60.0 for `b3sum`. Note that this project doesn't have any particular MSRV policy, and we don't consider MSRV bumps to be breaking changes.