lelet

A golang like task executor


Crates.io version Download docs.rs docs

Lelet executor

Task executor that inspired by golang runtime.

The executor is running in thread pool, and when it detect blocking call inside a task, it will automatically scale the thread pool.

Because of this feature, it is always safe for you to do blocking operation in a task, you don't need to worry about blocking the entire executor thread.

Installation

With cargo add installed run:

sh $ cargo add lelet

Example

```rust use std::thread; use std::time::Duration;

use futures_timer::Delay;

fn main() { lelet::spawn(async { for _ in 0..10 { Delay::new(Duration::from_secs(1)).await; println!("Non-blocking Hello World"); } });

lelet::spawn(async {
    for _ in 0..10 {
        thread::sleep(Duration::from_secs(1));
        println!("Blocking Hello World");
    }
});

thread::sleep(Duration::from_secs(11));

} ```