gRPC for Node.js
Go to file
murgatroid99 46d1b4143c Eliminated some redundant checks in the Node interop client 2015-07-29 16:33:52 -07:00
bin Added service_packager description to bin/README.md 2015-05-13 11:08:42 -07:00
cli Replaced underscore and underscore.string modules with lodash 2015-06-03 10:59:02 -07:00
examples Changed to newer, simpler server construction interface 2015-07-15 17:01:49 -07:00
ext Merge branch 'master' of github.com:grpc/grpc into ssl_force_client_auth 2015-07-27 16:16:29 -07:00
health_check Updated health check service with new changes 2015-07-08 15:24:42 -07:00
interop Eliminated some redundant checks in the Node interop client 2015-07-29 16:33:52 -07:00
src Revert "Ensure that client generated methods don't conflict with other properties" 2015-07-29 10:11:07 -07:00
test Revert "Ensure that client generated methods don't conflict with other properties" 2015-07-29 10:11:07 -07:00
.gitignore Prepare for the new batch call API. 2015-02-02 10:16:30 -08:00
.jshintrc Fixed lint errors 2015-02-19 14:37:18 -08:00
LICENSE Added important Node package information and LICENSE file for inclusion in Node package 2015-02-25 16:29:54 -08:00
README.md Update README.md 2015-07-22 16:40:52 -07:00
binding.gyp Merge pull request #2310 from murgatroid99/node_pkg_config 2015-07-08 10:39:06 -07:00
index.js Rearranged some code for jsdoc, added some documentation 2015-07-27 11:23:13 -07:00
jsdoc_conf.json Added documentation command and settings to Node package 2015-07-24 14:23:44 -07:00
package.json Added documentation command and settings to Node package 2015-07-24 14:23:44 -07:00

README.md

Node.js gRPC Library

Status

Alpha : Ready for early adopters

PREREQUISITES

  • node: This requires node to be installed. If you instead have the nodejs executable on Debian, you should install the nodejs-legacy package.
  • homebrew on Mac OS X, linuxbrew on Linux. These simplify the installation of the gRPC C core.

INSTALLATION

On Mac OS X, install homebrew. On Linux, install linuxbrew. Run the following command to install gRPC Node.js.

$ 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.

BUILD FROM SOURCE

  1. Clone the grpc Git Repository.
  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.

If you install the gRPC C core library in a custom location, then you need to set some environment variables to install this library. The command will look like this:

CXXFLAGS=-I<custom location>/include LDFLAGS=-L<custom location>/lib npm install [grpc]

TESTING

To run the test suite, simply run npm test in the install location.

API

This library internally uses 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

function load(filename)

Takes a filename of a Protocol Buffer file, and returns an object representing the structure of the protocol buffer in the following way:

  • Namespaces become maps from the names of their direct members to those member objects
  • Service definitions become client constructors for clients for that service. They also have a service member that can be used for constructing servers.
  • Message definitions become Message constructors like those that ProtoBuf.js would create
  • Enum definitions become Enum objects like those that ProtoBuf.js would create
  • Anything else becomes the relevant reflection object that ProtoBuf.js would create
function loadObject(reflectionObject)

Returns the same structure that load returns, but takes a reflection object from ProtoBuf.js instead of a file name.

function Server([serverOpions])

Constructs a server to which service/implementation pairs can be added.

status

An object mapping status names to status code numbers.

callError

An object mapping call error names to codes. This is primarily useful for tracking down certain kinds of internal errors.

Credentials

An object with factory methods for creating credential objects for clients.

ServerCredentials

An object with factory methods for creating credential objects for servers.