Socket
Socket
Sign inDemoInstall

memcpy

Package Overview
Dependencies
3
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.5.0 to 0.6.0

index.js

77

package.json
{
"name": "memcpy",
"version": "0.5.0",
"author": "Daniel Wirtz <dcode@dcode.io>",
"contributors": [
"Denys Khanzhiyev <xdenser@gmail.com>"
],
"description": "Copies data between node Buffers and/or ArrayBuffers up to ~75 times faster than in pure JS.",
"main": "src/memcpy.js",
"repository": {
"type": "git",
"url": "https://github.com/dcodeIO/node-memcpy.git"
},
"bugs": {
"url": "https://github.com/dcodeIO/node-memcpy/issues"
},
"keywords": [
"array",
"buffer",
"arraybuffer",
"typed array"
],
"dependencies": {
"bindings": "~1.1",
"nan": "~1.2.0"
},
"devDependencies": {
"testjs": "latest"
},
"license": "Apache-2.0",
"engines": {
"node": ">=0.8"
},
"scripts": {
"prepublish": "npm test",
"test": "node node_modules/testjs/bin/testjs tests/suite.js",
"make": "node-gyp configure build && npm test",
"install": "node-gyp configure build"
}
"name": "memcpy",
"version": "0.6.0",
"author": "Daniel Wirtz <dcode@dcode.io>",
"contributors": [
"Denys Khanzhiyev <xdenser@gmail.com>"
],
"description": "Copies data between node Buffers and/or ArrayBuffers up to ~75 times faster than in pure JS.",
"main": "src/memcpy.js",
"repository": {
"type": "git",
"url": "https://github.com/dcodeIO/node-memcpy.git"
},
"bugs": {
"url": "https://github.com/dcodeIO/node-memcpy/issues"
},
"keywords": [
"array",
"buffer",
"arraybuffer",
"typed array"
],
"dependencies": {
"bindings": "~1.1",
"nan": "~1.2.0",
"node-arraybuffer": "^1.0.11"
},
"devDependencies": {
"testjs": "latest"
},
"license": "Apache-2.0",
"engines": {
"node": ">=0.8 <=0.12"
},
"scripts": {
"prepublish": "npm test",
"test": "node node_modules/testjs/bin/testjs tests/suite.js",
"make": "node-gyp configure build && npm test",
"install": "node-gyp configure build"
}
}

@@ -16,12 +16,6 @@ node-memcpy

i memcpy.100k > cc Buffer -> ArrayBuffer: 23.861ms
i memcpy.100k > cc Buffer -> Uint8Array: 22.953ms
i memcpy.100k > cc ArrayBuffer -> Buffer: 22.955ms
i memcpy.100k > cc ArrayBuffer -> ArrayBuffer: 23.273ms
i memcpy.100k > cc ArrayBuffer -> Uint8Array: 22.685ms
i memcpy.100k > cc Uint8Array -> Buffer: 23.472ms
i memcpy.100k > cc Uint8Array -> ArrayBuffer: 22.975ms
i memcpy.100k > cc Uint8Array -> Uint8Array: 22.953ms
// Native JS

@@ -31,11 +25,5 @@

