A shared tuple board with pattern-matched read and take. Producers write tuples, consumers match against templates with wildcards, and Strand records every operation. Build task queues, blackboards, and producer-consumer pipelines without inventing a coordination layer.
use forum::{Node, Tuple, Pattern};
let node = Node::open(".weave/forum").await?;
// Producer drops a task.
node.write_tuple(Tuple::new(("task", "encode", 42))).await?;
// Consumer takes the next matching tuple, atomically.
let pat = Pattern::new(("task", "encode", Pattern::wildcard()));
if let Some(t) = node.take_tuple(&pat).await? {
handle(t);
}
// Subscriber reads without removing.
let snap = node.read_tuple(&Pattern::any("task")).await?;Start with the SDK or load the agent context. Every library is independently documented and versioned.