I guess Goish might be hated by many Rust fans and Go fans. Anyway, below is the example taken from its website.

use goish::{go, KB};
use goish::sync::WaitGroup;

#[goish::main]
fn main() {
   let wg = &WaitGroup::new();
   wg.Add(1_000_000);

   for i in 0..1_000_000 {
       // Explicit 2 KiB stack, sub-page allocated from the >chunked
       // stackpool - the opt-in for extreme spawn density. >Everyday
       // code just writes go!(move || ...) and never sizes a >stack.
       go!(stack(2 * KB), move || {
           do_work(i);
           wg.Done();
       });
   }

   wg.Wait();
}