
Product
Introducing Webhook Events for Alert Changes
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.
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.
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.

Product
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.

Security News
ENISA has become a CVE Program Root, giving the EU a central authority for coordinating vulnerability reporting, disclosure, and cross-border response.

Product
Socket now scans OpenVSX extensions, giving teams early detection of risky behaviors, hidden capabilities, and supply chain threats in developer tools.