pinboard

Crates.iopinboard
lib.rspinboard
version2.2.0
sourcesrc
created_at2017-05-30 00:12:51.002634
updated_at2023-04-17 17:41:54.356113
descriptionA lock-free, threadsafe way to publish data, just stick it on the pinboard
homepage
repositoryhttps://github.com/bossmc/pinboard
max_upload_size
id16845
size18,151
clippy (github:rust-lang:clippy)

documentation

README

Pinboard

Crates.io - Pinboard Build Status License: MIT

An eventually-consistent, lock-free, mutable store of shared data.

Just stick it on the pinboard!

Documentation

https://docs.rs/pinboard/

Usage

Install from crates.io by adding pinboard to your Cargo.toml:

[dependencies]
pinboard = "2.0.0"

Now you can create a Pinboard, share it between your users (be they Futures, threads or really anything else) and start sharing data!

use pinboard::NonEmptyPinboard;
use std::{thread, time::Duration};

let weather_report = NonEmptyPinboard::new("Sunny");

crossbeam::scope(|scope| {
  scope.spawn(|_| {
    thread::sleep(Duration::from_secs(10));
    weather_report.set("Raining");
  });
  scope.spawn(|_| {
    loop {
      println!("The weather is {}", weather_report.get_ref());
      thread::sleep(Duration::from_secs(1));
    }
  });
});
Commit count: 75

cargo fmt