Saltearse al contenido

Etiquetas de compilación

Las etiquetas de compilación de Go (también llamadas restricciones de compilación) son directivas que le indican al compilador de Go incluir o excluir archivos durante la compilación. Gin usa etiquetas de compilación para permitirte intercambiar implementaciones internas o deshabilitar características opcionales en tiempo de compilación, sin cambiar ningún código de aplicación.

Esto es útil en varios escenarios:

  • Optimización de rendimiento — Reemplazar el paquete encoding/json predeterminado con un codificador de terceros más rápido para acelerar la serialización JSON en tu API.
  • Reducción del tamaño del binario — Eliminar características que no usas, como el renderizado MsgPack, para producir un binario compilado más pequeño.
  • Ajuste de despliegue — Elegir diferentes codificadores para diferentes entornos (ej. una compilación de producción de alto rendimiento vs. una compilación de desarrollo estándar).

Las etiquetas de compilación se pasan a la cadena de herramientas de Go con la bandera -tags:

Ventana de terminal
go build -tags=<tag_name> .

Puedes combinar múltiples etiquetas separándolas con comas:

Ventana de terminal
go build -tags=nomsgpack,go_json .

Etiquetas de compilación disponibles

EtiquetaEfecto
go_jsonReemplaza encoding/json con go-json
jsoniterReemplaza encoding/json con jsoniter
sonic avxReemplaza encoding/json con sonic (requiere instrucciones de CPU AVX)
nomsgpackDeshabilita el soporte de renderizado MsgPack

En esta sección

Las páginas a continuación cubren cada etiqueta de compilación en detalle:

  • Compilar con reemplazo de JSON — Reemplazar el codificador JSON predeterminado con go-json, jsoniter o sonic para una serialización más rápida.
  • Compilar sin MsgPack — Deshabilitar el renderizado MsgPack con la etiqueta de compilación nomsgpack para reducir el tamaño del binario.