| Crates.io | lelet |
| lib.rs | lelet |
| version | 1.2.18 |
| created_at | 2020-04-13 01:38:29.80789+00 |
| updated_at | 2020-06-17 09:34:16.97628+00 |
| description | golang like task executor |
| homepage | https://github.com/win-t/lelet |
| repository | https://github.com/win-t/lelet |
| max_upload_size | |
| id | 229550 |
| size | 42,243 |
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.
With cargo add installed run:
$ cargo add lelet
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));
}