aboutsummaryrefslogtreecommitdiff
path: root/b3sum
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.
2025-10-30add a warning to the --check docJack O'Connor
2025-05-07update duct to v1.0.0Jack O'Connor
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-13update what_does_check_do.md to mention \r escapingJack O'Connor
Windows newline escaping was added in b3sum v1.5.5 last year (1170f023bf459ea3d0bedd285d6ae32309ee348c), and this commit updates the check doc to reflect that. Note that Coreutils added \r escaping in v9.0 in 2021 (https://github.com/coreutils/coreutils/commit/ed1c58427d574fb4ff0cb8f915eb0d554000ceeb), a year after the original check doc was written.
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-30add the `hazmat` module and deprecate the undocumented `guts` moduleJack O'Connor
https://github.com/BLAKE3-team/BLAKE3/pull/458
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-02-28use rsplit_once for parsing tagged lines, add test casesJack O'Connor
2025-02-28make anyhow::Result explicit in main.rsJack O'Connor
2025-02-28use --tag docstring wording closer to md5sum'sJack O'Connor
2025-02-28reduce code duplication in parse_check_lineJack O'Connor
2025-02-28combine test_check and test_check_tagJack O'Connor
2025-02-28add testsLeah Neukirchen
Adapted from https://github.com/BLAKE3-team/BLAKE3/pull/430/ by dbohdan.
2025-02-28b3sum: add tag support for --checkLeah Neukirchen
2025-02-28b3sum: add --tagLeah Neukirchen
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-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-17update b3sum/Cargo.lockJack O'Connor
2024-11-26another Windows-style newlines testJack 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-25add support for windows newlines in b3sum --checkJack O'Connor
Fixes #222.
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-19update b3sum/Cargo.lockJack O'Connor
2024-07-15Update the license field in b3sum/Cargo.tomlBenjamin A. Beasley
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-14update Cargo.lockJack O'Connor
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-12update b3sum/Cargo.lockJack O'Connor
2024-07-12update b3sum license symlinksJack O'Connor
2024-07-03Switch to rayon-core for faster buildsilvanshade
2024-03-12Fix missing LICENSE file in b3sum crateBenjamin A. Beasley
Add a symbolic link to the top-level license file; this is dereferenced by cargo publish, and the LICENSE appears as a regular file in the published crate.
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-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-10update dev-dependenciesJack O'Connor
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-06-08update memmap2 to v0.7.0Jack O'Connor
2023-06-06add b3sum --seekJack O'Connor
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.
2023-02-04do another saturating_add for consistencyJack O'Connor
This one is less security/correctness-critical than the other one I just added, but I might as well be consistent.
2023-02-04suppress expected stderr prints in b3sum testsJack O'Connor
2023-02-04add a colon to the b3sum warning formatJack O'Connor
This matches what md5sum does.
2023-02-04do a saturating_add for files_failedJack O'Connor