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
- Obter hashes: Calcula o hash exato para garantir integridade das dependências.
- Cache local: Dependências são armazenadas em cache e reutilizadas entre builds.
- Verificação: Garante que o conteúdo baixado é exatamente o esperado.
- 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ção | Descrição |
|---|---|
--save | Salva a dependência no build.zig.zon |
--save=nome | Salva com nome específico |
--debug-hash | Mostra 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
1220seguido 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