Lunatic: Erlang-Inspired Runtime for WebAssembly
>All processes running on Lunatic are preemptively scheduled and executed by a work stealing async executor. This gives you the freedom to write simple blocking code, but the runtime is going to make sure it actually never blocks a thread if waiting on I/O.<p>I'm reading/writing a fair amount of Python and C# at the moment, and the more I see async/await in use, the less I'm convinced by it as a language feature.  Whilst the guidance seems reasonable on reading (e.g. [0]), the reality is that it increasingly becomes the norm to find code where most functions/methods are declared as async, and most implementations are littered with await.<p>So Lunatic's approach resonates.  There again, as an Erlang fan, I'm pre-disposed to that concurrency model.  So definitely not unbiased.<p>[0]: <a href="https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/" rel="nofollow">https://docs.microsoft.com/en-us/dotnet/csharp/programming-g...</a>