23 releases

new 0.5.0 Mar 6, 2025
0.4.15 Feb 21, 2024
0.4.10 Dec 8, 2023
0.4.9 Nov 22, 2023
0.1.3 Mar 8, 2022

#126 in Concurrency

Download history 43/week @ 2024-11-20 96/week @ 2024-11-27 122/week @ 2024-12-04 119/week @ 2024-12-11 58/week @ 2024-12-18 4/week @ 2024-12-25 21/week @ 2025-01-01 40/week @ 2025-01-08 27/week @ 2025-01-15 57/week @ 2025-01-22 33/week @ 2025-01-29 16/week @ 2025-02-05 26/week @ 2025-02-12 49/week @ 2025-02-19 31/week @ 2025-02-26 239/week @ 2025-03-05

347 downloads per month
Used in 40 crates (16 directly)

MIT/Apache

170KB
2.5K SLoC

封装了与共享相关的数据结构,可通过编译条件指定是单线程共享还是多线程共享。

例如,Share类型,通过控制编译条件,可转换为Arc或Xrc


lib.rs:

默认 不带 任何 feature

1. 几个类型封装

  • Share = Xrc | Arc
  • ShareWeak = xrc::Weak | sync::Weak
  • ShareMutex = LockCell(RefCell<T>) | Mutex
  • ShareRwLock = LockCell(RefCell<T>) | RwLock
  • ShareCell = cell::TrustCell
  • SharePtr = SyncUnsafeCell<T> | AtomicPtr<T>
  • ShareRefCell = XrcCell<T> | ArcCell<T>
  • ShareBool = SyncUnsafeCell<bool> | AtomicBool
  • ShareU8 = SyncUnsafeCell<u8> | AtomicU8
  • ShareU32 = SyncUnsafeCell<u32> | AtomicU32
  • ShareUsize = SyncUnsafeCell<usize> | AtomicUsize

2. 提供 Send, Sync 的 封装

目的:wasm 不支持 Send + Sync

  • ThreadSend = Send
  • ThreadSync = Sync + Send

No runtime deps

Features