protocol-buffers-encodingsBase encodings for protocol-buffers.
npm install protocol-buffers-encodings
Note: use Node.js >= 16.15.0 to avoid a performance regression due to a slower
Moved into its own module for lighter installs
var encodings = require('protocol-buffers-encodings') var buf = Buffer.alloc(4096) encodings.string('hi', buf, 0) console.log(encodings.string(buf, 0)) // prints 'hi'
APIIn general all encoders follow this API
Encode a value.
buffer = enc.encode(value, buffer, offset)
buffershould be a buffer big enough to fit the value,
offsetshould be the byte offset in the buffer where you want to write it. The buffer is returned for convenience.
After a value has been encoded
enc.encode.bytescontains the amount of bytes used in the buffer.
Decode a value.
value = enc.decode(buffer, offset)
buffershould be an encoded value and
offsetshould be the byte offset where you want to start decoding.
After a value has been decoded
enc.decode.bytescontains the amount of bytes that was consumed from the buffer.
Use this method to calculate how much space is needed to encode a value.
var len = enc.encodingLength(value)
A number indicating the protobuf wire type for the encoding
EncodingsThe following encodings are available
encodings.bytes- encode a buffer
encodings.string- encode a string
encodings.bool- encode a boolean
encodings.uint64- encode a uint64 to varint
encodings.uint32- encode a uint32 to varint
encodings.sint64- encode a signed int64 to a signed varint
encodings.sint32- encode a signed int32 to a signed varint
encodings.int64- encode a signed int64 to a varint
encodings.int32- encode a signed int32 to a varint
encodings.fixed32- encode a uint32 to a fixed 4 byte buffer
encodings.sfixed32- encode a signed int32 to a fixed 4 byte buffer
encodings.fixed64- encode a uint64 (represented as a buffer) to a fixed 8 byte buffer
encodings.sfixed64- encode a signed int64 (represented as a buffer) to a fixed 8 byte buffer
encodings.double- encode a double
encodings.float- encode a float
encodings.enum- encode a numeric enum as a varint