Thanks to visit codestin.com
Credit goes to lib.rs

#mi-malloc #allocator

no-std baby-mimalloc

Mimalloc implemented in Rust (not a binding to the C library) with only basic features

4 releases

0.2.1 Dec 18, 2024
0.2.0 Dec 9, 2024
0.1.1 Dec 9, 2024
0.1.0 Dec 9, 2024

#603 in Memory management

Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App

1,144 downloads per month
Used in libafl_asan

Apache-2.0

47KB
1K SLoC

baby-mimalloc

Crates.io Version docs.rs

Mimalloc implemented in Rust (not a binding to the C library) with only basic features.

Lock-free multi-threading, security features, and some performance enhancements are not implemented.

It can be used in no_std environments.

Crate Features

  • mmap - Provide MimallocMmap that uses mmap as OS allocator for segments.
  • std_mutex - Provide MimallocMutexWrapper that wraps Mimalloc inside std::sync::Mutex and implements GlobalAlloc.
  • spin_mutex - Provide MimallocMutexWrapper that wraps Mimalloc inside spin::Mutex that can be used in no_std environments.
  • deferred_free - Enable registering a hook to complete deferred free events. See the documentation of mi_register_deferred_free.

Usage

[dependencies]
baby-mimalloc = { version = "*", features = ["mmap", "std_mutex"] }
# baby-mimalloc = { version = "*", features = ["mmap", "spin_mutex"] }
use baby_mimalloc::{new_mimalloc_mmap_mutex, MimallocMmapMutex};

#[global_allocator]
static ALLOCATOR: MimallocMmapMutex = new_mimalloc_mmap_mutex();

Dependencies

~49KB