https://github.com/rootslab/sermone
Sermone, a Redis Protocol Encoder for commands.
https://github.com/rootslab/sermone
redis-client redis-protocol-encoder spade
Last synced: 8 months ago
JSON representation
Sermone, a Redis Protocol Encoder for commands.
- Host: GitHub
- URL: https://github.com/rootslab/sermone
- Owner: rootslab
- License: mit
- Created: 2014-04-14T10:44:22.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2018-02-10T14:41:18.000Z (over 8 years ago)
- Last Synced: 2025-10-06T14:56:16.934Z (8 months ago)
- Topics: redis-client, redis-protocol-encoder, spade
- Language: JavaScript
- Homepage:
- Size: 30.3 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
Awesome Lists containing this project
README
### Sermone
[](https://www.npmjs.org/package/sermone)
[](https://www.codacy.com/public/44gatti/sermone)
[](https://codeclimate.com/github/rootslab/sermone)
[](https://github.com/rootslab/sermone#mit-license)

[](http://travis-ci.org/rootslab/sermone)
[](https://david-dm.org/rootslab/sermone)
[](https://david-dm.org/rootslab/sermone#info=devDependencies)
[](http://npm-stat.com/charts.html?package=sermone)

[](https://nodei.co/npm/sermone/)
> **_Sermone_**, a __Redis__ protocol encoder for commands.
> Try __[Syllabus](https://github.com/rootslab/syllabus)__ a collection of mix-ins for __Redis__ commands, builded upon **_Sermone.encode_**.
### Install
```bash
$ npm install sermone [-g]
// clone repo
$ git clone git@github.com:rootslab/sermone.git
```
> __require__ returns an hash/obj.
```javascript
var Sermone = require( 'sermone' );
```
### Run Tests
```bash
$ cd sermone/
$ npm test
```
### Run Benchmark
```bash
$ cd sermone/
$ npm run bench
```
### Sample Usage
```javascript
var Sermone = require( 'sermone' );
Sermone.encode( 'CMD', 'KEY', [ 1, 2, 3 ], function () {} );
```
> See [examples](example/).
### Methods
> Arguments within [ ] are optional, '|' indicates multiple type for an argument.
```javascript
/*
* Encode a Redis command.
*
* NOTE: 'cmd' and 'key' arguments should be strings, however,
* for convenience, 'key' is converted to String before encoding,
* then you can use Numbers for keys without problems.
*
* It returns an hash:
* {
* bulks : Number
* , cmd : String
* , ecmd : String | Buffer ( RESTORE cmd )
* , fn : Function
* , zn : Function
* }
*/
Sermone#encode( String cmd [, Function fn [, Function zn ] ] ) : Object
Sermone#encode( String cmd [, String key [, Function fn [, Function zn ] ] ] ) : Object
Sermone#encode( String cmd [, String key [, Object object [, Function fn [, Function zn ] ] ] ] ) : Object
Sermone#encode( String cmd [, String key [, Array array [, Function fn [, Function zn ] ] ] ] ) : Object
```
------------------------------------------------------------------------
### MIT License
> Copyright (c) 2013-present < Guglielmo Ferri : 44gatti@gmail.com >
> Permission is hereby granted, free of charge, to any person obtaining
> a copy of this software and associated documentation files (the
> 'Software'), to deal in the Software without restriction, including
> without limitation the rights to use, copy, modify, merge, publish,
> distribute, sublicense, and/or sell copies of the Software, and to
> permit persons to whom the Software is furnished to do so, subject to
> the following conditions:
> __The above copyright notice and this permission notice shall be
> included in all copies or substantial portions of the Software.__
> THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.