HeadlinesBriefing HeadlinesBriefing.com

Plantillas HTML seguras en Zig: zt

Hacker News •
×

Un desarrollador con décadas de experiencia en desarrollo web, desde PHP 3.0 hasta Python, Perl y las plantillas de Django, volvió recientemente al desarrollo web usando Zig. Crear backends con zio y Dusty lo convenció de que los asignadores de arena y el comptime de Zig hacen práctico el trabajo web, y que htmx o Datastar permiten crear SPA sin tocar JavaScript ni TypeScript.

Lo que faltaba era un sistema de plantillas que cumpliera cuatro requisitos: seguridad de tipos en tiempo de compilación, velocidad sin asignaciones y escritura directa en std.Io.Writer, escape de todas las entradas por defecto para evitar XSS, y una sintaxis que aún se sintiera como escribir HTML. Ninguna opción existente cumplía todos. Ziex, con su enfoque inspirado en JSX, ofrecía ideas útiles, pero apuntaba a WASM, lo que no se ajustaba a las necesidades del autor. Templ, de Go, proporcionó el modelo más claro.

El resultado es zt, una adaptación de Templ para Zig. Las plantillas se analizan y transpilan a Zig durante zig build, por lo que pueden importar código de la aplicación y el código de la aplicación puede importarlas. Los parámetros están completamente tipados y los errores de renderizado aparecen en tiempo de compilación. El código generado simplemente escribe en un std.Io.Writer, ya sea un socket o un búfer.

El uso es sencillo. Las plantillas se declaran con la palabra clave templ, pueden anidar componentes mediante @children y aceptan parámetros tipados, como registros de usuario opcionales. El renderizado puede invocarse directamente o a través de la función render de Dusty para respuestas HTML.

Fuente: Hacker News · Resumido por HeadlinesBriefing