Skip to content

RU:Codec

Vasiliy Tolstov edited this page Nov 19, 2021 · 3 revisions

Реализация интерфейса https://pkg.go.dev/go.unistack.org/micro/v3/codec#Codec

Кодеки предназначены для встраивания в клиент, сервер и брокер. Но могут использоваться и как самостоятельная единица.

Отвечают за сериализацию/десериализацию сообщений. Внутри клинета/сервера, в зависимости от Content-Type запроса, выбирается кодек (является ключом в мапе одной из опций клиента/сервера) и вызывается метод Marshal/Unmarshal.

Инкапсуляция в интерфейс позволяет легко менять имплементацию (например более производительный вариант декодинга прото или джейсон). Если в кодеке существует метод MarshalAppend, то в некоторых случаях будет использоваться именно он для уменьшения количества мусора. Так как сервер или клиент может использовать буфер пул для массива байт.

Clone this wiki locally