Security News
Node.js EOL Versions CVE Dubbed the "Worst CVE of the Year" by Security Experts
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Binary encoding for Javascript objects.
Transcode all types of JSON values to and from a binary format, including Buffer, Date, RegExp and more. Originally created to stream worker commands over pipes between processes.
:warning: Early release, handle with care :sunglasses:
Array and Object can hold any of the other types. Serialisation of Object reads enumerable properties, but ignores functions.
Next:
$ npm install buffo
Write a value to a Buffer, later decode the Buffer back to a value.
var buffo = require('buffo');
var buffer = buffo.encode(sourceValue);
var outputValue = buffo.parse(buffer);
Create encoder and decoder Transform streams and connect them over some binary pipe. Then write or pipe JavaScript objects and they magically reappear at the other end.
Keep in mind that due to the nature of node's object-streams you cannot send null
or undefined
as root value as they will terminate the Transform stream (they work fine nested in Arrays or Objects).
var buffo = require('buffo');
// sender
var encoding = buffo.encodeStream();
encoding.pipe(process.stdout);
encoding.write(myValue);
// receiver
var decoding = buffo.decodeStream();
process.stdin.pipe(decoding).on('data', function(data) {
// received a value
});
(note this stdin/stdout example is blocking on Linux, so from inter-process stream better use net or file-descriptor streams)
Performance fair but unclear, varies a lot per data type. Reliability unproven but hopeful.
If you need maximum speed and don't need the fancy types use good ol' line separated JSON.
Install development dependencies in your git checkout:
$ npm install
Build and run tests using grunt:
$ grunt test
See the Gruntfile.js
for additional commands.
They are welcome but please discuss in the issues before you commit to large changes. If you send a PR make sure you code is idiomatic and linted.
Copyright (c) 2014 Bart van der Schoor @ Bartvds
Licensed under the MIT license.
FAQs
Binary encoding for Javascript objects.
The npm package buffo receives a total of 1 weekly downloads. As such, buffo popularity was classified as not popular.
We found that buffo demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.