cbs
Version:
Carlos's Buffer Serializer
25 lines (24 loc) • 597 B
JavaScript
exports.serialize = function (buffers) {
var parts = [];
buffers.forEach(function (part) {
var len = Buffer(4);
if (typeof part === 'string') part = Buffer(part);
len.writeUInt32BE(part.length, 0);
parts.push(len, part);
});
return Buffer.concat(parts);
};
exports.unserialize = function (buf) {
var parts = [];
var l = buf.length, idx = 0;
while (idx < l) {
var dlen = buf.readUInt32BE(idx);
idx += 4;
var start = idx;
var end = start + dlen;
var part = buf.slice(start, end);
parts.push(part);
idx += part.length;
}
return parts;
};