12 releases

0.2.6 Mar 1, 2024
0.2.4 Aug 17, 2022
0.2.3 Nov 8, 2021
0.2.1 Nov 9, 2020
0.1.1 Nov 21, 2018

#25 in Memory management

Download history 49782/week @ 2023-12-07 38082/week @ 2023-12-14 24895/week @ 2023-12-21 21075/week @ 2023-12-28 37652/week @ 2024-01-04 37337/week @ 2024-01-11 46888/week @ 2024-01-18 46750/week @ 2024-01-25 44931/week @ 2024-02-01 53015/week @ 2024-02-08 53976/week @ 2024-02-15 56440/week @ 2024-02-22 55037/week @ 2024-02-29 55955/week @ 2024-03-07 55221/week @ 2024-03-14 52709/week @ 2024-03-21

229,709 downloads per month
Used in 20 crates (12 directly)

MIT/Apache

310KB
6K SLoC

C 3.5K SLoC // 0.4% comments Rust 2K SLoC // 0.0% comments

dlmalloc-rs

A port of dlmalloc to Rust.

Documentation

Why dlmalloc?

This crate is a port of dlmalloc to Rust, and doesn't rely on C. The primary purpose of this crate is to serve as the default allocator for Rust on the wasm32-unknown-unknown target. At the time this was written the wasm target didn't support C code, so it was required to have a Rust-only solution.

This allocator is not the most performant by a longshot. It is primarily, I think, intended for being easy to port and easy to learn. I didn't dive too deep into the implementation when writing it, it's just a straight port of the C version.

It's unlikely that Rust code needs to worry/interact with this allocator in general. Most of the time you'll be manually switching to a different allocator :)

License

This project is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~0–11MB
~83K SLoC