Перейти к содержимому

Теги сборки

Теги сборки Go (также называемые ограничениями сборки) — это директивы, которые указывают компилятору Go включать или исключать файлы при компиляции. Gin использует теги сборки, чтобы вы могли заменять внутренние реализации или отключать необязательные функции на этапе компиляции без изменения кода приложения.

Это полезно в нескольких сценариях:

  • Оптимизация производительности — Замена стандартного пакета encoding/json на более быстрый сторонний кодировщик для ускорения JSON-сериализации в вашем API.
  • Уменьшение размера бинарного файла — Исключение неиспользуемых функций, таких как рендеринг MsgPack, для получения меньшего скомпилированного бинарного файла.
  • Настройка для развёртывания — Выбор различных кодировщиков для разных окружений (например, высоконагруженная продуктовая сборка vs. стандартная сборка для разработки).

Теги сборки передаются инструментарию Go с помощью флага -tags:

Окно терминала
go build -tags=<имя_тега> .

Вы можете комбинировать несколько тегов, разделяя их запятыми:

Окно терминала
go build -tags=nomsgpack,go_json .

Доступные теги сборки

ТегЭффект
go_jsonЗаменяет encoding/json на go-json
jsoniterЗаменяет encoding/json на jsoniter
sonic avxЗаменяет encoding/json на sonic (требуются инструкции AVX процессора)
nomsgpackОтключает поддержку рендеринга MsgPack

В этом разделе

Страницы ниже подробно описывают каждый тег сборки:

  • Сборка с заменой JSON — Замена стандартного JSON-кодировщика на go-json, jsoniter или sonic для более быстрой сериализации.
  • Сборка без MsgPack — Отключение рендеринга MsgPack с помощью тега сборки nomsgpack для уменьшения размера бинарного файла.