protocol-buffers-encodings
Base 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 Buffer.subarray
function.
Moved into its own module for lighter installs
Usage
var encodings = require('protocol-buffers-encodings')
var buf = Buffer.alloc(4096)
encodings.string('hi', buf, 0)
console.log(encodings.string(buf, 0))
API
In general all encoders follow this API
buffer = enc.encode(value, buffer, offset)
Encode a value. buffer
should be a buffer big enough to fit the value, offset
should 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.bytes
contains the amount of bytes used in the buffer.
value = enc.decode(buffer, offset)
Decode a value. buffer
should be an encoded value and offset
should be the byte offset where you want to start decoding.
After a value has been decoded enc.decode.bytes
contains the amount of bytes that was consumed from the buffer.
var len = enc.encodingLength(value)
Use this method to calculate how much space is needed to encode a value.
enc.type
A number indicating the protobuf wire type for the encoding
Encodings
The following encodings are available
encodings.bytes
- encode a bufferencodings.string
- encode a stringencodings.bool
- encode a booleanencodings.uint64
- encode a uint64 to varintencodings.uint32
- encode a uint32 to varintencodings.sint64
- encode a signed int64 to a signed varintencodings.sint32
- encode a signed int32 to a signed varintencodings.int64
- encode a signed int64 to a varintencodings.int32
- encode a signed int32 to a varintencodings.fixed32
- encode a uint32 to a fixed 4 byte bufferencodings.sfixed32
- encode a signed int32 to a fixed 4 byte bufferencodings.fixed64
- encode a uint64 (represented as a buffer) to a fixed 8 byte bufferencodings.sfixed64
- encode a signed int64 (represented as a buffer) to a fixed 8 byte bufferencodings.double
- encode a doubleencodings.float
- encode a floatencodings.enum
- encode a numeric enum as a varint
License
MIT