HeadlinesBriefing HeadlinesBriefing.com

Templates HTML seguros em Zig: zt

Hacker News •
×

Um desenvolvedor com décadas de experiência em desenvolvimento web, do PHP 3.0 ao Python, Perl e templates Django, voltou recentemente ao desenvolvimento web usando Zig. Construir backends com zio e Dusty o convenceu de que os alocadores de arena e o comptime do Zig tornam o trabalho web prático, e que htmx ou Datastar permitem SPAs sem tocar em JavaScript ou TypeScript.

Faltava um sistema de templates que atendesse a quatro requisitos: segurança de tipos em tempo de compilação, velocidade sem alocações e escrita direta em std.Io.Writer, escape de todas as entradas por padrão para evitar XSS, e uma sintaxe que ainda parecesse escrever HTML. Nenhuma opção existente atendia a todos. O Ziex, com sua abordagem inspirada em JSX, oferecia ideias úteis, mas tem como alvo o WASM, o que não atendia às necessidades do autor. O Templ, do Go, forneceu o modelo mais claro.

O resultado é o zt, uma adaptação do Templ para Zig. Os templates são analisados e transpilados para Zig durante o zig build, por isso podem importar código da aplicação, e o código da aplicação pode importá-los. Os parâmetros são totalmente tipados e os erros de renderização aparecem em tempo de compilação. O código gerado simplesmente escreve em um std.Io.Writer, seja um socket ou um buffer.

O uso é direto. Os templates são declarados com a palavra-chave templ, podem aninhar componentes por meio de @children e aceitam parâmetros tipados, como registros de usuário opcionais. A renderização pode ser chamada diretamente ou pelo auxiliar render do Dusty para respostas HTML.

Fonte: Hacker News · Resumido por HeadlinesBriefing