Comparing v1.5.0...v1.5.2 · srijs/rust-crc32fast · GitHub
Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: srijs/rust-crc32fast
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.5.0
Choose a base ref
...
head repository: srijs/rust-crc32fast
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.5.2
Choose a head ref
  • 8 commits
  • 10 files changed
  • 7 contributors

Commits on Jul 19, 2026

  1. Configuration menu
    Copy the full SHA
    50e2046 View commit details
    Browse the repository at this point in the history

Commits on Jul 20, 2026

  1. consolidate dword load in baseline implementation (#55)

    On my Ryzen 5900X system, baseline requires 16 byte loads per 16 byte
    block. This can be rewritten to consolidate 4 loads of the first 4 bytes
    into a single dword load. This resulted in a 5-10% throughput increase
    in the benchmarks.
    
    I have not benchmarked on big endian systems, but I suspect the
    additional byte swap does not meaningfully reduce the win.
    nickbabcock authored Jul 20, 2026
    Configuration menu
    Copy the full SHA
    d5c123d View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2026

  1. Configuration menu
    Copy the full SHA
    f066e8d View commit details
    Browse the repository at this point in the history
  2. release 1.5.1

    srijs committed Aug 22, 2026
    Configuration menu
    Copy the full SHA
    a150f65 View commit details
    Browse the repository at this point in the history

Commits on Aug 27, 2026

  1. Update license links (#58)

    atouchet authored Aug 27, 2026
    Configuration menu
    Copy the full SHA
    9d02870 View commit details
    Browse the repository at this point in the history

Commits on Sep 8, 2026

  1. Configuration menu
    Copy the full SHA
    1e291e6 View commit details
    Browse the repository at this point in the history

Commits on Sep 12, 2026

  1. perf(baseline): fold whole 16-byte blocks in the tail (#61)

    `update_fast_16` dropped straight to the byte-at-a-time loop for anything
    under 64 bytes. Keep the 4x unrolled 64-byte loop and add a 16-byte loop
    after it, so only the final <16 bytes go through update_slow.
    
    The fold body moves into an `#[inline(always)] fold_16` helper so both loops
    share it. Bounds checks are fully elided: the generated code contains no
    panic_bounds_check references, and the crate benches are unchanged.
    
    55-70% faster on small and awkward inputs (16, 63, 100, 255 bytes),
    13-24% on larger inputs with a tail (1000, 4095), and neutral on exact
    multiples of 64.
    
    Also adds `s390x-unknown-linux-gnu` to the cross-test matrix: every existing
    target is little-endian, so nothing in CI exercises the big-endian paths.
    The decode here is explicitly little-endian (`from_le_bytes` plus indexing)
    and is endianness-independent by construction, but that was untested.
    
    Idea and initial benchmarks from #60.
    
    Co-authored-by: chiri <chirizxc@proton.me>
    srijs and chirizxc authored Sep 12, 2026
    Configuration menu
    Copy the full SHA
    9272707 View commit details
    Browse the repository at this point in the history
  2. release 1.5.2

    srijs committed Sep 12, 2026
    Configuration menu
    Copy the full SHA
    7eb0b8a View commit details
    Browse the repository at this point in the history
Loading