| Crates.io | joins |
| lib.rs | joins |
| version | 0.0.1 |
| created_at | 2025-07-14 06:11:19.470087+00 |
| updated_at | 2025-07-14 06:11:19.470087+00 |
| description | A lightweight macro toolkit for composing and joining async values, streams, and reactive inputs in Rust. |
| homepage | https://github.com/rustkit/joins |
| repository | https://github.com/rustkit/joins |
| max_upload_size | |
| id | 1751193 |
| size | 5,832 |
joins is a macro toolkit for combining multiple async values, streams, or reactive inputs in Rust. Inspired by signal programming and dataflow patterns, joins makes it ergonomic to compose converging data logic.
Futures or OptionsStreams into a unified channeljoin_latest! macro (planned)join_some!, join_ready!, etc.futures, tokio, or async-stduse joins::join_some;
let user = Some("alice");
let email = Some("alice@example.com");
let age: Option<u32> = None;
let result = join_some!(user, email, age);
// result == None
use joins::join_futures;
let result = join_futures!(
async { get_user().await },
async { get_email().await }
).await;
This project is dual-licensed under either: