Protocolo Binário em Zig: Framing, Endianness e Parsing Seguro
Para implementar um protocolo binário em Zig, não serialize structs diretamente. Defina um formato de bytes explícito, escolha uma endianness fixa, inclua o comprimento …
Artigos, análises e novidades sobre a linguagem Zig (Zig lang) em português. Acompanhe tendências, comparações com outras linguagens, dicas de carreira e tudo sobre o ecossistema ZigLang para desenvolvedores brasileiros.
Para implementar um protocolo binário em Zig, não serialize structs diretamente. Defina um formato de bytes explícito, escolha uma endianness fixa, inclua o comprimento …
Para escolher entre mutex e atomic em Zig, use esta regra: se você protege uma invariável com vários campos ou vários passos, escolha std.Thread.Mutex; se atualiza um …
Uma fila limitada e thread-safe é uma das formas mais simples de tornar concorrência previsível em Zig. Produtores colocam tarefas na fila, workers retiram essas tarefas, …
Se o seu programa parou de compilar com um erro em std.io.getStdOut, std.io.getStdIn ou bufferedWriter, você encontrou o Writergate: a reescrita do subsistema de I/O da …
Para enviar um arquivo por um socket em Zig com menos cópias, use sendfile quando o target e o tipo de conexão permitirem, mas trate a operação como streaming: mantenha …
Para fazer fuzz testing em Zig, escreva um test que chama std.testing.fuzz com uma função testOne recebendo []const u8, transforme esses bytes em uma chamada real do seu …
Para executar um comando externo em Zig, use std.process.Child.run quando o trabalho for curto e a saída puder ser capturada em memória. Passe cada argumento …
Para mapear um arquivo em memória com Zig, abra o arquivo, obtenha e valide seu tamanho, crie o mapeamento com std.posix.mmap, use o slice retornado somente enquanto o …
Para reduzir a latência de mensagens TCP pequenas em Zig, você pode habilitar TCP_NODELAY no socket com std.posix.setsockopt, desativando o algoritmo de Nagle naquela …
Para usar TCP keepalive em Zig, habilite SO_KEEPALIVE no file descriptor do socket e, quando a plataforma permitir, ajuste TCP_KEEPIDLE, TCP_KEEPINTVL e TCP_KEEPCNT. Mas …
Para criar Unix domain sockets em Zig, construa um std.net.Address com Address.initUnix, abra o listener nesse endereço e trate cada conexão como um fluxo local. A …
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 …