UNPKG

kafka-ts

Version:

**KafkaTS** is a Apache Kafka client library for Node.js. It provides both a low-level API for communicating directly with the Apache Kafka cluster and high-level APIs for publishing and subscribing to Kafka topics.

41 lines (40 loc) 1.22 kB
"use strict"; /* https://github.com/apache/kafka/blob/0.10.2/clients/src/main/java/org/apache/kafka/common/utils/Utils.java#L364 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.toPositive = exports.murmur2 = void 0; const murmur2 = (data) => { const length = data.length; const seed = 0x9747b28c; const m = 0x5bd1e995; const r = 24; let h = seed ^ length; let length4 = Math.floor(length / 4); for (let i = 0; i < length4; i++) { const i4 = i * 4; let k = (data[i4 + 0] & 0xff) + ((data[i4 + 1] & 0xff) << 8) + ((data[i4 + 2] & 0xff) << 16) + ((data[i4 + 3] & 0xff) << 24); k *= m; k ^= k >> r; k *= m; h *= m; h ^= k; } switch (length % 4) { case 3: h = h ^ ((data[(length & ~3) + 2] & 0xff) << 16); case 2: h = h ^ ((data[(length & ~3) + 1] & 0xff) << 8); case 1: h = h ^ (data[length & ~3] & 0xff); h *= m; } h ^= h >> 13; h *= m; h ^= h >> 15; return h; }; exports.murmur2 = murmur2; const toPositive = (input) => input & 0x7fffffff; exports.toPositive = toPositive;