David G. Quintas e5515d476d Merge pull request #3372 from grpc/release-0_11 před 10 roky
..
bin c880cad41c Added service_packager description to bin/README.md před 10 roky
cli 55739d5c4a Replaced underscore and underscore.string modules with lodash před 10 roky
examples c7b488d0d2 Remove redundant Node route guide examples před 10 roky
ext 62420a29b7 Merged from release_0.11 před 10 roky
health_check 3cb49e054b Update node health check service před 10 roky
interop 3ba30e16ad Drop issue 527 TODOs for interop specification před 10 roky
src a59ee9a307 Fixed a couple of incorrect "this" references in Node library před 10 roky
test 76ba1ff65a Switched to using static functions for accessing Client properties před 10 roky
.gitignore c4f0ebe63b Prepare for the new batch call API. před 11 roky
.jshintrc dca966d39c Fixed lint errors před 11 roky
LICENSE be8d1dae5e Added important Node package information and LICENSE file for inclusion in Node package před 11 roky
README.md 581846ba9b Update debian install instructions, jessie-backports před 10 roky
binding.gyp 2b09783f8a Update to nan 2.0 před 10 roky
index.js 76ba1ff65a Switched to using static functions for accessing Client properties před 10 roky
jsdoc_conf.json 46f2860b5d Added documentation command and settings to Node package před 10 roky
package.json 89a17fe41b Merge pull request #3365 from murgatroid99/node_nan_2.0 před 10 roky

README.md

Node.js gRPC Library

Status

Beta

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. These simplify the installation of the gRPC C core.

INSTALLATION

Linux (Debian):

Add Debian jessie-backports to your sources.list file. Example:

echo "deb http://http.debian.net/debian jessie-backports main" | \
sudo tee -a /etc/apt/sources.list

Install the gRPC Debian package

sudo apt-get update
sudo apt-get install libgrpc-dev

Install the gRPC NPM package

npm install grpc

Mac OS X

Install homebrew. 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.