WebSockets em Zig: Handshake, Frames e Servidor em Tempo Real
Para implementar WebSockets em Zig, trate o canal como dois contratos distintos: um handshake HTTP Upgrade que valida headers e devolve 101 Switching Protocols, e um loop …
Para implementar WebSockets em Zig, trate o canal como dois contratos distintos: um handshake HTTP Upgrade que valida headers e devolve 101 Switching Protocols, e um loop …
Para resolver um hostname em Zig, use a API de resolução de std.net disponível na versão instalada — normalmente getAddressList —, percorra todos os endereços IPv4 e IPv6 …
Para obter o IP real do cliente em um serviço Zig atrás de proxy, nunca leia X-Forwarded-For de forma cega. Aceite headers de encaminhamento somente quando o peer TCP …
Para implementar HTTP Range em Zig, aceite inicialmente um único intervalo no formato bytes=início-fim, valide-o contra o tamanho atual do arquivo e responda com 206 …
Para adicionar compressão HTTP a um serviço Zig, negocie o formato pelo header Accept-Encoding, comprima apenas respostas textuais que tenham tamanho suficiente e envie …
Para implementar cookies e sessões em uma API Zig com segurança, envie ao navegador apenas um identificador de sessão aleatório e mantenha os dados confiáveis no …
Para configurar CORS em uma API Zig, trate o header Origin como entrada não confiável, compare-o com uma lista explícita de origens permitidas e devolva os headers CORS …
Para tratar redirecionamentos HTTP em Zig com segurança, não basta repetir a requisição para o valor de Location. O cliente precisa distinguir 301, 302, 303, 307 e 308, …
Health check em Zig é o contrato operacional que diz a um orquestrador, load balancer ou script de deploy se o processo está vivo e se ele pode receber tráfego agora. Na …
Graceful shutdown em Zig é o contrato operacional de receber SIGTERM ou SIGINT, parar de aceitar trabalho novo, esvaziar (ou cancelar com limite) o que já está em …
Para fazer upload de arquivos em Zig para uma API que aceita multipart/form-data, você precisa montar um corpo HTTP com um boundary, adicionar um bloco para cada campo ou …
PostgreSQL é o banco relacional que mais aparece em serviços modernos escritos em Zig. Não por acaso: ele é maduro, estável, tem um protocolo binário bem documentado e …
Cache em memória resolve muitos problemas até o momento em que você sobe uma segunda réplica do serviço. A partir dali, duas instâncias não compartilham cache local, o …
Serviços falham de formas pouco educadas. Uma API externa fica lenta antes de cair, um banco começa a responder timeout, um provedor de pagamento devolve 500 por alguns …
Rate limiting é uma daquelas peças pequenas que separam um serviço experimental de um serviço operável. Sem limite, um cliente com bug, um crawler agressivo ou uma …
Webhooks parecem simples até o primeiro incidente. Um serviço externo envia um POST, seu servidor responde 200, e pronto. Na prática, o endpoint precisa lidar com corpo …
Upload de arquivos parece um detalhe simples de produto: receber um PDF, uma imagem, um CSV ou um pacote gerado pelo usuário. Em produção, porém, ele vira uma das …
Arquitetura hexagonal em Zig não precisa virar uma pilha de abstrações importada de Java ou TypeScript. A ideia útil é simples: o domínio da aplicação fica no centro, e …
OpenAPI não precisa significar um framework enorme ou um gerador mágico que toma conta do projeto. Em Zig, ele funciona melhor como contrato de fronteira: um arquivo …
Nem toda interface em tempo real precisa de WebSocket. Muitas telas só precisam receber atualizações do servidor: progresso de um job, logs de deploy, status de uma fila, …
Colocar um servidor HTTP em Zig no ar é simples. Manter esse servidor previsível em produção exige mais disciplina: limite de corpo, logs que ajudam a investigar …
Construir uma API REST em Zig é diferente de repetir o modelo de um framework web pronto. Zig não tenta esconder o custo de cada alocação, cópia ou bloqueio; por isso, …
Criar servidores HTTP é essencial para desenvolvimento backend moderno. Com Zig, você pode construir APIs pequenas, previsíveis e fáceis de distribuir como binários …