Webentwicklung in Zig

Dass man in Zig einfach und schnell einen guten HTTP-Server schreiben kann ist wohl keine Neuheit. Was mich aber immer wieder beschäftigt ist, wie man WASM möglichst effektiv einsetzen kann, damit man kaum einen overhead hat und das Entwickeln ergonomisch bleibt. Dabei müssen wir mehrere Dinge beachten, wenn wir das Frontend mit Zig programmieren wollen: Das interface zu WASM bietet nur zahlen als argument, das heisst, strings und dergleichen müssen selbst wieder hergestellt werden. Das Wechseln von WASM zu Javascript und umgekehrt ist kostspielig. WASM hat kein direkter Zugang um den DOM zu bearbeiten. WASM hat auch kein Zugang für sonstige features wie fetch, etc. 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 async ins Spiel. Meine momentane Idee ist, dass man die ganze Javascript WASM Interaktion mit dem std.Io 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. ...

17. September 2026 · Nathan P. Reiner