#libc #allocator #malloc #no-std #codebase #memalign

no-std libc_alloc

一个简单的全局分配器,通过hook到libc的malloc/free

8个稳定版本

1.0.7 2024年3月19日
1.0.6 2024年1月6日
1.0.5 2023年7月25日
1.0.4 2022年11月11日
1.0.2 2020年4月24日

#73嵌入式开发

Download history 2559/week @ 2024-04-08 3410/week @ 2024-04-15 2434/week @ 2024-04-22 1669/week @ 2024-04-29 2543/week @ 2024-05-06 1775/week @ 2024-05-13 2318/week @ 2024-05-20 3389/week @ 2024-05-27 3202/week @ 2024-06-03 3880/week @ 2024-06-10 2973/week @ 2024-06-17 3157/week @ 2024-06-24 3094/week @ 2024-07-01 3517/week @ 2024-07-08 3054/week @ 2024-07-15 3322/week @ 2024-07-22

13,325 每月下载量
用于 icu_capi

MIT 协议

8KB
101

libc_alloc

Rust的一个简单全局分配器,通过hook到libc函数。在将no_std + alloc代码链接到现有的C代码库时很有用。

在类Unix操作系统上,使用memalign进行分配,使用free进行释放。

在macOS上,使用posix_memalign进行分配,使用free进行释放。

在Windows上,使用原生的_aligned_malloc进行分配,使用_aligned_realloc进行重新分配,使用_aligned_free进行释放。

示例

use libc_alloc::LibcAlloc;

#[global_allocator]
static ALLOCATOR: LibcAlloc = LibcAlloc;

或者,使用global Cargo功能,只需要将crate引入

extern crate libc_alloc;

项目状态

考虑到这个crate非常简单,我怀疑它不需要经常更新。

如果您发现错误或某些内容停止工作,请提交问题并/或打开PR。

无运行时依赖

功能