json-text-sequence

2019-08-16

Parse and generate RS-delimited JSON sequences according to draft-ietf-json-text-sequence

Parse and generate JSON text sequences as defined in RFC 7464.

JSON text sequences are nice for unambiguous JSON log files. They are resilient to many forms of damage such as truncation, multiple writers incorrectly configured to write to the same file, corrupted JSON, etc. An example sequence:

␞{"d":"2014-09-22T21:58:35.270Z","value":6}

␞{"d":"2014-09-22T21:59:15.117Z","value":12}

Where "␞" is the ASCII "Record Separator" character (U+001E), and " " is the ASCII "LINE FEED" character (U+000A), otherwise known as "\n".

To install:

npm install json-text-sequence

To parse the format, pipe an input source into a parser stream:

var parser = require('json-text-sequence').parser;
var fs = require('fs');

var p = new parser()
  .on('json', function(obj) {
    console.log('JSON:', obj);
  })
  .on('truncated', function(buf) {
    console.log('Truncated:', buf);
  })
  .on('invalid', function(buf) {
    console.log('Invalid:', buf);
  })
  .on('finish', function() {
    console.log('DONE');
  });

fs.createReadStream('example.log').pipe(p);

To generate the format, create a generator, pipe its output somewhere interesting, then write objects to the generator:

var generator = require('json-text-sequence').generator;
var fs = require('fs');

var g = new generator();
g.pipe(fs.createWriteStream('example.log'));

g.write({
  d: new Date(),
  count: 0
});

Build StatusCoverage Status

HomePage

https://github.com/hildjj/json-text-sequence

Repository

https://github.com/hildjj/json-text-sequence


上一篇:delimit-stream
下一篇:nofilter
相关教程
关注微信

扫码加入 JavaScript 社区

相关文章

首次访问,需要验证
微信扫码,关注即可
(仅需验证一次)

欢迎加入 JavaScript 社区

号内回复关键字:

回到顶部