Comparing version 1.0.0 to 2.0.0
@@ -0,1 +1,6 @@ | ||
## 2.0.0 | ||
- Drop support for Node 0.10, 0.12., add support for Node 8 & 9 (@jhermsmeier) | ||
- Support for typed arrays (@jhermsmeier, @nazar-pc) | ||
## 1.0.0 | ||
@@ -2,0 +7,0 @@ |
@@ -28,26 +28,24 @@ var Buffer = require('safe-buffer').Buffer | ||
encode.getType = function (value) { | ||
if (Buffer.isBuffer(value)) return 'buffer' | ||
if (Array.isArray(value)) return 'array' | ||
if (ArrayBuffer.isView(value)) return 'arraybufferview' | ||
if (value instanceof Number) return 'number' | ||
if (value instanceof Boolean) return 'boolean' | ||
if (value instanceof ArrayBuffer) return 'arraybuffer' | ||
return typeof value | ||
} | ||
encode._encode = function (buffers, data) { | ||
if (Buffer.isBuffer(data)) { | ||
buffers.push(Buffer.from(data.length + ':')) | ||
buffers.push(data) | ||
return | ||
} | ||
if (data == null) { return } | ||
switch (typeof data) { | ||
case 'string': | ||
encode.buffer(buffers, data) | ||
break | ||
case 'number': | ||
encode.number(buffers, data) | ||
break | ||
case 'object': | ||
data.constructor === Array | ||
? encode.list(buffers, data) | ||
: encode.dict(buffers, data) | ||
break | ||
case 'boolean': | ||
encode.number(buffers, data ? 1 : 0) | ||
break | ||
switch (encode.getType(data)) { | ||
case 'buffer': encode.buffer(buffers, data); break | ||
case 'object': encode.dict(buffers, data); break | ||
case 'array': encode.list(buffers, data); break | ||
case 'string': encode.string(buffers, data); break | ||
case 'number': encode.number(buffers, data); break | ||
case 'boolean': encode.number(buffers, data); break | ||
case 'arraybufferview': encode.buffer(buffers, Buffer.from(data.buffer, data.byteOffset, data.byteLength)); break | ||
case 'arraybuffer': encode.buffer(buffers, Buffer.from(data)); break | ||
} | ||
@@ -61,2 +59,6 @@ } | ||
encode.buffer = function (buffers, data) { | ||
buffers.push(new Buffer(data.length + ':'), data) | ||
} | ||
encode.string = function (buffers, data) { | ||
buffers.push(Buffer.from(Buffer.byteLength(data) + ':' + data)) | ||
@@ -95,3 +97,3 @@ } | ||
if (data[k] == null) continue | ||
encode.buffer(buffers, k) | ||
encode.string(buffers, k) | ||
encode._encode(buffers, data[k]) | ||
@@ -98,0 +100,0 @@ } |
{ | ||
"name": "bencode", | ||
"description": "Bencode de/encoder", | ||
"version": "1.0.0", | ||
"version": "2.0.0", | ||
"bugs": { | ||
@@ -26,6 +26,6 @@ "url": "https://github.com/themasch/node-bencode/issues" | ||
"dht.js": "latest", | ||
"matcha": "~0.7.0", | ||
"nanobench": "^2.1.0", | ||
"standard": "^9.0.2", | ||
"tap-spec": "~4.1.0", | ||
"tape": "~4.6.0" | ||
"tape": "^4.6.3" | ||
}, | ||
@@ -46,3 +46,3 @@ "keywords": [ | ||
"scripts": { | ||
"bench": "matcha", | ||
"benchmark": "nanobench benchmark/*.js", | ||
"style": "standard --fix", | ||
@@ -49,0 +49,0 @@ "test": "standard && tape test/*.test.js | tap-spec" |
@@ -39,34 +39,2 @@ # Bencode | ||
## Performance | ||
### encode buffer | ||
package | version | op/sec | ||
----------- | ------- | --------- | ||
bencode | 0.12.0 | *47,692* | ||
dht.js | 0.2.16 | 43,908 | ||
dht-bencode | 0.1.2 | 35,670 | ||
bencoding | 0.0.1 | 31,942 | ||
bncode | 0.5.3 | 25,097 | ||
btparse | 1.0.2 | - | ||
### decode to buffer | ||
package | version | op/sec | ||
----------- | ------- | ------ | ||
bencode | 0.12.0 | 129,326 | ||
dht.js | 0.2.16 | 71,639 | ||
dht-bencode | 0.1.2 | 89,285 | ||
bencoding | 0.0.1 | 97,285 | ||
bncode | 0.5.3 | 16,567 | ||
btparse | 1.0.2 | *155,660* | ||
_Benchmarks run on an Intel Core i7-4600M @ 2.90Ghz with node v7.8.0 & GNU/Linux 4.4.39_ | ||
To run the benchmarks simply use | ||
``` | ||
npm run bench | ||
``` | ||
## Usage | ||
@@ -73,0 +41,0 @@ |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
236
15267
9
138