Skip to content

appology/resp-parser

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
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

appology / resp-parser Build Status

A grammar and stream-friendly parser for the RESP protocol.

Crafted with ♡ by Appology

Made possible by the super awesome nearley parser toolkit.

Bootstrapped with nearley-template.

Before you install...

Please keep in mind that this project is not yet battle tested.

Issues?

You can submit new issues using GitHub Issues

Install:

npm i resp-parser --save

What does it do?

Parses RESP into an Abstract Syntax Tree (AST) for further processing.

This example code:

var RespParser = require('resp-parser')

var parser = new RespParser()
// optional: call feed more than once if needed
parser.feed('*2\r\n*2\r\n:1\r\n$7\r\ntesting\r\n$7\r\ntesting\r\n')

console.log(JSON.stringify(parser.results))

Results in the following output:

{
    "type": "Array",
    "length": 2,
    "value": [{
        "type": "Array",
        "length": 2,
        "value": [{
            "type": "Integer",
            "value": 1
        }, {
            "type": "BulkString",
            "length": 7,
            "value": "testing"
        }]
    }, {
        "type": "BulkString",
        "length": 7,
        "value": "testing"
    }]
}

Included:

  • Support for the following types:
    • Integers
    • Simple Strings
    • Bulk Strings
    • Null Bulk Strings
    • Arrays (including nested arrays)
    • Null Arrays
    • Errors
    • Pipelines
  • Unit Tests

Coming soon:

  • Tools for dealing with ASTs from this parser

Check out the release notes.

RESP Protocol documentation can be found at: https://redis.io/topics/protocol

About

A grammar and stream-friendly parser for the RESP protocol.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published