11 个版本 (重大更改)

0.10.2 2024年8月17日
0.9.0 2024年7月3日

#218 in 并发

Download history 3/week @ 2024-04-26 1/week @ 2024-05-03 147/week @ 2024-05-10 15/week @ 2024-05-17 14/week @ 2024-05-24 192/week @ 2024-05-31 158/week @ 2024-06-07 147/week @ 2024-06-14 30/week @ 2024-06-21 128/week @ 2024-06-28 79/week @ 2024-07-05 10/week @ 2024-07-12 24/week @ 2024-07-19 71/week @ 2024-07-26 30/week @ 2024-08-02 74/week @ 2024-08-09

每月 200 次下载

自定义许可证

44KB
1K SLoC

rs-store

rs-store 是用 Rust 编写的 Redux Store。

主要功能

通过 Reducer 和 Subscriber 接口管理和接收状态变化的通知。Store 注册 Reducer 和 Subscriber,派发动作以更改状态,并向订阅者发送通知。Store 设计为以线程安全的方式更改状态。

如何使用

Rust 文档可在 crates.iodocs.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