Craig Tiller 3d49461845 Merge github.com:grpc/grpc into mmm-mmm-mmm-mmm vor 11 Jahren
..
bin c880cad41c Added service_packager description to bin/README.md vor 11 Jahren
cli 08b0e667ec Added comments to service_packager script vor 11 Jahren
examples 11cfdf7109 Removed a default value I missed vor 11 Jahren
ext 54478f8562 Merge github.com:grpc/grpc into bye-bye-completion-queue-pie vor 11 Jahren
interop 02edd87df2 Merge pull request #1607 from murgatroid99/node_timeout_interop_test vor 11 Jahren
src bf6bd2303c Merge github.com:grpc/grpc into mmm-mmm-mmm-mmm vor 11 Jahren
test d17403c6d2 Correctly handle reading the final message and then sending status vor 11 Jahren
.gitignore c4f0ebe63b Prepare for the new batch call API. vor 11 Jahren
.jshintrc dca966d39c Fixed lint errors vor 11 Jahren
LICENSE be8d1dae5e Added important Node package information and LICENSE file for inclusion in Node package vor 11 Jahren
README.md 58584a35db Fixed typo in README change vor 11 Jahren
binding.gyp 425e46c56c Fix compilation of Node package conditionally on Mac: vor 11 Jahren
index.js 00943fcd32 Updated the getGoogleAuthDelegate function to use credential.getRequestMetadata vor 11 Jahren
package.json 19944f5b27 Merge pull request #1574 from murgatroid99/node_service_packager vor 11 Jahren

README.md

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

Installation

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

Tests

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 buildServer(serviceArray)

Takes an array of service objects and returns a constructor for a server that handles requests to all of those services.

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 fro creating credential objects for servers.