Find a file
Jay Lee a09f18a739
Make CI green again
- disable configure verify check
- update configure file and make clippy happy
- check autoconf version
- fix allow_failures
- i686-apple target are not supported now
- use latest travis syntax
- less verbose and allow non-master check fail
    Upstream doesn't guarantee configure file matches across platform and
    versions. Checking configure file can fail easily
- mute alloc_trait tests
- rich diff
- remove unsupported platform
    i686-apple-darwin is removed from nightly and beta.
- make clippy and rustfmt happy

Signed-off-by: Jay Lee <BusyJayLee@gmail.com>
2020-07-17 21:22:46 +08:00
.github/workflows Add Github Actions 2019-11-28 14:13:41 +01:00
benches Make CI green again 2020-07-17 21:22:46 +08:00
ci Make CI green again 2020-07-17 21:22:46 +08:00
jemalloc-ctl Make CI green again 2020-07-17 21:22:46 +08:00
jemalloc-sys Make CI green again 2020-07-17 21:22:46 +08:00
jemallocator-global Bump patch versions again 2019-06-16 17:39:15 +02:00
src Make CI green again 2020-07-17 21:22:46 +08:00
systest Make CI green again 2020-07-17 21:22:46 +08:00
tests Update links 2019-04-25 10:03:12 +02:00
.appveyor.yml move init submodules to right after the clone phase 2018-11-18 12:29:02 +01:00
.gitignore Initial commit 2016-01-20 17:03:24 -08:00
.gitmodules update jemalloc5.1RC1 to jemalloc5.1 2018-05-16 19:16:50 +02:00
.travis.yml Make CI green again 2020-07-17 21:22:46 +08:00
Cargo.toml Bump patch versions again 2019-06-16 17:39:15 +02:00
Cross.toml Allow jemalloc-sys to pick jemalloc from git 2019-04-03 20:03:09 +02:00
LICENSE-APACHE Fill out some more project metadata 2016-01-20 17:06:21 -08:00
LICENSE-MIT Fill out some more project metadata 2016-01-20 17:06:21 -08:00
README.md Added modern instructions 2019-10-10 14:22:16 +02:00

jemallocator

Travis-CI Status Appveyor Status Latest Version docs

Links against jemalloc and provides a Jemalloc unit type that implements the allocator APIs and can be set as the #[global_allocator]

Overview

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)'

Documentation

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.

Platform support

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

Features

The jemallocator crate re-exports the features of the jemalloc-sys dependency.

License

This project is licensed under either of

at your option.

Contribution

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.