Skip to content

juliangruber/binary-extract

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

binary-extract

Extract one or more values from a buffer of json without parsing the whole thing.

build status

Example

var extract = require('binary-extract');

var buf = new Buffer(JSON.stringify({
  foo: 'bar',
  bar: 'baz',
  nested: {
    bar: 'nope'  
  } 
}));

var value = extract(buf, 'bar');
// => 'baz'

var values = extract(buf, ['foo', 'nested'])
// => ["bar", {"bar":"nope"}]

Perf

With the object from bench.js, extract() is ~2-4x faster than JSON.parse(buf.toString()). It is also way more memory efficient as the blob stays out of the V8 heap.

The big perf gain comes mainly from not parsing everything and not converting the buffer to a string.

Installation

$ npm install binary-extract

API

extract(buf, keys)

Extract the value of keys in the json buf.

The value can be any valid JSON structure.

If keys is a String, returns a value. If keys is an Array of keys, returns an array of values.

Sponsors

This module is proudly supported by my Sponsors!

Do you want to support modules like this to improve their quality, stability and weigh in on new features? Then please consider donating to my Patreon. Not sure how much of my modules you're using? Try feross/thanks!

License

MIT

About

Extract a value from a buffer of json without parsing the whole thing

Resources

Stars

Watchers

Forks

Packages

No packages published