NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #2248 most downloaded on crates.io
Easy function multiversioning
Last release 1 months ago
06 Sep 2026
Ships unpredictably
gaps range from 2 weeks to 2.3 years
Nearly every release is documented
notes for 16 of 16 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
16 releases · first in 2019
Use BTreeMap for deterministic cfg target order (fixes nondeterministic SVH) by @pchikku in #50
Full Changelog: 0.8.0...0.9.0
One column per quarter.
targets = "simd" with corrected x86-64 architecture levels and support for AArch64 SVE, LoongArch64 LASX, S390x vectors, and additional architectures behind a new nightly Cargo feature.#[inherit_target] functions can now be called without an unsafe block or returned as safe function pointers from their enclosing multiversioned function.target-features dependency is now optional; enable the target-features feature to use selected_target!.r#type.std feature now makes the crate no_std.'static, '_, and bounded lifetimes in multiversioned function signatures.unsafe fn bodies containing implicit unsafe operations.Upgraded to syn 2. This shouldn't break compatibility with the 0.7 releases, but there might be minor differences.
Fix is_{arch}_feature_detected path for non-x86.
is_{arch}_feature_detected path for non-x86.Don't include unstable target features in targets = "simd" .
targets = "simd".Added workaround for documentation bug
Fixed handling patterns in match_target .
match_target.The multiversion macro has been overhauled. Now uses a single attribute macro, rather than helper attributes.
multiversion macro has been overhauled. Now uses a single attribute macro, rather than helper attributes.multiversion::target module for querying the selected target features.x86-64-v2 or skylake).targets = "simd" option to automatically target all SIMD instruction sets.specialize mode. All targets now specify clones. Specialization should be implemented by querying the selected targets.self or Self. Previous support was inconsistent and difficult to use correctly.impl Trait support. Using impl Trait in return position now results in an error.Fixed disallowing some valid architectures, such as "wasm32"
Added are_cpu_features_detected macro.
are_cpu_features_detected macro.#[crate_path] helper attribute for renaming/reimporting the crate.runtime_dispatch Cargo feature to std#[static_dispatch] helper attribute to dispatch! helper macro.Removed dependency on regex and once_cell
regex and once_cell#[multiversion] failed to compile when crate was re-exported or renamed.Support for associated functions (including methods).
impl Trait.#[safe_inner] helper attribute for #[target].#[target_clones] attribute (functionality is now included in #[multiversion] attribute).#[multiversion] interface now uses helper attributes, providing both target specialization and function cloning.compile_error! instead of macro panics.Cargo feature runtime_dispatch (enabled by default) which adds runtime CPU feature detection.
runtime_dispatch (enabled by default) which adds runtime CPU feature detection.#[no_std] support when the runtime_dispatch feature is disabled.sse4.2.Conditional compilation with #[target_cfg] helper macro
#[target_cfg] helper macromultiversion macro now requires unsafe to dispatch unsafe functions from safe functionsImproved ergonomics of multiversion macro. It has been changed from a function-like macro to a macro attribute.
multiversion macro. It has been changed from a function-like macro to a macro attribute.target macro attribute#[static_dispatch] helper macroasync, lifetimes, and generic functions### Fixed - Removed an extra dependency
Initial multiversion implementation
Your coding agent can read these notes before it upgrades. Set up the MCP server →