side-futures

Crates.ioside-futures
lib.rsside-futures
version0.1.2
sourcesrc
created_at2020-03-22 22:02:24.003531
updated_at2021-06-12 01:07:01.379466
descriptionSend future for execution on the runtime that may be in a different thread
homepage
repositoryhttps://github.com/nazar-pc/side-futures
max_upload_size
id221566
size9,137
Nazar Mokrynskyi (nazar-pc)

documentation

https://docs.rs/side-futures

README

Side futures

Build Status Crates.io Docs License

This crate provides an ability to send future for execution on the runtime that may be in a different thread. Typical use case is heavily threaded application where there are synchronous callbacks, but some asynchronous tasks also need to be executed.

Example

To get started, add the following to Cargo.toml.

side-futures = "0.1.0"

Typical usage with Tokio runtime:

use tokio::task;

#[tokio::main]
async fn main() {
    let (sender, receiver) = side_futures::create();
    task::spawn(receiver.run_receiver(task::spawn));
    sender
        .send_future(async {
            // Do stuff
        })
        .unwrap();
}

Typical usage with Actix runtime:

#[actix_rt::main]
async fn main() {
    let (sender, receiver) = side_futures::create();
    actix_rt::spawn(receiver.run_receiver(actix_rt::spawn));
    sender
        .send_future(async {
            // Do stuff
        })
        .unwrap();
}

Contribution

Feel free to create issues and send pull requests, they are highly appreciated!

License

Zero-Clause BSD

https://opensource.org/licenses/0BSD

https://tldrlegal.com/license/bsd-0-clause-license

Commit count: 7

cargo fmt