#arc #weak-references #sync #ffi #reference-counting #data-structures

no-std elysees

A fork of triomphe, now with more pointer trickery

14 个版本

0.3.0 2021 年 11 月 15 日
0.2.4 2020 年 9 月 28 日
0.2.2 2020 年 7 月 7 日
0.1.2 2020 年 6 月 28 日
0.0.6 2020 年 6 月 28 日

#523 in 并发


4 crates 使用

MIT/Apache

75KB
1.5K SLoC

Elysees

triomphe 的分支,而 triomphe 又是 Arc 的分支。与 std::sync::Arc 相比,它有以下优点:

  • elysees::Arc 不支持弱引用:通过排除弱引用计数来节省空间,并且不执行额外的读取-修改-更新操作来处理弱引用的可能性。
  • elysees::ArcBox 允许构建一个临时的可变 Arc,稍后可以将其转换为常规的 elysees::Arc
  • elysees::OffsetArc 可以从 C++ 代码中透明地使用,并且与 (并且可以转换为) elysees::Arc 兼容
  • elysees::ArcBorrow 在功能上类似于 &elysees::Arc<T>,然而在内存中它只是一个指向内部 Arc 的 (非所有者) 指针。这有助于避免指针追踪。
  • elysees::ArcBorrow 在功能上类似于 &elysees::Arc<T>,然而在内存中它只是一个 &T。这使得它在 FFI 方面更加灵活;借用源不需要是堆上固定的 Arc(可以是 C++ 的指针,或者 OffsetArc)。此外,这也有助于避免指针追踪。
  • elysees::ArcRefArcArcBorrow 的联合体

依赖项

~225–520KB