Links against
jemallocand provides aJemallocunit type that implements the allocator APIs and can be set as the#[global_allocator]
The jemalloc support ecosystem consists of the following crates:
jemalloc-sys: builds and links against jemalloc exposing raw C bindings to it.jemallocator: provides the Jemalloc type which implements the
GlobalAlloc and Alloc traits.jemalloc-ctl: high-level wrapper over jemalloc's control and introspection
APIs (the mallctl*() family of functions and the MALLCTL NAMESPACE)'To use jemallocator add it as a dependency:
# Cargo.toml
[dependencies]
[target.'cfg(not(target_env = "msvc"))'.dependencies]
jemallocator = "0.3.2"
To set jemallocator::Jemalloc as the global allocator add this to your project:
# main.rs
#[cfg(not(target_env = "msvc"))]
use jemallocator::Jemalloc;
#[cfg(not(target_env = "msvc"))]
#[global_allocator]
static GLOBAL: Jemalloc = Jemalloc;
And that's it! Once you've defined this static then jemalloc will be used for
all allocations requested by Rust code in the same program.
The following table describes the supported platforms:
build: does the library compile for the target?run: do jemallocator and jemalloc-sys tests pass on the target?jemalloc: do jemalloc's tests pass on the target?valgrind: do the tests pass under valgrind?Tier 1 targets are tested on all Rust channels (stable, beta, and nightly). All other targets are only tested on Rust nightly.
| Linux targets: | build | run | jemalloc | valgrind |
|---|---|---|---|---|
aarch64-unknown-linux-gnu | ✓ | ✓ | ✗ | ✗ |
arm-unknown-linux-gnueabi | ✓ | ✓ | ✗ | ✗ |
armv7-unknown-linux-gnueabi | ✓ | ✓ | ✗ | ✗ |
i586-unknown-linux-gnu | ✓ | ✓ | ✓ | ✗ |
i686-unknown-linux-gnu (tier 1) | ✓ | ✓ | ✓ | ✗ |
mips-unknown-linux-gnu | ✓ | ✓ | ✗ | ✗ |
mipsel-unknown-linux-musl | ✓ | ✓ | ✗ | ✗ |
mips64-unknown-linux-gnuabi64 | ✓ | ✓ | ✗ | ✗ |
mips64el-unknown-linux-gnuabi64 | ✓ | ✓ | ✗ | ✗ |
powerpc-unknown-linux-gnu | ✓ | ✓ | ✗ | ✗ |
powerpc64-unknown-linux-gnu | ✓ | ✓ | ✗ | ✗ |
powerpc64le-unknown-linux-gnu | ✓ | ✓ | ✗ | ✗ |
x86_64-unknown-linux-gnu (tier 1) | ✓ | ✓ | ✓ | ✓ |
| MacOSX targets: | build | run | jemalloc | valgrind |
x86_64-apple-darwin (tier 1) | ✓ | ✓ | ✗ | ✗ |
i686-apple-darwin (tier 1) | ✓ | ✓ | ✗ | ✗ |
| Windows targets: | build | run | jemalloc | valgrind |
x86_64-pc-windows-msvc (tier 1) | ✗ | ✗ | ✗ | ✗ |
i686-pc-windows-msvc (tier 1) | ✗ | ✗ | ✗ | ✗ |
x86_64-pc-windows-gnu (tier 1) | ✓ | ✓ | ✗ | ✗ |
i686-pc-windows-gnu (tier 1) | ✓ | ✓ | ✗ | ✗ |
| Android targets: | build | run | jemalloc | valgrind |
aarch64-linux-android | ✓ | ✓ | ✗ | ✗ |
x86_64-linux-android | ✓ | ✓ | ✓ | ✗ |
The jemallocator crate re-exports the features of the jemalloc-sys
dependency.
This project is licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in jemallocator by you, as defined in the Apache-2.0 license,
shall be dual licensed as above, without any additional terms or conditions.
912 followers · starred Aug 2026
1,045 followers · starred Apr 2019
2,130 followers · starred Jul 2024
654 followers · starred Apr 2025
Links against
jemallocand provides aJemallocunit type that implements the allocator APIs and can be set as the#[global_allocator]
The jemalloc support ecosystem consists of the following crates:
jemalloc-sys: builds and links against jemalloc exposing raw C bindings to it.jemallocator: provides the Jemalloc type which implements the
GlobalAlloc and Alloc traits.jemalloc-ctl: high-level wrapper over jemalloc's control and introspection
APIs (the mallctl*() family of functions and the MALLCTL NAMESPACE)'To use jemallocator add it as a dependency:
# Cargo.toml
[dependencies]
[target.'cfg(not(target_env = "msvc"))'.dependencies]
jemallocator = "0.3.2"
To set jemallocator::Jemalloc as the global allocator add this to your project:
# main.rs
#[cfg(not(target_env = "msvc"))]
use jemallocator::Jemalloc;
#[cfg(not(target_env = "msvc"))]
#[global_allocator]
static GLOBAL: Jemalloc = Jemalloc;
And that's it! Once you've defined this static then jemalloc will be used for
all allocations requested by Rust code in the same program.
The following table describes the supported platforms:
build: does the library compile for the target?run: do jemallocator and jemalloc-sys tests pass on the target?jemalloc: do jemalloc's tests pass on the target?valgrind: do the tests pass under valgrind?Tier 1 targets are tested on all Rust channels (stable, beta, and nightly). All other targets are only tested on Rust nightly.
| Linux targets: | build | run | jemalloc | valgrind |
|---|---|---|---|---|
aarch64-unknown-linux-gnu | ✓ | ✓ | ✗ | ✗ |
arm-unknown-linux-gnueabi | ✓ | ✓ | ✗ | ✗ |
armv7-unknown-linux-gnueabi | ✓ | ✓ | ✗ | ✗ |
i586-unknown-linux-gnu | ✓ | ✓ | ✓ | ✗ |
i686-unknown-linux-gnu (tier 1) | ✓ | ✓ | ✓ | ✗ |
mips-unknown-linux-gnu | ✓ | ✓ | ✗ | ✗ |
mipsel-unknown-linux-musl | ✓ | ✓ | ✗ | ✗ |
mips64-unknown-linux-gnuabi64 | ✓ | ✓ | ✗ | ✗ |
mips64el-unknown-linux-gnuabi64 | ✓ | ✓ | ✗ | ✗ |
powerpc-unknown-linux-gnu | ✓ | ✓ | ✗ | ✗ |
powerpc64-unknown-linux-gnu | ✓ | ✓ | ✗ | ✗ |
powerpc64le-unknown-linux-gnu | ✓ | ✓ | ✗ | ✗ |
x86_64-unknown-linux-gnu (tier 1) | ✓ | ✓ | ✓ | ✓ |
| MacOSX targets: | build | run | jemalloc | valgrind |
x86_64-apple-darwin (tier 1) | ✓ | ✓ | ✗ | ✗ |
i686-apple-darwin (tier 1) | ✓ | ✓ | ✗ | ✗ |
| Windows targets: | build | run | jemalloc | valgrind |
x86_64-pc-windows-msvc (tier 1) | ✗ | ✗ | ✗ | ✗ |
i686-pc-windows-msvc (tier 1) | ✗ | ✗ | ✗ | ✗ |
x86_64-pc-windows-gnu (tier 1) | ✓ | ✓ | ✗ | ✗ |
i686-pc-windows-gnu (tier 1) | ✓ | ✓ | ✗ | ✗ |
| Android targets: | build | run | jemalloc | valgrind |
aarch64-linux-android | ✓ | ✓ | ✗ | ✗ |
x86_64-linux-android | ✓ | ✓ | ✓ | ✗ |
The jemallocator crate re-exports the features of the jemalloc-sys
dependency.
This project is licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in jemallocator by you, as defined in the Apache-2.0 license,
shall be dual licensed as above, without any additional terms or conditions.
912 followers · starred Aug 2026
1,045 followers · starred Apr 2019
2,130 followers · starred Jul 2024
654 followers · starred Apr 2025