<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Technology on Blog</title><link>https://nathanreiner.xyz/tags/technology/</link><description>Recent content in Technology on Blog</description><generator>Hugo</generator><language>de-CH</language><lastBuildDate>Thu, 17 Sep 2026 11:00:31 +0200</lastBuildDate><atom:link href="https://nathanreiner.xyz/tags/technology/index.xml" rel="self" type="application/rss+xml"/><item><title>Webentwicklung in Zig</title><link>https://nathanreiner.xyz/posts/webentwicklung-in-zig/</link><pubDate>Thu, 17 Sep 2026 11:00:31 +0200</pubDate><guid>https://nathanreiner.xyz/posts/webentwicklung-in-zig/</guid><description>&lt;p&gt;Dass man in Zig einfach und schnell einen guten &lt;em&gt;HTTP&lt;/em&gt;-Server schreiben kann
ist wohl keine Neuheit. Was mich aber immer wieder beschäftigt ist, wie man
&lt;em&gt;WASM&lt;/em&gt; möglichst effektiv einsetzen kann, damit man kaum einen overhead hat und
das Entwickeln ergonomisch bleibt.&lt;/p&gt;
&lt;p&gt;Dabei müssen wir mehrere Dinge beachten, wenn wir das Frontend mit Zig programmieren wollen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Das interface zu &lt;em&gt;WASM&lt;/em&gt; bietet nur zahlen als argument, das heisst, strings und dergleichen müssen selbst wieder hergestellt werden.&lt;/li&gt;
&lt;li&gt;Das Wechseln von &lt;em&gt;WASM&lt;/em&gt; zu Javascript und umgekehrt ist kostspielig.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;WASM&lt;/em&gt; hat kein direkter Zugang um den &lt;em&gt;DOM&lt;/em&gt; zu bearbeiten.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;WASM&lt;/em&gt; hat auch kein Zugang für sonstige features wie &lt;em&gt;fetch&lt;/em&gt;, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aus den letzten zwei Punkten folgt, dass diese als binding via Javascript zur
Verfügung gestellt werden müssen, jedoch haben wir dann das Problem des
overheads. Genau an dieser stelle kommt &lt;code&gt;async&lt;/code&gt; ins Spiel. Meine momentane Idee
ist, dass man die ganze Javascript &lt;em&gt;WASM&lt;/em&gt; Interaktion mit dem &lt;a href="https://ziglang.org/documentation/0.16.0/std/#std.Io"&gt;&lt;code&gt;std.Io&lt;/code&gt;&lt;/a&gt;
Interface zu machen, das heisst alles was wir von Zig aus von Javascript wollen ist asynchron, mit dem Vorteil, dass wir
mehrere Funktionsaufrufe in einem Schritt in Javascript behandeln können und nicht jedes mal den overhead bezahlen müssen.&lt;/p&gt;</description></item></channel></rss>