GrauKatze 26e3d1a21c инициализация проекта | 2 éve | |
---|---|---|
.. | ||
test | 2 éve | |
.travis.yml | 2 éve | |
LICENSE | 2 éve | |
README.md | 2 éve | |
index.js | 2 éve | |
package.json | 2 éve |
Fast & efficient buffer writer used to keep memory usage low by internally recycling a single large buffer.
Used as the binary protocol writer in node-postgres
Since postgres requires big endian encoding, this only writes big endian numbers for now, but can & probably will easily be extended to write little endian as well.
I'll admit this has a few postgres specific things I might need to take out in the future, such as addHeader
var writer = new (require('buffer-writer')());
Writes a 4-byte big endian binary encoded number to the end of the buffer.
Writes a 2-byte big endian binary encoded number to the end of the buffer.
Writes a string to the buffer utf8
encoded and adds a null character (\0
) at the end.
Writes the 5 byte PostgreSQL required header to the beginning of the buffer. (1 byte for character, 1 BE Int32 for length of the buffer)
Collects all data in the writer and joins it into a single, new buffer.
Writes the 5 byte postgres required message header, collects all data in the writer and joins it into a single, new buffer, and then resets the writer.
This is kind of node-postgres specific. If you're interested in using this for a more general purpose thing, lemme know. I would love to work with you on getting this more reusable for your needs.
MIT