Nesta página
Desenvolvimento Web com Zolo
A stack web do Zolo é construída com recursos normais da linguagem, sem uma linguagem de template paralela. Verniz é a camada de renderização e interatividade: componentes são funções, markup vira chamadas Zolo comuns e o servidor entrega HTML correto antes do JavaScript iniciar.
A stack¶
| Camada | Para que serve | Suporte atual |
|---|---|---|
std::html / Verniz |
View, markup, escape, ilhas, actions e CSS escopado |
VM, LLVM e Cranelift |
std::http |
Rotas, requests, responses, middleware e servidor HTTP nativo | VM, LLVM e Cranelift |
std::web |
Efeitos Request e Cookies com envelopes seguros | Apenas VM por enquanto |
zolo dev |
Swaps do servidor, revalidação do navegador e overlay de erros | VM de desenvolvimento |
zolo build |
Binários de produção standalone | LLVM ou Cranelift |
O limite VM-only vale para a camada de efeitos/cookies de std::web, não para Views, ilhas, actions ou CSS escopado do Verniz.
Uma primeira página completa¶
use std::http
use std::html::{document, head, meta, title, body, main, h1, p, View}
fn page(_req) -> View {
<document lang="pt-BR">
<head>
<meta charset="utf-8"/>
<title>Olá do Zolo</title>
</head>
<body>
<main>
<h1>Olá do Verniz</h1>
<p>Este HTML foi renderizado pelo Zolo.</p>
</main>
</body>
</document>
}
let app = http.router() |> http.get("/", page)
http.serve(3000, app)Rode com desenvolvimento web ao vivo:
zolo dev src/main.zoloAo alcançar http.serve, zolo dev entra no modo web automaticamente. Abra a URL impressa pela CLI. Use zolo run para uma execução única na VM ou zolo build para o binário de produção.
Escolhendo a porta de entrada¶
- Retorne uma
Viewpara páginas e fragmentos HTML. - Retorne um map para APIs JSON e uma string para texto simples.
- Use
std::httpquando handlers recebem o request explicitamente. - Use
std::webquando código aninhado precisa acessar request ou cookies via efeitos. - Marque apenas regiões interativas com
@island; o restante continua HTML renderizado no servidor. - Marque funções remotas com
@action; funções públicas nunca são expostas implicitamente.
Teste no navegador¶
O Verniz Lab roda o compilador e a VM do Zolo por WebAssembly e renderiza o documento em um preview isolado. Views, markup, CSS escopado e signals de ilhas funcionam sem instalar nada.
O Lab não simula um servidor TCP. Rotas, @action, cookies, bancos e o canal de reload do zolo dev exigem a CLI local.
O que existe hoje¶
Verniz já inclui Views server-rendered, markup parecido com HTML, interpolação com escape, corpos raw de style e script, CSS escopado, @island, signals graváveis e derivados, effects, eventos DOM, atributos reativos, bind:prop, @action, revalidação de rota e swaps de desenvolvimento que preservam estado.
Reconciliação de listas reativas, contratos Wire tipados, verificação de vazamento @secret e formulários com refinement types ainda são trabalho futuro.
Próximo: Views e Markup do Verniz.