It isn&#x27;t linked to in the article, but if you&#x27;re interested in this please do check out luvit by tim caswell (<a href="https:&#x2F;&#x2F;luvit.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;luvit.io&#x2F;</a>). It&#x27;s a very impressive system.<p>At a very high level luvit looks like node.js for Lua, with some extra goodies thrown in like being able to bake your apps into single binaries. This is awesome in itself and the article discusses these things.<p>That said, I think the <i>major</i> innovation over using javascript is that it allows the support for coroutine-based I&#x2F;O. This means you can get the performance benefits of non-blocking node.js without the headache of callbacks&#x2F;promises. I think the linked article only touches on coroutines briefly but they are a major piece of Lua&#x27;s awesomeness that you shouldn&#x27;t miss.<p>Though you aren&#x27;t required to use coroutines, the package management server which hosts packages for luvit is called &quot;lit&quot; and it seems to demonstrate this ability nicely:<p>&quot;Lit is written in lua and uses the same system platform as the luvit project, but is has a very different I&#x2F;O style. Instead of using callbacks and event emitters, it uses coroutines so that code can be written with simple blocking I&#x2F;O, but still maintain the abilities of a non-blocking event loop.&quot; (from the README on <a href="https:&#x2F;&#x2F;github.com&#x2F;luvit&#x2F;lit" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;luvit&#x2F;lit</a>)