https://github.com/davidcai1111/resper
:microscope:A parser for RESP (REdis Serialization Protocol)
https://github.com/davidcai1111/resper
nodejs resp
Last synced: about 1 month ago
JSON representation
:microscope:A parser for RESP (REdis Serialization Protocol)
- Host: GitHub
- URL: https://github.com/davidcai1111/resper
- Owner: DavidCai1111
- License: mit
- Created: 2016-03-19T11:54:20.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2016-04-20T15:06:22.000Z (about 10 years ago)
- Last Synced: 2026-03-26T11:37:03.594Z (3 months ago)
- Topics: nodejs, resp
- Language: JavaScript
- Homepage:
- Size: 7.81 KB
- Stars: 5
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# resper
[](http://standardjs.com/)
[](https://travis-ci.org/DavidCai1993/resper)
[](https://coveralls.io/github/DavidCai1993/resper?branch=master)
A parser for RESP (REdis Serialization Protocol).
## Install
```sh
npm install resper
```
## Usage
```js
'use strict'
const Resper = require('resper')
let resper = new Resper()
resper
.on('error', console.error)
.on('data', console.log)
.on('drain', () => {
// ...
console.log('drain')
})
resper.write(Resper.encodeInt(998))
resper.end(Resper.encodeArray([
Resper.encodeInt(1),
Resper.encodeString('str'),
[
Resper.encodeNullArray(),
Resper.encodeError(new Error('heheda'))
]
]))
```
## API
### Class: Resper
### Class Method: encodeString(str)
Encode `str` to RESP buffer.
### Class Method: encodeError(err)
Encode `err` to RESP buffer.
### Class Method: encodeInt(int)
Encode `int` to RESP buffer.
### Class Method: encodeBulkString(bulk)
Encode `bluk` to RESP buffer, `bluk` could be a String or a Buffer.
### Class Method: encodeNull()
Get the RESP Null buffer.
### Class Method: encodeNullArray()
Get the RESP NullArray buffer.
### Class Method: encodeArray(arr)
Encode `arr` to RESP buffer, each element in `arr` should be an instance of buffer.
### Class Method: encodeRequestArray(requestArr)
Encode `requestArr` to RESP request buffer, each element in `requestArr` should be a string.
```
resper.encodeRequestArray(['LLEN', 'mylist'])
```
### Class Method: decode(encodedBuffer)
Decode RESP buffer to real value. The return value is array which first element is the decode result, and the second value is the index after first `CRLF`.
```js
Resper.decode(Resper.encodeInt(998))[0] // 998
```
### resper.write(buffer)
Write `buffer` to the resper, resper will emit `data` event when after it parsed the `buffer`.
### resper.end([buffer])
When no more data will be writen, you can call this method, and the instance of `Resper` will emit `finish` event.
#### Event: data
`function (parsedData) { }`
Emitted when the instance of `Resper` parsed the written RESP buffer.
#### Event: error
`function (error) { }`
Emitted when an error was occurred.
#### Event: drain
`function () { }`
Emitted when no more data in instance's inner buffer.
#### Event: finish
`function () { }`
Emitted when the `resper.end` was called.