Skip to content
This repository has been archived by the owner on Jan 24, 2018. It is now read-only.
/ spp_node Public archive

(No more mantained) SSDB Protocol Parser For Node, Built For Speed.

Notifications You must be signed in to change notification settings

hit9/spp_node

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple Protocol Parser

Actually, this is ssdb's network protocol, and I think it can be used on other projects.

Build Status

Support Engines

  • nodejs (>=v0.10.30)
  • iojs (>=v1.0.4)

Protocol

Packet := Block+ '\n'
Block  := Size '\n' Data '\n'
Size   := literal_integer
Data   := string_bytes

For example:

3
set
3
key
3
val

Install

npm install spp

Usage

This package only provides parser, because packing is easy to do.

Parsing example:

var spp = require('spp'),
    parser = new spp.Parser();

parser.feed('2\nok\n\n');

var res;
while((res = parser.get()) !== undefined) {
  console.log(res); // ['ok']
}

API Ref

  • parser.feed(buffer/string)
  • parser.get()
  • parser.clear()

Benchmark

$ node bench.js
spp parser: 500000 in 4.127s => 121153 ops
nodejs parser: 500000 in 6.143s => 81393 ops

License

MIT (c) 2014, hit9 (Chao Wang).

About

(No more mantained) SSDB Protocol Parser For Node, Built For Speed.

Resources

Stars

Watchers

Forks

Packages

No packages published