UNPKG

kafkajs

Version:

A modern Apache Kafka client for node.js

25 lines (21 loc) 651 B
const Encoder = require('../../encoder') const crc32 = require('../../crc32') const { Types: Compression, COMPRESSION_CODEC_MASK } = require('../compression') /** * v0 * Message => Crc MagicByte Attributes Key Value * Crc => int32 * MagicByte => int8 * Attributes => int8 * Key => bytes * Value => bytes */ module.exports = ({ compression = Compression.None, key, value }) => { const content = new Encoder() .writeInt8(0) // magicByte .writeInt8(compression & COMPRESSION_CODEC_MASK) .writeBytes(key) .writeBytes(value) const crc = crc32(content) return new Encoder().writeInt32(crc).writeEncoder(content) }