2018-07-12 10:51:07 +00:00
|
|
|
# jemalloc-sys - Rust bindings to the `jemalloc` C library
|
2018-05-02 15:28:25 +00:00
|
|
|
|
2018-07-12 10:51:07 +00:00
|
|
|
> Note: the Rust allocator API is implemented for `jemalloc` in the
|
|
|
|
> [`jemallocator`](https://crates.io/crates/jemallocator) crate.
|
2018-05-02 15:28:25 +00:00
|
|
|
|
2018-07-12 10:51:07 +00:00
|
|
|
`jemalloc` is a general purpose memory allocation, its documentation
|
|
|
|
can be found here:
|
2018-05-02 15:28:25 +00:00
|
|
|
|
2018-07-12 10:51:07 +00:00
|
|
|
* [API documentation][jemalloc_docs]
|
|
|
|
* [Wiki][jemalloc_wiki] (design documents, presentations, profiling, debugging, tuning, ...)
|
|
|
|
|
|
|
|
**Current jemalloc version**: 5.1.
|
|
|
|
|
|
|
|
# Feature flags
|
|
|
|
|
|
|
|
This crate provides following cargo feature flags:
|
|
|
|
|
|
|
|
* `profiling`: configure `jemalloc` with `--enable-prof`.
|
|
|
|
* `stats`: configure `jemalloc` with `--enable-stats`.
|
|
|
|
* `debug`: configure `jemalloc` with `--enable-debug`.
|
|
|
|
* `bg_thread` (enabled by default): when disabled, configure `jemalloc` with
|
|
|
|
`--with-malloc-conf=background_thread:false`.
|
|
|
|
* `unprefixed_malloc_on_supported_platforms`:
|
|
|
|
when disabled, configure `jemalloc` with `--with-jemalloc-prefix=_rjem_`.
|
|
|
|
Enabling this causes symbols like `malloc` to be emitted without a prefix,
|
|
|
|
overriding the ones defined by libc.
|
|
|
|
This usually causes C and C++ code linked in the same program to use `jemalloc` as well.
|
|
|
|
|
|
|
|
On some platforms prefixes are always used
|
|
|
|
because unprefixing is known to cause segfaults due to allocator mismatches.
|
|
|
|
|
|
|
|
See [`jemalloc/INSTALL.md`](https://github.com/jemalloc/jemalloc/blob/dev/INSTALL.md#advanced-configuration).
|
|
|
|
|
|
|
|
# License
|
|
|
|
|
|
|
|
This project is licensed under either of
|
|
|
|
|
|
|
|
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0)
|
|
|
|
* MIT license ([LICENSE-MIT](LICENSE-MIT) or
|
|
|
|
http://opensource.org/licenses/MIT)
|
|
|
|
|
|
|
|
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.
|