zig fetch em Zig — O que é e Como Usar

zig fetch em Zig — O que é e Como Usar

Definição

zig fetch é o comando da toolchain do Zig usado para baixar pacotes de uma URL e calcular o hash de integridade necessário para o arquivo build.zig.zon. Quando você adiciona uma nova dependência ao seu projeto, zig fetch baixa o arquivo, verifica o conteúdo e exibe o hash que deve ser incluído na configuração.

Por que zig fetch Importa

  1. Obter hashes: Calcula o hash exato para garantir integridade das dependências.
  2. Cache local: Dependências são armazenadas em cache e reutilizadas entre builds.
  3. Verificação: Garante que o conteúdo baixado é exatamente o esperado.
  4. Simplicidade: Um único comando para adicionar dependências ao projeto.

Exemplo Prático

Baixar Dependência e Obter Hash

# Baixar pacote e exibir o hash
zig fetch https://github.com/zigzap/zap/archive/refs/tags/v0.5.0.tar.gz

# Saída: hash como 1220abcdef...
# Copie este hash para o build.zig.zon

Adicionar ao build.zig.zon

.{
    .name = "meu-projeto",
    .version = "0.1.0",

    .dependencies = .{
        .zap = .{
            .url = "https://github.com/zigzap/zap/archive/refs/tags/v0.5.0.tar.gz",
            // Cole o hash obtido pelo zig fetch
            .hash = "1220abcdef1234567890abcdef1234567890abcdef1234567890abcdef12345678",
        },
    },

    .paths = .{
        "build.zig",
        "build.zig.zon",
        "src",
    },
}

Salvar Diretamente no build.zig.zon

# Com --save, adiciona diretamente ao build.zig.zon
zig fetch --save https://github.com/user/repo/archive/refs/tags/v1.0.tar.gz

# Com --save=nome, especifica o nome da dependência
zig fetch --save=minha_lib https://github.com/user/lib/archive/v2.0.tar.gz

Opções do Comando

OpçãoDescrição
--saveSalva a dependência no build.zig.zon
--save=nomeSalva com nome específico
--debug-hashMostra detalhes do cálculo do hash

Armadilhas Comuns

  • URL do arquivo, não do repositório: Use a URL do arquivo .tar.gz, não a URL da página do GitHub.
  • Hash muda com o conteúdo: Se o mantenedor recriar a tag/release, o hash pode mudar. Prefira releases estáveis.
  • Rede necessária: O primeiro fetch requer internet. Após isso, o cache local é usado.
  • Formato do hash: O hash começa com 1220 seguido de caracteres hexadecimais. É um hash multihash (SHA-256).

Termos Relacionados

  • build.zig.zon — Manifesto onde o hash é declarado
  • build.zig — Onde a dependência é usada
  • ZON — Formato do manifesto
  • zig build — Comando que resolve dependências automaticamente

Tutoriais Relacionados

Continue aprendendo Zig

Explore mais tutoriais e artigos em português para dominar a linguagem Zig.