| Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
|
|
|
|
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.
|
|
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.)
|
|
|
|
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.
|
|
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.
|
|
|
|
|
|
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`.
|
|
This bumps the MSRV of both `blake3` and `b3sum` to 1.66.1.
|
|
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.
|
|
|
|
|
|
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.
|
|
This one is less security/correctness-critical than the other one I just
added, but I might as well be consistent.
|
|
|
|
This matches what md5sum does.
|
|
|
|
|
|
Add a warning to stderr at the end similar to other *sum utilities when --check is used and some files failed verification.
At least the last part of the comment above check_one_checkfile seemed to be incorrect so I removed that comment.
Fixes #283
|
|
|
|
|
|
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.
|
|
|
|
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.
|
|
v6.4.0 has a bug where invalid UTF-16 filenames fail a debug_assert on
Windows. See https://github.com/dylni/os_str_bytes/issues/14. The vast
majority of b3sum users should be running a binary built in release mode
and shouldn't be affected by this. This lockfile change fixes our CI,
but note that `cargo install` doesn't respect lockfiles by default
(without --locked), so anyone running a debug binary against invalid
Windows filepaths (very rare) will still need to wait for an upstream
patch release.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Migrate from the abandoned memmap library to the now maintained fork
of memmap2
|
|
Changes since 1.3.0:
- The unstable `traits-preview` feature now includes an implementation
of `crypto_common::BlockSizeUser`, AKA
`digest::core_api::BlockSizeUser`. This allows `blake3::Hasher` to be
used with `hmac::SimpleHmac`.
|
|
Changes since 1.2.0:
- Added blake3_hasher_reset to the C API, for parity with the Rust API.
- Updated digest to v0.10. This version merged the crypto-mac crate with
digest, so the dependency on crypto-mac has been removed. These trait
implementations are still gated behind the "traits-preview" feature.
- Updated clap to v3.
|
|
|
|
Adjust to the following changes that happened in digest:
- The crypto-mac crate has been merged into digest (with "mac" feature
enabled)
- Various traits have been split up
- The Digest and Mac traits now share their update/finalize/reset
implementations
- The BlockInput trait was dropped without replacement apparently (as
long as the low-level core API is not used)
|
|
We'll need to make sure to update this when we do a version bump. Adding
an explicit `!Cargo.lock` line to b3sum/.gitignore helps with this, by
making sure Cargo.lock shows up by defauls in searches like:
rg "1\.2\.0"
Closes https://github.com/BLAKE3-team/BLAKE3/issues/210.
|