2 个稳定版本

使用旧的 Rust 2015

2.0.0 2017年2月28日
1.0.0 2016年9月4日

#14 in #publish-subscribe

Download history 137/week @ 2024-03-13 105/week @ 2024-03-20 217/week @ 2024-03-27 243/week @ 2024-04-03 172/week @ 2024-04-10 226/week @ 2024-04-17 124/week @ 2024-04-24 56/week @ 2024-05-01 102/week @ 2024-05-08 117/week @ 2024-05-15 158/week @ 2024-05-22 95/week @ 2024-05-29 56/week @ 2024-06-05 46/week @ 2024-06-12 110/week @ 2024-06-19 89/week @ 2024-06-26

312 每月下载次数
用于 2 crates

MIT/LGPL-3.0

7KB
93 代码行数,不包括注释

pub-sub

View on crates.io

Rust 中的基本发布/订阅通道。

API 文档

  • 最新稳定版:最新稳定版的 API 文档
  • 主分支:主分支的 API 文档

许可证

许可协议为以下之一


lib.rs:

基本发布/订阅通道。

用法

添加到 crate 依赖项

[dependencies]
pub-sub = "*"

在 crate 根目录中导入

extern crate pub_sub;

示例

extern crate pub_sub;
extern crate uuid;

use std::thread;
use uuid::Uuid;

fn main() {
   let channel = pub_sub::PubSub::new();

   let mut handles = vec![];

   for _ in 0..16 {
       let recv = channel.subscribe();

        handles.push(thread::spawn(move || {
            for _ in 0..16 {
                println!("recevied {}", recv.recv().unwrap());
            }
        }));
    }

    for _ in 0..16 {
        let channel = channel.clone();

        handles.push(thread::spawn(move || {
            let msg_id = Uuid::new_v4();
            println!("    sent {}", msg_id);
            channel.send(msg_id).unwrap();
        }));
    }

    while let Some(handle) = handles.pop() {
        handle.join().unwrap();
    }
}

依赖项

~285–445KB