Coder Social home page Coder Social logo

resper's Introduction

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.

resper's People

Contributors

davidcai1111 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

resper's Issues

Great :)

Nice work @DavidCai1993, hope this will help newcomers to Redis protocol!

Your library will be shared in our next RedisWeekly! Once published (in a matter of minutes) you will be able to see your projet description here :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.