joins

Crates.iojoins
lib.rsjoins
version0.0.1
created_at2025-07-14 06:11:19.470087+00
updated_at2025-07-14 06:11:19.470087+00
descriptionA lightweight macro toolkit for composing and joining async values, streams, and reactive inputs in Rust.
homepagehttps://github.com/rustkit/joins
repositoryhttps://github.com/rustkit/joins
max_upload_size
id1751193
size5,832
Billgo (billgo)

documentation

https://docs.rs/joins

README

🔗 joins

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.


✨ Features

  • 🧩 Macros for combining multiple Futures or Options
  • 🔁 Join multiple Streams into a unified channel
  • 🔗 Reactive-style join_latest! macro (planned)
  • 🚦 Combiner macros: join_some!, join_ready!, etc.
  • ✅ Zero-cost, no runtime overhead
  • 🧱 Integrates well with futures, tokio, or async-std

🚀 Example

use 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;

📄 License

This project is dual-licensed under either:

  • MIT License
Commit count: 0

cargo fmt