11 个版本 (重大更改)
新 0.10.2 | 2024年8月17日 |
---|---|
0.9.0 | 2024年7月3日 |
#218 in 并发
每月 200 次下载
44KB
1K SLoC
rs-store
rs-store 是用 Rust 编写的 Redux Store。
主要功能
通过 Reducer 和 Subscriber 接口管理和接收状态变化的通知。Store 注册 Reducer 和 Subscriber,派发动作以更改状态,并向订阅者发送通知。Store 设计为以线程安全的方式更改状态。
如何使用
Rust 文档可在 crates.io 和 docs.rs 找到。
pub fn main() {
println!("Hello, Calc!");
let store = Store::<CalcState, CalcAction>::new(Box::new(CalcReducer::default()));
store.add_subscriber(Arc::new(CalcSubscriber::default()));
store.dispatch(CalcAction::Add(1));
thread::sleep(std::time::Duration::from_secs(1));
store.add_subscriber(Arc::new(CalcSubscriber::default()));
store.dispatch(CalcAction::Subtract(1));
store.stop();
}
功能
- 添加线程名称
- 订阅和取消订阅
- 清除订阅者(clear_subscribers)
- 添加 Thunk 动作(dispatch_thunk)
- 当添加订阅者时通知最新状态
- 添加回压策略(drop oldest)
- 限制通道大小(sync_channel),派发可能会失败
- 添加通知调度器(CurrentThread,ThreadPool)
- 流(拉模式)而不是订阅(推模式)
- 可以用于记录状态变化的统计中间件
- 添加测试
依赖项
~0.4–0.8MB
~18K SLoC