zt: plantillas HTML con tipado seguro en Zig

Type-safe HTML templating in Zig

Lukas Lalinsky presenta zt, una biblioteca de plantillas para Zig inspirada en Templ de Go. Los archivos de plantilla se transpilan a código Zig durante zig build, lo que permite tipado completo en parámetros y errores en tiempo de compilación. El código generado escribe directamente en std.Io.Writer sin asignaciones, y todos los valores se escapan por defecto para prevenir XSS. Incluye soporte para componentes reutilizables, layouts con @children y control de flujo nativo de Zig.

Lo que más me gusta es que los errores de plantilla son simplemente errores del compilador de Zig.
  1. solatic

    Me encanta este diseño, sobre todo porque aprovecha la cadena de compilación de Zig; espero que las recompilaciones sean lo suficientemente rápidas como para tener esencialmente recarga en caliente al estilo JS en el ciclo de desarrollo. Ahora solo falta algo como https://github.com/air-verse/air para Zig (Ziex tiene uno integrado en su CLI, pero eso es solo para Ziex)...

    ¡Con ganas de ver algunos benchmarks!

  2. pjmlp

    > Hace dos años, empecé con Zig, y nunca habría imaginado que consideraría el desarrollo web en un lenguaje tan de bajo nivel.

    Este comentario tiene su gracia, dado que el autor empezó en 2000 en el desarrollo web, y con PHP 3.0.

    Yo empecé en 1997, nuestra clase de sistemas distribuidos tenía ejercicios para escribir CGIs en Perl y C.

    Entre 1999 y 2001, la mayor parte del desarrollo web en mi empresa era en Tcl y C, ASP era naturalmente una mezcla de VB y componentes COM en C++, y también estaba la diversión de escribir todas esas extensiones mod_algo de Apache, y módulos ISAPI de IIS, naturalmente en C y C++.

    Ah, Microsoft también lanzaba ATLServer, porque quién no querría usar ATL para desarrollo web, mientras Borland/Inprise lanzaba cosas similares para Delphi y C++ Builder.

    El propio PHP, en 3.0, todavía era la época en que apenas tenía mucha funcionalidad incorporada, así que era bastante común escribir módulos de extensión en C.

    Así que es un poco irónico leer que volver a la forma en que estaban las cosas, antes de que los lenguajes de scripting lentos se hicieran con el control en la década de 2010, es algo en lo que nadie pensó.

  3. stefs

    yo también uso un motor de plantillas "con tipado seguro" (para kotlin, como plugin de gradle) de mi propio diseño que va al revés: en lugar de incrustar una clase de modelo en la plantilla, se genera una clase de plantilla que toma todos los valores como parámetros.

    es decir, MyTemplate.tpl.html

    {if $foo}hello world, {$myname}!{else}goodbye, world.{/if}

    que crea una clase de kotlin que se puede usar así:

    MyTemplate(

    foo = true,

    myname = "bar"

    ).toString()

    la mayor ventaja para mí es que de esta manera hay soporte completo y gratuito del IDE, no necesito escribir view models adicionales si el mapeo no es 1:1 y el rendimiento es bastante bueno porque al final no hay análisis/compilación/interpretación en tiempo de ejecución excepto por lo básico del JDK (aunque hay motores aún más rápidos).

    https://codeberg.org/h34tnet/tempolin

    advertencia: hasta ahora soy el único usuario, así que no lo uses en producción. además, estoy trabajando en algunas mejoras ahora mismo que aún no se han subido.

  4. fergie

    W3C: ¿Por qué no podemos simplemente tener <includes src="./header.html"> y ya está?

  5. weitzj

    Gracias por el artículo. Recuerdo haber usado plantillas de Google Soy hace unos 10 años. Creo que esto es similar a lo que se usa ahora cuando haces plantillas de Helm, por ejemplo, o Go Templates.

    Tiene el escapado de html, escapado de JavaScript, etc. incorporado.

    ¿Hay quizás algún wrapper de Zig para Google soy por ahí?

Más de este día

2026-10-12