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.
Please keep in mind that this project is not yet battle tested.
You can submit new issues using GitHub Issues
npm i resp-parser --save
Parses RESP into an Abstract Syntax Tree (AST) for further processing.
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))
{
"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"
}]
}
- Support for the following types:
- Integers
- Simple Strings
- Bulk Strings
- Null Bulk Strings
- Arrays (including nested arrays)
- Null Arrays
- Errors
- Pipelines
- Unit Tests
- 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