NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #919 most downloaded on crates.io
Conditional move CPU intrinsics which are guaranteed on major platforms (ARM32/ARM64, x86/x86_64, RISC-V) to execute in constant-time and not be rewritten as branches by the compiler. Provides wrappers for the CMOV family of instructions on x86/x86_64 and CSEL on AArch64, along with a portable "best-effort" pure Rust fallback implementation.
Last release 4 months ago
28 May 2026
Ships unpredictably
gaps range from 8 days to 1.9 years
Nearly every release is documented
notes for 6 of 6 stable releases
12 versions withdrawn
withdrawn after publishing
5 years old
21 releases · first in 2022
Fix GHSA-3rjw-m598-pq24 ]: Cmov / CmovEq on aarch64 can produce wrong results if high-bits of registers are set
Cmov/CmovEq on aarch64 can produceCmov/CmovEq on aarch64 can produce wrong results if high-bits of registers are set (dba6c355)One column per quarter.
Impl Cmov / CmovEq for NonZeroUsize / NonZeroIsize
Cmov/CmovEq for NonZeroUsize/NonZeroIsize (#1415)asm! under cfg(miri) (#1436)Cmov impl for isize/usize ([#1412])
Cmov impl for isize/usize (#1412)riscv32 optimised mask generation ([#1396])
Optimized CmovEq for [u8] ([#1356])
CmovEq for [u8] (#1356)CmovEq for [u16] (#1370)Cmov/CmovEq for slices of unsigned integers (#1370, #1372)Cmov/CmovEq for slices of signed integers (#1373)Cmov/CmovEq for isize/usize (#1375)Cmov/CmovEq for [T; N] are now bounded on [T]: Cmov(Eq) (#1372)CmovEq for [T] where T: CmovEq in favor of specialized impls (#1356)Nothing published for this version
Nothing published for this version
Nothing published for this version
Optimized Cmov for [u8; N] ([#1350])
Introduce small ARM32 asm! optimization which also guarantees constant-time operation ([#1336], [#1346])
Fix non-constant-time assembly being emitted from portable backend on thumbv6m-none-eabi ([#1332])
thumbv6m-none-eabi (#1332)Truncation bug in portable implementation ([#1300])
Signed integer support ([#1280])
Use black_box in portable impl ([#1255])
black_box in portable impl (#1255)Edition changed to 2024 and MSRV bumped to 1.85 ([#1149])
CmovEq impl for slices ([#954])
miri support by forcing the portable backend ([#864])
Condition alias for u8 ([#830])
cmovz/cmovnz-alike support for AArch64 targets ([#744])
cmovz/cmovnz-alike support for AArch64 targets (#744)- Initial release
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →