|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- # BSER Binary Serialization
-
- BSER is a binary serialization scheme that can be used as an alternative to JSON.
- BSER uses a framed encoding that makes it simpler to use to stream a sequence of
- encoded values.
-
- It is intended to be used for local-IPC only and strings are represented as binary
- with no specific encoding; this matches the convention employed by most operating
- system filename storage.
-
- For more details about the serialization scheme see
- [Watchman's docs](https://facebook.github.io/watchman/docs/bser.html).
-
- ## API
-
- ```js
- var bser = require('bser');
- ```
-
- ### bser.loadFromBuffer
-
- The is the synchronous decoder; given an input string or buffer,
- decodes a single value and returns it. Throws an error if the
- input is invalid.
-
- ```js
- var obj = bser.loadFromBuffer(buf);
- ```
-
- ### bser.dumpToBuffer
-
- Synchronously encodes a value as BSER.
-
- ```js
- var encoded = bser.dumpToBuffer(['hello']);
- console.log(bser.loadFromBuffer(encoded)); // ['hello']
- ```
-
- ### BunserBuf
-
- The asynchronous decoder API is implemented in the BunserBuf object.
- You may incrementally append data to this object and it will emit the
- decoded values via its `value` event.
-
- ```js
- var bunser = new bser.BunserBuf();
-
- bunser.on('value', function(obj) {
- console.log(obj);
- });
- ```
-
- Then in your socket `data` event:
-
- ```js
- bunser.append(buf);
- ```
-
- ## Example
-
- Read BSER from socket:
-
- ```js
- var bunser = new bser.BunserBuf();
-
- bunser.on('value', function(obj) {
- console.log('data from socket', obj);
- });
-
- var socket = net.connect('/socket');
-
- socket.on('data', function(buf) {
- bunser.append(buf);
- });
- ```
-
- Write BSER to socket:
-
- ```js
- socket.write(bser.dumpToBuffer(obj));
- ```
|