Pular para o conteúdo

Tags de Build

As tags de build do Go (também chamadas de restrições de build) são diretivas que dizem ao compilador Go para incluir ou excluir arquivos durante a compilação. O Gin usa tags de build para permitir trocar implementações internas ou desabilitar recursos opcionais em tempo de compilação, sem alterar nenhum código da aplicação.

Isso é útil em vários cenários:

  • Otimização de desempenho — Substitua o pacote encoding/json padrão por um encoder de terceiros mais rápido para acelerar a serialização JSON na sua API.
  • Redução do tamanho do binário — Remova recursos que você não usa, como renderização MsgPack, para produzir um binário compilado menor.
  • Ajuste de implantação — Escolha encoders diferentes para ambientes diferentes (ex.: um build de produção de alta vazão vs. um build de desenvolvimento padrão).

Tags de build são passadas ao toolchain do Go com a flag -tags:

Terminal window
go build -tags=<tag_name> .

Você pode combinar múltiplas tags separando-as com vírgulas:

Terminal window
go build -tags=nomsgpack,go_json .

Tags de build disponíveis

TagEfeito
go_jsonSubstitui encoding/json por go-json
jsoniterSubstitui encoding/json por jsoniter
sonic avxSubstitui encoding/json por sonic (requer instruções de CPU AVX)
nomsgpackDesabilita o suporte à renderização MsgPack

Nesta seção

As páginas abaixo cobrem cada tag de build em detalhes:

  • Build com substituição de JSON — Substitua o encoder JSON padrão por go-json, jsoniter ou sonic para serialização mais rápida.
  • Build sem MsgPack — Desabilite a renderização MsgPack com a tag de build nomsgpack para reduzir o tamanho do binário.