-
Notifications
You must be signed in to change notification settings - Fork 5
RU:Codec
Реализация интерфейса https://pkg.go.dev/go.unistack.org/micro/v3/codec#Codec
Кодеки предназначены для встраивания в клиент, сервер и брокер. Но могут использоваться и как самостоятельная единица.
Отвечают за сериализацию/десериализацию сообщений. Внутри клинета/сервера, в зависимости от Content-Type запроса, выбирается кодек (является ключом в мапе одной из опций клиента/сервера) и вызывается метод Marshal/Unmarshal.
Инкапсуляция в интерфейс позволяет легко менять имплементацию (например более производительный вариант декодинга прото или джейсон). Если в кодеке существует метод MarshalAppend, то в некоторых случаях будет использоваться именно он для уменьшения количества мусора. Так как сервер или клиент может использовать буфер пул для массива байт.