aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/node
diff options
context:
space:
mode:
Diffstat (limited to 'src/node')
-rw-r--r--src/node/README.md26
-rw-r--r--src/node/cli/service_packager.js2
-rw-r--r--src/node/examples/perf_test.js2
-rw-r--r--src/node/examples/route_guide_client.js2
-rw-r--r--src/node/examples/route_guide_server.js2
-rw-r--r--src/node/examples/stock_server.js2
-rw-r--r--src/node/ext/byte_buffer.cc6
-rw-r--r--src/node/index.js2
-rw-r--r--src/node/interop/interop_client.js2
-rw-r--r--src/node/interop/interop_server.js2
-rw-r--r--src/node/package.json5
-rw-r--r--src/node/src/client.js2
-rw-r--r--src/node/src/common.js11
-rw-r--r--src/node/src/server.js4
-rw-r--r--src/node/test/surface_test.js6
15 files changed, 39 insertions, 37 deletions
diff --git a/src/node/README.md b/src/node/README.md
index 6e4934151e..2f4c49096d 100644
--- a/src/node/README.md
+++ b/src/node/README.md
@@ -1,16 +1,22 @@
# Node.js gRPC Library
## Status
-
Alpha : Ready for early adopters
-## Prerequisites
-
-This requires `node` to be installed. If you instead have the `nodejs` executable on Debian, you should install the [`nodejs-legacy`](https://packages.debian.org/sid/nodejs-legacy) package.
+## PREREQUISITES
+- `node`: This requires `node` to be installed. If you instead have the `nodejs` executable on Debian, you should install the [`nodejs-legacy`](https://packages.debian.org/sid/nodejs-legacy) package.
+- [homebrew][] on Mac OS X, [linuxbrew][] on Linux. These simplify the installation of the gRPC C core.
-## Installation
+## INSTALLATION
+On Mac OS X, install [homebrew][]. On Linux, install [linuxbrew][].
+Run the following command to install gRPC Node.js.
+```sh
+$ curl -fsSL https://goo.gl/getgrpc | bash -s nodejs
+```
+This will download and run the [gRPC install script][], then install the latest version of gRPC Nodejs npm package.
- 1. Clone [the grpc repository](https://github.com/grpc/grpc).
+## BUILD FROM SOURCE
+ 1. Clone [the grpc Git Repository](https://github.com/grpc/grpc).
2. Follow the instructions in the `INSTALL` file in the root of that repository to install the C core library that this package depends on.
3. Run `npm install`.
@@ -20,12 +26,10 @@ If you install the gRPC C core library in a custom location, then you need to se
CXXFLAGS=-I<custom location>/include LDFLAGS=-L<custom location>/lib npm install [grpc]
```
-## Tests
-
+## TESTING
To run the test suite, simply run `npm test` in the install location.
## API
-
This library internally uses [ProtoBuf.js](https://github.com/dcodeIO/ProtoBuf.js), and some structures it exports match those exported by that library
If you require this module, you will get an object with the following members
@@ -82,3 +86,7 @@ ServerCredentials
```
An object with factory methods fro creating credential objects for servers.
+
+[homebrew]:http://brew.sh
+[linuxbrew]:https://github.com/Homebrew/linuxbrew#installation
+[gRPC install script]:https://raw.githubusercontent.com/grpc/homebrew-grpc/master/scripts/install
diff --git a/src/node/cli/service_packager.js b/src/node/cli/service_packager.js
index f29180b252..c92c450a01 100644
--- a/src/node/cli/service_packager.js
+++ b/src/node/cli/service_packager.js
@@ -36,7 +36,7 @@
var fs = require('fs');
var path = require('path');
-var _ = require('underscore');
+var _ = require('lodash');
var async = require('async');
var pbjs = require('protobufjs/cli/pbjs');
var parseArgs = require('minimist');
diff --git a/src/node/examples/perf_test.js b/src/node/examples/perf_test.js
index 31083e0987..da919eced5 100644
--- a/src/node/examples/perf_test.js
+++ b/src/node/examples/perf_test.js
@@ -35,7 +35,7 @@
var grpc = require('..');
var testProto = grpc.load(__dirname + '/../interop/test.proto').grpc.testing;
-var _ = require('underscore');
+var _ = require('lodash');
var interop_server = require('../interop/interop_server.js');
function runTest(iterations, callback) {
diff --git a/src/node/examples/route_guide_client.js b/src/node/examples/route_guide_client.js
index 0b3e9c5819..8cd532fef1 100644
--- a/src/node/examples/route_guide_client.js
+++ b/src/node/examples/route_guide_client.js
@@ -37,7 +37,7 @@ var async = require('async');
var fs = require('fs');
var parseArgs = require('minimist');
var path = require('path');
-var _ = require('underscore');
+var _ = require('lodash');
var grpc = require('..');
var examples = grpc.load(__dirname + '/route_guide.proto').examples;
var client = new examples.RouteGuide('localhost:50051');
diff --git a/src/node/examples/route_guide_server.js b/src/node/examples/route_guide_server.js
index 9555368422..c777eab7bc 100644
--- a/src/node/examples/route_guide_server.js
+++ b/src/node/examples/route_guide_server.js
@@ -36,7 +36,7 @@
var fs = require('fs');
var parseArgs = require('minimist');
var path = require('path');
-var _ = require('underscore');
+var _ = require('lodash');
var grpc = require('..');
var examples = grpc.load(__dirname + '/route_guide.proto').examples;
diff --git a/src/node/examples/stock_server.js b/src/node/examples/stock_server.js
index 8c22af147e..caaf9f99ba 100644
--- a/src/node/examples/stock_server.js
+++ b/src/node/examples/stock_server.js
@@ -33,7 +33,7 @@
'use strict';
-var _ = require('underscore');
+var _ = require('lodash');
var grpc = require('..');
var examples = grpc.load(__dirname + '/stock.proto').examples;
diff --git a/src/node/ext/byte_buffer.cc b/src/node/ext/byte_buffer.cc
index 01bd92ea52..2c84099069 100644
--- a/src/node/ext/byte_buffer.cc
+++ b/src/node/ext/byte_buffer.cc
@@ -36,6 +36,7 @@
#include <node.h>
#include <nan.h>
#include "grpc/grpc.h"
+#include "grpc/byte_buffer_reader.h"
#include "grpc/support/slice.h"
#include "byte_buffer.h"
@@ -69,9 +70,10 @@ Handle<Value> ByteBufferToBuffer(grpc_byte_buffer *buffer) {
size_t length = grpc_byte_buffer_length(buffer);
char *result = reinterpret_cast<char *>(calloc(length, sizeof(char)));
size_t offset = 0;
- grpc_byte_buffer_reader *reader = grpc_byte_buffer_reader_create(buffer);
+ grpc_byte_buffer_reader reader;
+ grpc_byte_buffer_reader_init(&reader, buffer);
gpr_slice next;
- while (grpc_byte_buffer_reader_next(reader, &next) != 0) {
+ while (grpc_byte_buffer_reader_next(&reader, &next) != 0) {
memcpy(result + offset, GPR_SLICE_START_PTR(next), GPR_SLICE_LENGTH(next));
offset += GPR_SLICE_LENGTH(next);
}
diff --git a/src/node/index.js b/src/node/index.js
index c09e416c6e..b6a4e2d0ee 100644
--- a/src/node/index.js
+++ b/src/node/index.js
@@ -33,7 +33,7 @@
'use strict';
-var _ = require('underscore');
+var _ = require('lodash');
var ProtoBuf = require('protobufjs');
diff --git a/src/node/interop/interop_client.js b/src/node/interop/interop_client.js
index 455055d9f3..b61b0b63c0 100644
--- a/src/node/interop/interop_client.js
+++ b/src/node/interop/interop_client.js
@@ -35,7 +35,7 @@
var fs = require('fs');
var path = require('path');
-var _ = require('underscore');
+var _ = require('lodash');
var grpc = require('..');
var testProto = grpc.load(__dirname + '/test.proto').grpc.testing;
var GoogleAuth = require('google-auth-library');
diff --git a/src/node/interop/interop_server.js b/src/node/interop/interop_server.js
index dad59c1347..0baa78a094 100644
--- a/src/node/interop/interop_server.js
+++ b/src/node/interop/interop_server.js
@@ -35,7 +35,7 @@
var fs = require('fs');
var path = require('path');
-var _ = require('underscore');
+var _ = require('lodash');
var grpc = require('..');
var testProto = grpc.load(__dirname + '/test.proto').grpc.testing;
var Server = grpc.buildServer([testProto.TestService.service]);
diff --git a/src/node/package.json b/src/node/package.json
index d7e9af07bd..3ea2c065e7 100644
--- a/src/node/package.json
+++ b/src/node/package.json
@@ -25,10 +25,9 @@
},
"dependencies": {
"bindings": "^1.2.0",
+ "lodash": "^3.9.3",
"nan": "^1.5.0",
- "protobufjs": "dcodeIO/ProtoBuf.js",
- "underscore": "^1.6.0",
- "underscore.string": "^3.0.0"
+ "protobufjs": "dcodeIO/ProtoBuf.js"
},
"devDependencies": {
"async": "^0.9.0",
diff --git a/src/node/src/client.js b/src/node/src/client.js
index 65339406b2..b7bad949d4 100644
--- a/src/node/src/client.js
+++ b/src/node/src/client.js
@@ -33,7 +33,7 @@
'use strict';
-var _ = require('underscore');
+var _ = require('lodash');
var grpc = require('bindings')('grpc.node');
diff --git a/src/node/src/common.js b/src/node/src/common.js
index 98917c0fdd..7b543353eb 100644
--- a/src/node/src/common.js
+++ b/src/node/src/common.js
@@ -33,10 +33,7 @@
'use strict';
-var _ = require('underscore');
-
-var capitalize = require('underscore.string/capitalize');
-var decapitalize = require('underscore.string/decapitalize');
+var _ = require('lodash');
/**
* Get a function that deserializes a specific type of protobuf.
@@ -81,7 +78,7 @@ function fullyQualifiedName(value) {
}
var name = value.name;
if (value.className === 'Service.RPCMethod') {
- name = capitalize(name);
+ name = _.capitalize(name);
}
if (value.hasOwnProperty('parent')) {
var parent_name = fullyQualifiedName(value.parent);
@@ -118,8 +115,8 @@ function wrapIgnoreNull(func) {
function getProtobufServiceAttrs(service) {
var prefix = '/' + fullyQualifiedName(service) + '/';
return _.object(_.map(service.children, function(method) {
- return [decapitalize(method.name), {
- path: prefix + capitalize(method.name),
+ return [_.camelCase(method.name), {
+ path: prefix + _.capitalize(method.name),
requestStream: method.requestStream,
responseStream: method.responseStream,
requestSerialize: serializeCls(method.resolvedRequestType.build()),
diff --git a/src/node/src/server.js b/src/node/src/server.js
index 079495afd4..c6cf9e7eb8 100644
--- a/src/node/src/server.js
+++ b/src/node/src/server.js
@@ -33,7 +33,7 @@
'use strict';
-var _ = require('underscore');
+var _ = require('lodash');
var grpc = require('bindings')('grpc.node');
@@ -48,8 +48,6 @@ var util = require('util');
var EventEmitter = require('events').EventEmitter;
-var common = require('./common.js');
-
/**
* Handle an error on a call by sending it as a status
* @param {grpc.Call} call The call to send the error on
diff --git a/src/node/test/surface_test.js b/src/node/test/surface_test.js
index b390f8b2a5..8d1f99aaee 100644
--- a/src/node/test/surface_test.js
+++ b/src/node/test/surface_test.js
@@ -45,9 +45,7 @@ var math_proto = ProtoBuf.loadProtoFile(__dirname + '/../examples/math.proto');
var mathService = math_proto.lookup('math.Math');
-var capitalize = require('underscore.string/capitalize');
-
-var _ = require('underscore');
+var _ = require('lodash');
describe('File loader', function() {
it('Should load a proto file by default', function() {
@@ -159,7 +157,7 @@ describe('Generic client and server', function() {
server = new Server({
string: {
capitalize: function(call, callback) {
- callback(null, capitalize(call.request));
+ callback(null, _.capitalize(call.request));
}
}
});