Skip to content

🔬A parser for RESP (REdis Serialization Protocol)

License

Notifications You must be signed in to change notification settings

DavidCai1111/resper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

resper

js-standard-style Build Status Coverage Status

A parser for RESP (REdis Serialization Protocol).

Install

npm install resper

Usage

'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.

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.

About

🔬A parser for RESP (REdis Serialization Protocol)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published