i memcpy.100k > js Buffer -> ArrayBuffer: 993.361ms
i memcpy.100k > js Buffer -> Uint8Array: 410.010ms
i memcpy.100k > js ArrayBuffer -> Buffer: 940.273ms
i memcpy.100k > js ArrayBuffer -> ArrayBuffer: 1626.182ms
i memcpy.100k > js ArrayBuffer -> Uint8Array: 1084.790ms
i memcpy.100k > js Uint8Array -> Buffer: 386.218ms
i memcpy.100k > js Uint8Array -> ArrayBuffer: 1107.530ms
i memcpy.100k > js Uint8Array -> Uint8Array: 502.653ms
```

@@ -49,5 +37,5 @@

|--------------|---------------------------|-----------|------------------------------------------------------------------
| target | Buffer &#124; ArrayBuffer &#124; Uint8Array | | Target buffer to copy to
| target | Buffer &#124; ArrayBuffer | | Target buffer to copy to
| targetStart | number | omittable | Target offset to begin copying to, defaults to `0`
| source | Buffer &#124; ArrayBuffer &#124; Uint8Array | | Source buffer to copy from
| source | Buffer &#124; ArrayBuffer | | Source buffer to copy from
| sourceStart | number | optional | Source offset to begin copying from, defaults to `0`

@@ -54,0 +42,0 @@ | sourceEnd | number | optional | Source offset to end copying from, defaults ot `source.length`

@@ -22,6 +22,7 @@ /*

*/ //
(function(module) {
(function (module) {
"use strict";
var path = require("path"),
Buffer = require('buffer').Buffer,
binding = null;

@@ -31,32 +32,2 @@ try { binding = require('bindings')('memcpy.node'); } catch (e) {}

/**
* @type {number}
* @inner
*/
var i = 0;
/**
* @type {number}
* @inner
*/
var j = 0;
/**
* @type {?Uint8Array}
* @inner
*/
var k = null;
/**
* @type {?Uint8Array}
* @inner
*/
var l = null;
/**
* @type {number}
* @inner
*/
var len = 0;
/**
* Copies data between Buffers and/or ArrayBuffers in a uniform way.

@@ -66,5 +37,5 @@ * @exports memcpy

* @name memcpy
* @param {!(Buffer|ArrayBuffer|Uint8Array)} target Destination
* @param {!(Buffer|ArrayBuffer)} target Destination
* @param {number|!(Buffer|ArrayBuffer)} targetStart Destination start, defaults to 0.
* @param {(!(Buffer|ArrayBuffer|Uint8Array)|number)=} source Source
* @param {(!(Buffer|ArrayBuffer)|number)=} source Source
* @param {number=} sourceStart Source start, defaults to 0.

@@ -83,2 +54,5 @@ * @param {number=} sourceEnd Source end, defaults to capacity.

sourceStart = sourceStart || 0;
var i, j, k, l;
if (target instanceof Buffer) {

@@ -89,51 +63,45 @@

sourceEnd = sourceEnd || source.length;
len = sourceEnd - sourceStart;
if (targetStart+len > target.length) {
throw(new Error("Buffer overrun"));
}
l = sourceEnd - sourceStart;
if (targetStart + l > target.length)
throw Error("illegal source range: target capacity overrun");
source.copy(target, targetStart, sourceStart, sourceEnd);
// ArrayBuffer|Uint8Array source -> Buffer target (the binding is about 45 times faster)
} else {
// ArrayBuffer source -> Buffer target (the binding is about 45 times faster)
} else if (source instanceof ArrayBuffer) {
sourceEnd = sourceEnd || source.byteLength;
len = sourceEnd - sourceStart;
if (targetStart+len > target.length) {
throw(new Error("Buffer overrun"));
}
for (i=sourceStart, j=targetStart,
k=source instanceof Uint8Array ? source : new Uint8Array(source);
i<sourceEnd; ++i, ++j) target[j] = k[i];
k = null;
}
l = sourceEnd - sourceStart;
if (targetStart + l > target.length)
throw Error("Buffer overrun");
for (i = sourceStart, j = targetStart, k = new Uint8Array(source); i < sourceEnd; ++i, ++j)
target[j] = k[i];
} else
throw Error("illegal source: not an ArrayBuffer or Buffer");
} else {
} else if (target instanceof ArrayBuffer) {
// Buffer source -> ArrayBuffer|Uint8Array target (the binding is about 45 times faster)
// Buffer source -> ArrayBuffer target (the binding is about 45 times faster)
if (source instanceof Buffer) {
sourceEnd = sourceEnd || source.length;
len = sourceEnd - sourceStart;
if (targetStart+len > target.byteLength) {
throw(new Error("Buffer overrun"));
}
for (i=sourceStart, j=targetStart,
k=target instanceof Uint8Array ? target : new Uint8Array(target);
i<sourceEnd; ++i, ++j) k[j] = source[i];
k = null;
l = sourceEnd - sourceStart;
if (targetStart + l > target.byteLength)
throw Error("buffer overrun");
for (i = sourceStart, j = targetStart, k = new Uint8Array(target); i < sourceEnd; ++i, ++j)
k[j] = source[i];
// ArrayBuffer|Uint8Array source -> ArrayBuffer|Uint8Array target (the binding is up to about 75 times faster)
} else {
// ArrayBuffer source -> ArrayBuffer target (the binding is up to about 75 times faster)
} else if (source instanceof ArrayBuffer) {
sourceEnd = sourceEnd || source.byteLength;
len = sourceEnd-sourceStart;
if (targetStart+len > target.byteLength) {
throw(new Error("Buffer overrun"));
}
for (i=sourceStart, j=targetStart,
k=target instanceof Uint8Array ? target : new Uint8Array(target),
l=source instanceof Uint8Array ? source : new Uint8Array(source);
i<sourceEnd; ++i, ++j) k[j] = l[i];
k = l = null;
}
l = sourceEnd - sourceStart;
if (targetStart + l > target.byteLength)
throw Error("buffer overrun");
for (i = sourceStart, j = targetStart, k = new Uint8Array(target), l = new Uint8Array(source); i < sourceEnd; ++i, ++j)
k[j] = l[i];
l = sourceEnd - sourceStart;
} else
throw Error("illegal source: not an ArrayBuffer or Buffer");
}
return len;
} else
throw Error("illegal target: not an ArrayBuffer or Buffer");
return l;
}

@@ -150,2 +118,2 @@

}
})(module);
})(module);

@@ -29,4 +29,4 @@ function fill(buf) {

[memcpy.binding, memcpy.native].forEach(function(memcpy) {
[Buffer, ArrayBuffer, Uint8Array].forEach(function(Type1) {
[Buffer, ArrayBuffer, Uint8Array].forEach(function(Type2) {
[Buffer, ArrayBuffer].forEach(function(Type1) {
[Buffer, ArrayBuffer].forEach(function(Type2) {
var b1 = new Type1(8),

@@ -56,3 +56,3 @@ b2 = new Type2(8);

[memcpy.binding, memcpy.native].forEach(function(memcpy) {
[Buffer, ArrayBuffer, Uint8Array].forEach(function(Type) {
[Buffer, ArrayBuffer].forEach(function(Type) {
var b = new Type(8);

@@ -80,4 +80,4 @@ test.log((memcpy === memcpy.binding ? "cc".cyan : "js".green)+" "+b.constructor.name);

[memcpy.binding, memcpy.native].forEach(function(memcpy) {
[Buffer, ArrayBuffer, Uint8Array].forEach(function(Type1) {
[Buffer, ArrayBuffer, Uint8Array].forEach(function(Type2) {
[Buffer, ArrayBuffer].forEach(function(Type1) {
[Buffer, ArrayBuffer].forEach(function(Type2) {
var b1 = new Type1(1024),

@@ -84,0 +84,0 @@ b2 = new Type2(1024);

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc