Templating HTML type-safe en Zig
Original : Type-safe HTML templating in Zig
Pourquoi c'est important
Zig gagne du terrain dans le web : l'outillage de templating type-safe comble un manque réel.
Lukáš Lalinský présente zt, une bibliothèque de templating HTML pour Zig inspirée de Templ (Go) et Ziex. Les templates sont transpilés en Zig à la compilation, avec typage strict et échappement XSS automatique.
Après des années de développement web en PHP, Python et Perl, Lukáš Lalinský s'est mis à Zig il y a deux ans. En construisant ses propres bibliothèques zio et Dusty pour des backends API, il a réalisé que le web en Zig était plus viable qu'il n'y paraît — notamment grâce aux arena allocators et au système comptime du langage.
Mais il manquait encore une solution de templating satisfaisante. Ses exigences : typage complet vérifié à la compilation, aucune allocation inutile, écriture directe vers un std.Io.Writer, échappement automatique des entrées contre le XSS, et une syntaxe qui reste proche du HTML.
Inspirée de Templ pour Go et de l'approche JSX de Ziex, sa bibliothèque zt transpile les fichiers de templates en code Zig lors du zig build. Les templates peuvent importer du code applicatif et sont donc entièrement typés. Toute erreur de rendu est détectée par le compilateur Zig, pas à l'exécution. Lalinský précise que la sortie peut être écrite directement vers un socket ou accumulée dans un buffer. Le projet s'inscrit dans une volonté de construire des interfaces SPA avec htmx ou Datastar, sans toucher à JavaScript.