#回收 #内存 #无锁 #动态 #并发

无std reclaim

基于特质的内存回收抽象接口

4个版本

0.2.2 2019年7月16日
0.2.1 2019年7月5日
0.2.0 2019年7月5日
0.1.0 2019年6月13日

400内存管理

每月42次下载
2 crate 中使用

MIT/Apache

180KB
2.5K SLoC

Reclaim - 并发内存回收

利用Rust类型系统提供的一个统一的并发内存回收抽象接口,以实现大部分安全的公共API。

Build Status Latest version Documentation License Rust 1.36+

使用方法

将以下内容添加到您的 Cargo.toml

[dependencies]
reclaim = "0.2.0"

最低支持的Rust版本 (MSRV)

此crate最低支持的Rust版本为1.36.0。

功能

此crate兼容no_std + alloc。当此crate用于#[no_std]环境时,必须禁用默认启用的std功能。

回收方案实现

以下列表包含基于此crate的API和接口的当前可用的回收方案实现

未来展望

此crate的最终目标是允许仅基于特质的完全泛型内存回收Reclaim/LocalReclaimProtect。这将允许编写无锁数据结构的作者根据他们使用的回收方案对其代码进行参数化,使其易于交换。由于缺乏GAT(泛型关联类型),目前尚不可能实现这一点。

同样,由于当前稳定的Rust版本中尚不可用const generics,crate的类型安全指针标记机制必须依赖于typenum crate。这也在未来有所改变。

在某些情况下,Record的实现必须依赖于memoffset crate及其offset_of!宏,该宏表现出未定义行为。一旦出现完全可靠的替代方案,它将得到适应。注意,该宏仅用于具有非零大小头部的记录类型。

许可

Reclaim根据MIT许可和Apache许可(版本2.0)的条款分发。

有关详细信息,请参阅LICENSE-APACHELICENSE-MIT

依赖

~195KB