<story><title>WAGI: WebAssembly Gateway Interface</title><url>https://github.com/deislabs/wagi</url></story><parent_chain></parent_chain><comment><author>gavinray</author><text>This is awesome to see!&lt;p&gt;I have been working on something like this for a while too. But it uses GraalVM and it&amp;#x27;s &amp;quot;Polyglot&amp;quot; runtime to provide support for JS&amp;#x2F;Ruby&amp;#x2F;Python&amp;#x2F;WASM&amp;#x2F;LLVM languages.&lt;p&gt;It&amp;#x27;s packaged as a single binary using graal-native + Quarkus, or if you don&amp;#x27;t care about that (faster startup time&amp;#x2F;lower memory use&amp;#x2F;no JVM needed) but need maximum performance, you can run it as a regular JVM service as well.&lt;p&gt;It was born out of a need for a polyglot Functions-as-a-Service platform but without the weight of container orchestration -- I needed something I could deploy as a single binary.&lt;p&gt;Essentially OpenFaaS&amp;#x2F;OpenWhisk, minus containers.&lt;p&gt;It doesn&amp;#x27;t use CGI as a request&amp;#x2F;response specification though, it uses Vert.x &amp;quot;RoutingContext&amp;quot; interface which has methods like &lt;i&gt;&amp;quot;.getBodyAsJson()&amp;quot;&lt;/i&gt;, &lt;i&gt;&amp;quot;.params(&amp;#x27;something&amp;#x27;)&amp;quot;&lt;/i&gt;, &lt;i&gt;&amp;quot;.header(&amp;#x27;foo&amp;#x27;)&amp;quot;&lt;/i&gt;, etc.&lt;p&gt;&lt;pre&gt;&lt;code&gt;  https:&amp;#x2F;&amp;#x2F;vertx.io&amp;#x2F;docs&amp;#x2F;apidocs&amp;#x2F;io&amp;#x2F;vertx&amp;#x2F;ext&amp;#x2F;web&amp;#x2F;RoutingContext.html
&lt;/code&gt;&lt;/pre&gt;
An open standard like CGI probably would have been better, but Graal has marshalling facilities for sharing object types between languages, so the most user-friendly&amp;#x2F;ergonomic thing to do was to share the underlying web request object itself across language boundaries, including all the methods you can call on it.&lt;p&gt;---&lt;p&gt;This has given me motivation to finally finish it so I can publish + open-source it!</text></comment>
<story><title>WAGI: WebAssembly Gateway Interface</title><url>https://github.com/deislabs/wagi</url></story><parent_chain></parent_chain><comment><author>nerdponx</author><text>Does WebAssembly even make sense as a standalone runtime, like the JVM? Is &amp;quot;server-side WebAssembly&amp;quot; going to be &amp;quot;a thing&amp;quot;, or is it just a compatibility kludge?&lt;p&gt;And what of all these languages that compile to JS, like Typescript, Reason, Kotlin, et al? Is JS a sound &amp;quot;IR&amp;quot; between the frontend and WebAssembly? Or would it be better to compile things directly to WebAssembly?</text></comment>