Fila de Prioridade em Zig: Binary Heap Min-Heap
Para implementar uma fila de prioridade em Zig, use um binary heap sobre um ArrayList. Em uma min-heap, o menor elemento fica na raiz; cada pai é menor ou igual aos …
Para implementar uma fila de prioridade em Zig, use um binary heap sobre um ArrayList. Em uma min-heap, o menor elemento fica na raiz; cada pai é menor ou igual aos …
Para implementar um cache LRU em Zig, use um HashMap para encontrar entradas e uma lista duplamente encadeada para registrar a ordem de uso. O item acessado mais …
Para construir um ring buffer SPSC em Zig, restrinja o contrato a um produtor e um consumidor, use um array circular de capacidade fixa e publique progresso com índices …
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 …
Ordenação Topológica em Zig: Algoritmo de Kahn e Detecção de Ciclos A ordenação topológica em Zig organiza os vértices de um grafo direcionado para que toda dependência …
BFS em Zig: Busca em Largura, Menor Caminho e Fila A BFS em Zig (Breadth-First Search ou busca em largura) percorre um grafo por níveis: primeiro visita a origem, depois …
Dijkstra em Zig: Caminho Mínimo Passo a Passo O algoritmo de Dijkstra encontra o menor custo de um vértice de origem até todos os outros vértices alcançáveis de um grafo …
Bellman-Ford em Zig: Caminho Mínimo e Ciclos Negativos O algoritmo de Bellman-Ford encontra o caminho de menor custo entre um vértice de origem e todos os demais vértices …
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 criar um array de strings em Zig, use [_][]const u8{ "Ana", "Bruno", "Carla" }. O tipo inferido será [3][]const u8: um array de três …
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 implementar cache HTTP em Zig, guarde o corpo da resposta junto com o valor de ETag. Na próxima requisição, envie esse valor no header If-None-Match. Se o servidor …
Para fazer um download de arquivo em Zig com segurança, não basta executar um GET e salvar qualquer resposta recebida. O fluxo robusto é: usar std.http.Client, aceitar …
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 …
Se você já publicou um tópico MQTT a partir de um microcontrolador, provavelmente usou uma biblioteca em C herdada, um wrapper de vendor ou um stub gerado para o seu …
Quem já tentou compilar um projeto C/C++ decente em mais de um sistema operacional conhece a dor: instalar GCC no Linux, MinGW no Windows, toolchain da Apple no macOS, …
Servir HTTP em texto plano serve para desenvolvimento local e quase nada mais. Em produção, todo tráfego que cruza a rede — entre o navegador e seu serviço, entre dois …
Um binário Zig que responde HTTP sozinho é só metade do caminho para produção. No mundo real, quase nenhum serviço fica exposto diretamente na porta 443. Na frente dele …
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 …
Observabilidade em Zig: Logs Estruturados e Métricas Prometheus Serviços em produção precisam de observabilidade: a capacidade de responder rapidamente “o que está …
Todo time que coloca software em produção acaba criando cron jobs e rotinas recorrentes. Limpar arquivos temporários, reconciliar dados, chamar uma API externa, gerar …
WebAssembly deixou de ser apenas uma forma de rodar código no navegador. Em 2026, a conversa mais interessante para quem trabalha com Zig é outra: usar WASI e Component …
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 …
Uma CLI útil quase sempre começa simples: alguns argumentos posicionais, uma flag --verbose e talvez um caminho de saída. Depois aparecem tokens de API, formato de …
GitLab CI combina bem com Zig porque os dois favorecem rotinas explícitas: um arquivo versionado descreve o pipeline, o build.zig descreve a compilação e o resultado pode …
Muita gente associa Zig a sistemas embarcados, runtimes, bancos de dados e ferramentas de baixo nível. Mas existe um uso menos glamouroso e muito útil: ETL pequeno e …
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 …
Otimizar um programa Zig sem profiling é uma forma sofisticada de adivinhar. A linguagem dá controle fino sobre memória, alocadores, chamadas C, layout de dados e modos …
Zig no ESP32 com FreeRTOS: Firmware, C Interop e Build Seguro O ESP32 aparece em projetos de IoT, automação, telemetria, produtos conectados e protótipos industriais …
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 …
Zig evita a cultura de instalar cinquenta pacotes antes de escrever a primeira linha de codigo. Isso e uma vantagem, mas tambem cria uma duvida pratica: quando um projeto …
Zig para Programadores C: Guia de Migração Seguro Se você sabe C, Zig parece familiar nos primeiros minutos: funções livres, tipos explícitos, ponteiros, structs, …
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 …
JWT em Zig: Autenticação para APIs sem Framework Pesado JWT aparece cedo em quase toda API moderna. Um serviço começa com uma rota pública, depois precisa identificar …
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, …
Times de infraestrutura vivem cercados por ferramentas pequenas: scripts para validar deploy, coletar logs, gerar relatórios, conferir certificados, compactar artefatos, …
Supply chain deixou de ser preocupação exclusiva de equipes enormes. Um projeto Zig pequeno também baixa compilador, importa bibliotecas C, usa pacotes declarados no …
Zig chama atenção porque promete uma combinação rara: controle próximo de C, build system integrado, cross-compilation simples, binários pequenos e uma linguagem que …
eBPF deixou de ser um detalhe de kernel para virar uma das tecnologias mais importantes em observabilidade, segurança, rede e performance no Linux moderno. Ferramentas …
O Model Context Protocol, conhecido como MCP, virou uma das formas mais práticas de conectar agentes de IA a ferramentas reais: arquivos, bancos, APIs internas, …
Um dos motivos para usar Zig em ferramentas de infraestrutura é simples: o mesmo projeto consegue gerar binários nativos para Linux, macOS, Windows, BSD e WebAssembly sem …
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 …
Bun sempre foi um dos exemplos mais fortes de Zig em produção: um runtime JavaScript de alta performance, com bundler, test runner, package manager e compatibilidade …
Ferramentas de linha de comando são uma das aplicações mais naturais para Zig. A combinação de binários estáticos pequenos, cross-compilation trivial e inicialização …
Um dos maiores diferenciais da linguagem Zig é sua capacidade de cross-compilation integrada ao compilador. Diferente de outras linguagens onde configurar uma toolchain …
Processamento de dados — parsing de CSV, JSON, formatos binários, logs — é uma das tarefas mais comuns em software. Em muitos cenários, o gargalo não é o algoritmo em si, …
Zig Package Manager: Guia Completo do build.zig.zon Gerenciar dependências é uma das tarefas mais importantes em qualquer projeto de software. O Zig adota uma abordagem …
Zig 0.16.0 (Juicy Main): download, o que mudou e como migrar O Zig 0.16.0 “Juicy Main” muda principalmente a inicialização dos programas, o modelo de I/O e …
Zig Libc: A Reescrita que Está Eliminando Código C Uma das mudanças mais ambiciosas no ecossistema Zig em 2026 é o projeto zig libc — uma iniciativa para substituir …
Se você já conhece o básico de threads e concorrência em Zig, está na hora de avançar. Neste artigo, vamos explorar padrões de concorrência do mundo real — thread pools, …
Programação de rede é uma das áreas onde Zig realmente brilha. Com controle fino sobre memória, zero overhead de runtime e acesso direto às APIs do sistema operacional, …
Zig Async/Await: O Novo Sistema std.Io Explicado O sistema de I/O assíncrono do Zig passou por uma reformulação completa. O antigo modelo de async/await — que havia sido …
Zig para Automacao e Scripts: Substituindo Python e Bash Quando pensamos em automacao, Python e Bash sao as primeiras linguagens que vem a mente. Sao escolhas …
Build System do Zig: Guia Completo do build.zig O build system de Zig é único — em vez de arquivos declarativos como Makefiles ou CMakeLists.txt, você escreve a lógica de …
Para chamar C em Zig, importe o header com @cImport e vincule a implementação durante a compilação. Para chamar Zig em C, declare funções com export e forneça um header C …
Uma das decisões de design mais acertadas da linguagem Zig foi incorporar testes como cidadãos de primeira classe. Não existe framework externo, não existe configuração …
Cross-compilation é o ato de compilar código em uma plataforma para que ele rode em outra. Se você desenvolve no Linux e precisa entregar binários para Windows, macOS ou …
Se você trabalha com servidores de alta performance no Linux, provavelmente já ouviu falar do io_uring. Introduzido no kernel 5.1 (2019), o io_uring revolucionou o I/O …
Se você já programou em C, provavelmente já sofreu com macros do preprocessador. Se veio do C++, sabe que templates podem se tornar um pesadelo de mensagens de erro. E se …
1. Introdução ao Redis com Zig O Redis é um dos bancos de dados em memória mais utilizados no mundo. Ele funciona como um armazenamento de estruturas de dados …
Resumo rápido: vale aprender Zig em 2026? Sim — para programação de sistemas, toolchains, runtimes, software embarcado, WebAssembly, infraestrutura e ferramentas de linha …
Zig FAQ: 50 Perguntas e Respostas Sobre a Linguagem Zig Este é o guia mais completo de perguntas frequentes sobre a linguagem de programação Zig em português. Reunimos as …
Nos últimos anos, Zig – uma linguagem de programação de sistemas moderna e de código aberto – deixou de ser uma curiosidade de nicho para se tornar uma das …
Se você é um programador C experiente e está ouvindo falar cada vez mais sobre Zig, este guia é para você. Vamos explorar, lado a lado, como os conceitos que você já …
Algoritmo de Euclides em Zig: MDC, MMC e Inverso Modular Para calcular o MDC em Zig, aplique repetidamente a transformação (a, b) = (b, a % b) até que b seja zero. O …
Algoritmos em Zig — Implementações com Explicações em Português Bem-vindo à coleção completa de algoritmos implementados na linguagem Zig. Cada página contém explicações …
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, …
O Arena Allocator é provavelmente o padrão de alocação mais poderoso em Zig. No artigo anterior apresentamos brevemente os allocators. Agora vamos explorar o Arena …
Array Dinâmico (ArrayList) em Zig — Implementação Completa O array dinâmico (ArrayList) é um array que se redimensiona automaticamente quando necessário. Mantém os …
Testes automatizados so tem valor quando rodam de forma consistente em cada mudanca de codigo. CI/CD (Continuous Integration / Continuous Delivery) garante que cada …
Biblioteca Padrão do Zig (stdlib): módulos std em português A biblioteca padrão do Zig, também chamada de Zig stdlib ou simplesmente std, é a coleção de módulos oficiais …
Busca Exponencial em Zig — Implementação e Explicação A Busca Exponencial é um algoritmo que combina busca exponencial com busca binária. Primeiro, ela encontra um …
Busca Linear em Zig — Implementação e Explicação A Busca Linear (ou busca sequencial) é o algoritmo de busca mais simples. Ela percorre cada elemento da coleção …
Busca por Interpolação em Zig — Implementação e Explicação A Busca por Interpolação é uma variante da busca binária que estima a posição do elemento procurado com base na …
Busca Ternária em Zig: Funções Unimodais, Máximo e Mínimo A busca ternária em Zig é mais útil para encontrar o máximo ou mínimo de uma função unimodal: uma função que …
Cheatsheet: Arrays e Slices em Zig Arrays são coleções de tamanho fixo determinado em tempo de compilação. Slices são referências a segmentos contíguos de memória com …
Cheatsheet: Enums e Unions em Zig Referência completa para enumerações e unions em Zig, incluindo tagged unions, pattern matching e padrões de uso comuns. Enums Básicos …
Cheatsheet: Error Handling em Zig O sistema de erros de Zig é uma das características mais distintas da linguagem. Em vez de exceções, Zig usa error unions que são …
Cheatsheet: Ponteiros em Zig Zig tem um sistema de ponteiros mais preciso que C, distinguindo entre ponteiros simples, multi-ponteiros, slices e ponteiros com sentinela. …
Cheatsheet: Sintaxe Básica em Zig Referência rápida para a sintaxe fundamental da linguagem Zig. Esta cheatsheet cobre tudo que você precisa para começar a escrever …
Cheatsheet: Strings em Zig Em Zig, strings são simplesmente slices de bytes ([]const u8). Não existe um tipo String especial. Esta cheatsheet cobre todas as operações …
Cheatsheet: Structs em Zig Structs são o principal mecanismo de composição de dados em Zig. Diferente de linguagens OOP tradicionais, Zig não tem herança, mas oferece …
Cheatsheet: Tipos de Dados em Zig Referência completa de todos os tipos disponíveis na linguagem Zig, com exemplos práticos e tabelas de consulta rápida. Tipos Inteiros …
Cheatsheets Zig — Referência Rápida em Português Bem-vindo à coleção de cheatsheets da linguagem Zig em português brasileiro. Estas referências rápidas foram criadas para …
Code review em Zig não é só procurar estilo. A linguagem dá controle explícito sobre memória, erros, layout, compilação, integração com C e artefatos finais. Esse …
Cifra de César em Zig — Tutorial Passo a Passo Neste tutorial, vamos implementar a Cifra de César, um dos algoritmos de criptografia mais antigos e conhecidos. Apesar de …
O gargalo de performance numero um em software moderno nao e a CPU — e o acesso a memoria. Uma cache miss pode custar 100x mais que uma operacao aritmetica. Neste artigo, …
Coin Change em Zig: Problema do Troco com Programação Dinâmica O Coin Change, conhecido em português como problema do troco, consiste em formar um valor usando um …
Como Comparar Strings em Zig Em Zig, strings são slices de bytes ([]const u8) e não podem ser comparadas diretamente com ==. Em vez disso, a biblioteca padrão fornece …
Como Compilar o Zig do Código-Fonte Compilar o compilador Zig a partir do código-fonte é um procedimento voltado para usuários avançados, contribuidores do projeto e …
Como Configurar Zig no GitHub Actions (CI/CD) Automatizar a compilação, os testes e o deploy do seu projeto Zig com GitHub Actions é uma prática essencial para manter a …
Como Converter entre Tipos de String em Zig Em Zig, não existe um único tipo “string”. Em vez disso, existem vários tipos relacionados que representam …
Introdução Threads permitem executar múltiplas tarefas simultaneamente, aproveitando os múltiplos núcleos do processador. Em Zig, a API std.Thread oferece uma interface …
Introdução Um cliente TCP é um programa que inicia uma conexão com um servidor remoto usando o protocolo TCP (Transmission Control Protocol). TCP garante a entrega …
Como Formatar Strings com std.fmt em Zig O sistema de formatação de Zig (std.fmt) é poderoso e seguro em tempo de compilação. Diferente de printf em C, o compilador …
Como Gerenciar Múltiplas Versões do Zig Conforme você trabalha com o Zig em diferentes projetos, inevitavelmente surge a necessidade de manter múltiplas versões do …
Introdução Uma pilha (stack) é uma estrutura de dados que segue o princípio LIFO (Last In, First Out) — o último elemento inserido é o primeiro a ser removido. Pilhas são …
Como Instalar Zig com Nix O Nix é um gerenciador de pacotes funcional que garante builds reprodutíveis e ambientes isolados. Este guia mostra como instalar e usar o Zig …
Como Instalar Zig no Arch Linux O Arch Linux é uma das melhores distribuições para desenvolvimento com Zig, graças aos seus repositórios sempre atualizados e à filosofia …
Como Instalar Zig no Fedora e RHEL Este guia apresenta como instalar o compilador Zig em distribuições baseadas em Red Hat, incluindo Fedora, CentOS Stream, RHEL (Red Hat …
Como Instalar Zig no macOS Este guia cobre a instalação do compilador Zig no macOS, com suporte tanto para processadores Intel quanto Apple Silicon (M1, M2, M3, M4). …
Como Instalar Zig no Ubuntu e Debian Este guia cobre a instalação do compilador Zig em distribuições Linux baseadas em Debian, incluindo Ubuntu, Debian, Linux Mint, …
Como Instalar Zig no Windows Este guia cobre a instalação do compilador Zig no Windows 10 e Windows 11. Apresentamos quatro métodos: Scoop (recomendado), Chocolatey, …
Para instalar Zig, baixe o compilador em ziglang.org/download, escolha o arquivo do seu sistema e arquitetura, extraia a pasta e adicione essa pasta ao PATH. Abra um novo …
Como Instalar Zig no WSL (Windows Subsystem for Linux) O WSL (Windows Subsystem for Linux) permite rodar um ambiente Linux completo dentro do Windows. Esta é uma …
Introdução Migrar um projeto C existente para Zig não precisa ser um esforço de “tudo ou nada”. A interoperabilidade bidirecional entre Zig e C permite uma …
Introdução Obter informações sobre o sistema é útil para logs, diagnóstico, ajuste de performance e decisões em tempo de execução (como número de threads). Zig permite …
Introdução Ordenar dados é uma das operações mais comuns em programação. Zig oferece funções de ordenação eficientes na biblioteca padrão através do módulo std.mem, …
Introdução JSON (JavaScript Object Notation) é o formato de dados mais usado para APIs web, configuração e troca de dados entre sistemas. Em Zig, a biblioteca padrão …
Introdução Arrays multidimensionais (matrizes) são fundamentais para representar tabelas, grades, imagens e dados científicos. Em Zig, matrizes são representadas como …
Introdução Tipos numéricos comuns como u64 e i128 têm limites de tamanho. Quando você precisa trabalhar com números que excedem esses limites – como em …
Introdução Trabalhar com tempo é essencial para logs, medição de performance, timestamps em dados, timeouts e agendamento de tarefas. Zig oferece std.time com funções …
Introdução Em muitas situações, você precisa de uma coleção que cresce e diminui dinamicamente durante a execução do programa. Arrays fixos em Zig têm tamanho definido em …
Introdução O FixedBufferAllocator permite alocar memória a partir de um buffer pré-existente, sem recorrer ao heap. Isso é particularmente útil em sistemas embarcados, …
Introdução O GeneralPurposeAllocator (GPA) é o alocador de uso geral recomendado em Zig para desenvolvimento e depuração. Ele fornece detecção de erros como double-free, …
Introdução Um HashMap (também chamado de dicionário ou mapa) é uma estrutura de dados que associa chaves a valores, permitindo inserção, busca e remoção em tempo O(1) …
Introdução Um Mutex (Mutual Exclusion) é um mecanismo de sincronização que garante que apenas uma thread acesse um recurso compartilhado por vez. Sem sincronização …
Introdução Operações atômicas são instruções de CPU que executam de forma indivisível, sem possibilidade de interrupção por outra thread. Elas permitem sincronização …
Introdução Um thread pool é um padrão que mantém um conjunto fixo de threads reutilizáveis para processar tarefas. Em vez de criar e destruir threads para cada tarefa …
Introdução Timers e sleep são fundamentais para controlar o fluxo temporal de programas: pausar entre operações, implementar polling, criar intervalos periódicos e medir …
Como Usar Zig com Docker O Docker é uma ferramenta essencial para criar ambientes de desenvolvimento reprodutíveis e para CI/CD. Este guia mostra como usar o Zig em …
Configurar Neovim para Zig O Neovim é uma excelente escolha para desenvolvimento com Zig, oferecendo LSP nativo, Tree-sitter para syntax highlighting preciso e um …
Configurar Sublime Text e Emacs para Zig Embora o VS Code e o Neovim sejam os editores mais populares para Zig, o Sublime Text e o Emacs também oferecem excelente …
Configurar VS Code para Zig O Visual Studio Code é o editor mais popular para desenvolvimento com Zig, graças à extensão oficial e ao suporte ao ZLS (Zig Language …
Nos artigos anteriores, construímos um servidor HTTP e um sistema de roteamento. Agora vamos construir uma API REST completa com operações CRUD, …
Counting Sort em Zig — Implementação e Explicação O Counting Sort (ordenação por contagem) é um algoritmo de ordenação não-comparativo que funciona contando o número de …
Nos artigos anteriores, exploramos os allocators da biblioteca padrão: tipos de allocators e arena allocator. Agora vamos dar o próximo passo: criar allocators …
Criar seu Primeiro Projeto Zig Parabéns por instalar o Zig! Zig é uma linguagem de programação de sistemas que combina performance de C com ferramentas modernas de …
Crivo de Eratóstenes em Zig — Implementação e Explicação O Crivo de Eratóstenes é um algoritmo milenar para encontrar todos os números primos até um limite N. É …
Deque (Double-Ended Queue) em Zig — Implementação Completa O Deque (Double-Ended Queue, pronuncia-se “deck”) permite inserção e remoção em ambas as …
Desenvolvimento de Jogos com Zig: Serie Completa Bem-vindo a serie sobre desenvolvimento de jogos com Zig. Zig esta se tornando uma escolha popular para game dev gracas …
Desenvolvimento Web com Zig Zig pode não ser a primeira linguagem que vem à mente quando se fala em desenvolvimento web, mas suas características únicas — performance …
DFS (Busca em Profundidade) em Zig — Implementação e Explicação A DFS em Zig (Depth-First Search ou busca em profundidade) percorre um grafo avançando por um caminho até …
O Entity Component System (ECS) e o padrao arquitetural dominante no desenvolvimento de jogos moderno. Diferente da abordagem orientada a objetos tradicional (heranca …
Error handling em Zig não é exceção escondida, código de retorno esquecido nem macro mágica. A linguagem transforma falhas em parte explícita da assinatura: se uma função …
Erros Comuns em Zig — Guia de Referência e Soluções Bem-vindo ao guia completo de erros da linguagem Zig em português brasileiro. Esta página reúne os erros mais …
Estratégias de Alocação de Memória em Zig Zig não tem garbage collector — a gestão de memória é explícita e controlada pelo desenvolvedor através de allocators. Esta …
Estruturas de Dados em Zig — Implementações em Português Bem-vindo à coleção completa de estruturas de dados implementadas na linguagem Zig. Cada página contém …
Exponenciação Rápida em Zig — Implementação e Explicação A exponenciação rápida (binary exponentiation) calcula a^n em O(log n) em vez de O(n). A ideia é que a^n pode ser …
Resposta rápida: o FAQ do ZigLang Brasil responde, em português, às dúvidas mais comuns sobre a linguagem Zig — o que ela é, como gerencia memória, como funciona o …
Ferramentas de Desenvolvimento para Zig em 2026 Para ferramentas internas de operação, veja também o guia de ferramentas internas em Zig para DevOps, que conecta CLI, …
Fibonacci (Programação Dinâmica) em Zig — Implementação e Explicação A sequência de Fibonacci é uma das sequências mais famosas da matemática: cada número é a soma dos …
Fibonacci por Exponenciação de Matriz em Zig — Implementação e Explicação Calcular o n-ésimo número de Fibonacci em O(log n) usando exponenciação de matrizes. A ideia se …
Floyd-Warshall em Zig — Implementação e Explicação O algoritmo de Floyd-Warshall encontra os caminhos mais curtos entre todos os pares de vértices em um grafo ponderado …
Funções Builtin do Zig — Referência Completa As funções builtin do Zig são operações especiais fornecidas diretamente pelo compilador. Diferente de funções comuns da …
O primeiro passo para desenvolver jogos com Zig e configurar seu ambiente e abrir uma janela grafica. Zig se destaca aqui gracas a sua interoperabilidade nativa com C, …
O game loop e o coracao de qualquer jogo. Ele e responsavel por atualizar a logica do jogo, processar input e renderizar a tela em uma sequencia continua. Um game loop …
Hash Map (Endereçamento Aberto) em Zig — Implementação Completa O Hash Map com endereçamento aberto resolve colisões armazenando todos os elementos diretamente no array, …
Um sistema de input bem projetado e a ponte entre o jogador e o jogo. Ele precisa ser responsivo, configuravel e desacoplado da logica do jogo. Neste artigo, construimos …
io_uring e a interface de I/O assincrono mais moderna e performatica do kernel Linux, introduzida na versao 5.1 (2019). Ela revoluciona a forma como programas interagem …
KMP (Knuth-Morris-Pratt) em Zig — Implementação e Explicação O algoritmo KMP (Knuth-Morris-Pratt) busca ocorrências de um padrão em um texto de forma eficiente, sem …
Kubernetes Operators em Zig: CRDs, Watch, Reconcile e Deploy Kubernetes Operators automatizam a gestão de aplicações complexas: recebem um estado desejado em um recurso …
LIS (Maior Subsequência Crescente) em Zig — Implementação e Explicação O algoritmo LIS (Longest Increasing Subsequence) encontra a maior subsequência estritamente …
Masterclass: Gerenciamento de Memória em Zig Bem-vindo à série mais completa sobre gerenciamento de memória em Zig em português. Esta masterclass foi projetada para …
Matrix Chain Multiplication em Zig — Implementação e Explicação O problema da Multiplicação em Cadeia de Matrizes determina a ordem ótima de parentização para multiplicar …
Merge Sort em Zig — Implementação e Explicação O Merge Sort (ordenação por intercalação) é um algoritmo de ordenação baseado na técnica de divisão e conquista. Ele divide …
Networking e um pilar fundamental da programacao de sistemas moderna. Neste quarto artigo da serie, exploramos como Zig fornece acesso direto a sockets de rede, desde …
Apos entender como syscalls funcionam no artigo anterior, e hora de mergulhar nas operacoes de file system. O Linux segue a filosofia “tudo e um arquivo”, e …
Otimização de Performance em Zig: Série Completa Performance é uma das principais razões para escolher Zig. A linguagem foi projetada desde o início para gerar código …
Introdução errdefer é uma das features mais elegantes de Zig. Diferente de defer (que executa sempre), errdefer executa apenas quando a função retorna um erro. Isso …
Introdução Zig usa error unions em vez de exceções. Uma função que pode falhar retorna !T (error union), e o chamador deve tratar o erro com try (propagar) ou catch …
Port Scanner TCP em Zig — Tutorial Passo a Passo Neste tutorial, vamos construir um scanner de portas TCP em Zig. O scanner tenta se conectar a portas de um host e …
Programacao de Sistemas com Zig: Serie Completa Bem-vindo a serie mais completa em portugues sobre programacao de sistemas operacionais com Zig. Nesta serie, voce vai …
Projetos Práticos em Zig — Aprenda Construindo Bem-vindo à nossa coletânea de 50 projetos práticos em Zig! Cada tutorial guia você passo a passo na construção de uma …
Introdução Zig é uma linguagem excelente, mas não é a ferramenta certa para tudo. Este artigo fornece uma análise honesta de quando Zig brilha e quando outras linguagens …
Quiz no Terminal em Zig — Tutorial Passo a Passo Neste tutorial, vamos construir um jogo de quiz interativo no terminal. O jogador responde perguntas de múltipla escolha, …
Radix Sort em Zig — Implementação e Explicação O Radix Sort (ordenação por raiz/dígitos) é um algoritmo de ordenação não-comparativo que ordena números processando cada …
Rate Limiter em Zig: Token Bucket Passo a Passo Resposta rápida: para criar um rate limiter em Zig, mantenha um token bucket por cliente. Cada requisição consome um …
Receitas Zig — Snippets e Soluções Prontas em Português Bem-vindo à nossa coletânea de receitas práticas para Zig Lang. Aqui você encontra soluções prontas e testadas …
Ring Buffer (Buffer Circular) em Zig — Implementação Completa Um Ring Buffer (buffer circular) é uma estrutura de dados de tamanho fixo que funciona como se o final do …
Programar sistemas embarcados com Zig e uma experiencia surpreendentemente suave. Diferente de C, onde voce precisa configurar toolchains complexas (gcc-arm-none-eabi, …
Introdução Gerar JSON é tão importante quanto parseá-lo. Seja para responder a uma API, salvar configurações ou exportar dados, a serialização JSON é uma operação …
Syscalls sao a interface fundamental entre seus programas e o kernel do sistema operacional. Toda operacao que envolve recursos do sistema — abrir arquivos, alocar …
Escrever testes e facil. Escrever bons testes que sejam manteneiros, rapidos e confiaveis e uma arte. Neste artigo, exploramos padroes avancados de teste em Zig, …
Testes Avancados em Zig: Serie Completa Testes sao a base de software confiavel. Zig possui um sistema de testes integrado na linguagem que e simples, poderoso e nao …
Introdução Testes em Zig são cidadãos de primeira classe — integrados diretamente na linguagem com o bloco test. Não há necessidade de framework externo. Os testes ficam …
Thread Pool em Zig — Tutorial Passo a Passo Neste tutorial, vamos construir uma thread pool em Zig — um pool de threads reutilizáveis que processam tarefas de uma fila …
No artigo anterior, exploramos os fundamentos de stack e heap. Agora é hora de mergulhar no coração do gerenciamento de memória em Zig: os allocators. Zig oferece uma …
Troubleshooting Zig — Soluções para Problemas Comuns Bem-vindo ao guia de troubleshooting de Zig em português brasileiro. Aqui você encontra soluções para os problemas …
Union-Find (Conjuntos Disjuntos) em Zig — Implementação Completa A estrutura Union-Find (também chamada Disjoint Set Union — DSU) mantém uma coleção de conjuntos …
Zig possui um dos sistemas de testes mais elegantes entre linguagens de programacao de sistemas. Testes sao cidadaos de primeira classe na linguagem — nao ha necessidade …
Validador de CPF em Zig — Tutorial Passo a Passo Neste tutorial, vamos construir um validador de CPF completo em Zig. Este é um projeto especialmente relevante para …
Web Scraper em Zig — Tutorial Passo a Passo Neste tutorial, vamos construir um web scraper em Zig que faz requisições HTTP, extrai informações de páginas HTML e salva os …
Para encontrar a comunidade Zig Brasil, comece pelo Telegram em português e pela lista de e-mail zig-brasil, ambos listados na página de comunidades do Zig. Para estudar …
Zig com Banco de Dados: SQLite, PostgreSQL, Redis e Pooling Zig ainda não tem um ecossistema de ORMs comparável ao de Java, Python ou Node.js. Isso não é necessariamente …
Introdução Requisições HTTP GET são a forma mais comum de buscar dados da web. Em Zig, a biblioteca padrão oferece std.http.Client para fazer requisições HTTP com …
Introdução Requisições HTTP POST são usadas para enviar dados ao servidor, como payloads JSON, formulários e comandos para uma API REST. Diferente do GET, que apenas …
Zig para Segurança Cibernética A maioria das vulnerabilidades críticas de software (buffer overflows, use-after-free, null pointer dereferences) são causadas por erros de …
Zig para Sistemas Embarcados: Serie Completa Zig e uma linguagem ideal para programacao de sistemas embarcados. Com compilacao cruzada nativa, ausencia de garbage …
Introdução A questão “Zig ou Assembly?” pode parecer estranha à primeira vista — são linguagens de níveis de abstração bastante diferentes. Porém, Zig opera …
Introdução C23 é a versão mais recente do padrão ISO C e trouxe melhorias importantes: constexpr, typeof, nullptr, _BitInt, atributos padronizados, #embed e uma semântica …
Introdução Zig e D (também conhecido como Dlang) são linguagens que buscam melhorar a experiência de programação de sistemas em relação a C e C++, mas com abordagens …
Introdução Zig e Nim são duas linguagens de programação modernas que buscam oferecer alternativas viáveis ao C e C++ para programação de sistemas. Embora compartilhem o …
Introdução Zig e Odin pertencem à mesma geração de linguagens de programação de sistemas que buscam simplicidade como princípio fundamental. Ambas rejeitam a complexidade …
Resposta direta: o Ghostty Terminal é um emulador de terminal gratuito e de código aberto para macOS e Linux, criado por Mitchell Hashimoto. Combina aceleração por GPU, …
Uma das melhores formas de avaliar a vitalidade de uma linguagem de programação é observar os projetos que estão sendo construídos com ela. No caso da zig lang, o cenário …
Introdução A linguagem Zig nunca esteve tão em evidência quanto agora. O Zig em 2026 está em um ponto de inflexão: depois de anos de desenvolvimento intenso, iterações …
Uma das perguntas mais frequentes de quem começa a estudar a linguagem Zig é: como criar uma GUI com Zig? A resposta curta: use raylib-zig para jogos e aplicações …
Sistemas embarcados são um dos domínios onde a zig lang mais brilha. A linguagem Zig foi projetada desde o início para ser uma alternativa moderna ao C, e em nenhum lugar …
PostgreSQL é um dos bancos de dados relacionais mais poderosos e populares. Embora Zig não tenha ainda um driver nativo escrito 100% em Zig, sua interoperabilidade …
Property-Based Testing (PBT) é uma técnica onde você define propriedades que seu código deve satisfazer, e o framework gera automaticamente centenas ou milhares de casos …
Reflexão em tempo de compilação é uma das features mais poderosas do Zig. Ela permite que você inspecione e manipule tipos durante a compilação — gerando código otimizado …
Lua é uma das linguagens de scripting mais populares do mundo — leve, embutível e extremamente rápida quando combinada com LuaJIT. Mas quando você precisa de performance …
O que é FFI e Por que Zig é Excelente para Interoperabilidade? Foreign Function Interface (FFI) é o mecanismo que permite que uma linguagem de programação chame código …
O io_uring é a revolução em I/O assíncrono no Linux. Introduzido no kernel 5.1, ele elimina o overhead de syscalls tradicionais através de ring buffers compartilhados …
O Zig Package Registry é o repositório oficial de pacotes da linguagem Zig. Embora ainda em desenvolvimento ativo (Zig está em fase de pré-lançamento), o ecossistema já …
A vectorização SIMD é uma das técnicas mais poderosas para otimização de performance em computação moderna. Com SIMD (Single Instruction Multiple Data), você processa …
Como o Bun foi Construído com Zig: Case Study Completo Bun é um dos projetos mais impressionantes escritos em Zig. Este runtime JavaScript, lançado em 2022, promete ser …
Concorrência é um dos tópicos mais procurados por desenvolvedores Zig, e por um bom motivo: Zig oferece controle total sobre paralelismo, sem a complexidade de Rust nem …
Estruturas de dados são fundamentais em qualquer linguagem de programação. Zig oferece contêineres eficientes na biblioteca padrão, com controle explícito de memória e …
Debugar código é uma habilidade essencial para qualquer desenvolvedor. No Zig, você tem acesso a ferramentas poderosas para identificar e corrigir bugs — desde técnicas …
Gerenciamento de memória é o que mais diferencia Zig de Go, Rust, C e Java. Enquanto essas linguagens escolhem entre garbage collector (Go, Java, C#) ou borrow checker …
JSON é o formato de dados mais popular da web moderna. APIs REST, configurações, logs e troca de dados entre sistemas usam JSON. Saber trabalhar com JSON é uma habilidade …
A programação de sistemas está passando por uma transformação silenciosa. Enquanto Rust domina as manchetes como a “linguagem mais amada” e C continua sendo a …
Resposta direta: empresas e projetos usam Zig em produção principalmente em quatro papéis: produtos de sistemas escritos na linguagem, como TigerBeetle e Ghostty; …
Strings e Arrays em Zig: Guia Completo Arrays e strings são conceitos fundamentais em qualquer linguagem de programação, e Zig não é diferente. No entanto, Zig aborda …
Tratamento de Erros em Zig: Guia Completo O sistema de erros de Zig é uma das características mais distintivas desta linguagem de programação de sistemas. Diferente de …
Fazer requisições HTTP é uma necessidade fundamental em quase todo software moderno. Seja para consumir APIs REST, fazer webhooks, baixar artefatos ou integrar com …
O sistema de pacotes do Zig é uma das features mais recentes e poderosas da linguagem. Introduzido na versão 0.11.0 e aprimorado nas versões subsequentes, o Zig Package …
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 …
Escolher uma linguagem de programação de sistemas em 2026 pode ser desafiador. Zig, Rust e Go emergiram como três alternativas modernas — mas cada uma com filosofias e …
⚠️ Aviso Importante: O sistema de async/await em Zig está em evolução ativa. Enquanto os conceitos fundamentais são estáveis, algumas APIs específicas podem mudar entre …
Ferramentas de linha de comando (CLI) são essenciais no arsenal de qualquer desenvolvedor. Seja um utilitário de build, um gerador de código, ou uma ferramenta de …
Zig (também chamada de Zig lang ou ZigLang) é uma linguagem de programação de sistemas de código aberto. Ela serve para criar software nativo de alto desempenho — como …
Resposta rápida: um zig http server (também buscado como http server zig, zig server ou zig web) começa com std.net.Address.listen, server.accept() e std.http.Server para …
Este é o segundo artigo da série “Zig para Iniciantes”. Se você ainda não leu o primeiro, comece por Zig para Iniciantes: Primeiros Passos. Neste guia, vamos …
Testes são fundamentais para garantir a qualidade e confiabilidade do seu código. Zig não apenas facilita a escrita de testes — ela os torna uma parte natural e integrada …
O Zig Build System é uma das features mais poderosas da linguagem Zig. Diferente de C e C++ que dependem de ferramentas externas como Make, CMake, Autotools ou Meson, Zig …
WebAssembly (WASM) é um formato binário que permite executar código de alto desempenho em navegadores web. Com Zig, você pode compilar código para WebAssembly de forma …
Quer aprender Zig do zero em português? Comece instalando a linguagem, execute um programa pequeno e avance nesta ordem: sintaxe e tipos → funções e controle de fluxo → …
Quer aprender Zig do zero mas não sabe por onde começar? Você está no lugar certo. Este é o primeiro artigo da série “Zig para Iniciantes”, projetada para …
Resposta rápida: escolha Go para APIs, microsserviços, cloud e equipes que precisam entregar com rapidez usando um ecossistema maduro. Escolha Zig para software de …
Zig e Rust são duas das linguagens de programação de sistemas mais discutidas da última década. Ambas buscam ser alternativas modernas ao C e C++, mas com filosofias …
Download direto: para Linux x86_64, baixe o arquivo oficial zig-x86_64-linux-0.16.0.tar.xz. Para ARM64, Windows e macOS, use a tabela de downloads oficiais logo abaixo. …
Se existe uma feature que define o que torna Zig especial, é o comptime. Enquanto linguagens como C dependem de um preprocessador baseado em substituição de texto, e C++ …