Repository navigation
rustfs-mimalloc v0.7.0
mimalloc V3 (v3.5.4) bindings for Rust.
Changed
-
Breaking (
rustfs-mimalloc-profiling): the default profiling core no
longer selects an allocator. InstallSamplingAllocator<A>around the
application'sGlobalAllocprovider. Bothmimalloc::MiMallocand
rustfs_mimalloc::MiMallocuse the same recorder and pprof implementation. -
Keep the existing
SamplingMiMalloc::new()andDefaultconvenience API
behind the explicitrustfs-allocatorfeature. Library adapters can depend
on the core withdefault-features = false. -
Keep all three crate versions synchronized at 0.7.0 and refresh the locked
libc resolution to 0.2.191. The pinned native allocator and ABI are unchanged. -
Restrict direct object parsing to uncompressed Linux ELF metadata, disabling
unused format/compression features and removing the ruzstd decoder dependency.
Backtrace symbolization keeps its existing features.
Added
- Stateful-provider forwarding contracts for alignment, zeroing, realloc
failure/in-place/move outcomes and cross-thread free, with deterministic
live-record rollback checks independent of provider size classes. - A shared behavior/release test suite run from independent Cargo workspaces
for both providers. Provider requirements come from root workspace dependencies;
resolved dependency graphs reject accidental inclusion of a second allocator. - Default-core, optional compatibility API and dual-provider validation of the
normalized published archive, plus stable/Rust 1.95 and platform CI checks.
Installation
[dependencies]
rustfs-mimalloc = "0.7.0"
rustfs-mimalloc-profiling = { version = "0.7.0", features = ["rustfs-allocator"] }Full Changelog: v0.6.1...v0.7.0