aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/node
diff options
context:
space:
mode:
authorGravatar murgatroid99 <michael.lumish@gmail.com>2015-02-05 17:50:07 -0800
committerGravatar murgatroid99 <michael.lumish@gmail.com>2015-02-05 17:50:07 -0800
commit2c810a4c4b40aaadabd9e4be8f7faf3480d024fa (patch)
tree943b8ee69deb7125e8410db8309e1c62e1c092c9 /src/node
parenta9b99c93e3ac7557eb0ad52c83fde013518eee92 (diff)
parente83fe4c9035f195717d6db0f0aad1e8f5ac44999 (diff)
Merge branch 'master' into node_new_core_api
Diffstat (limited to 'src/node')
-rw-r--r--src/node/README.md72
1 files changed, 65 insertions, 7 deletions
diff --git a/src/node/README.md b/src/node/README.md
index 55329d8cb2..c342b7ca57 100644
--- a/src/node/README.md
+++ b/src/node/README.md
@@ -1,12 +1,70 @@
-# Node.js GRPC extension
+# Node.js gRPC Library
-The package is built with
+## Installation
- node-gyp configure
- node-gyp build
+First, clone this repository (NPM package coming soon). Then follow the instructions in the `INSTALL` file in the root of the repository to install the C core library that this package depends on.
-or, for brevity
+Then, simply run `npm install` in or referencing this directory.
- node-gyp configure build
+## Tests
-The tests can be run with `npm test` on a dev install. \ No newline at end of file
+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
+
+```javascript
+function load(filename)
+```
+
+Takes a filename of a [Protocol Buffer](https://developers.google.com/protocol-buffers/) 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
+
+
+```javascript
+function loadObject(reflectionObject)
+```
+
+Returns the same structure that `load` returns, but takes a reflection object from `ProtoBuf.js` instead of a file name.
+
+```javascript
+function buildServer(serviceArray)
+```
+
+Takes an array of service objects and returns a constructor for a server that handles requests to all of those services.
+
+
+```javascript
+status
+```
+
+An object mapping status names to status code numbers.
+
+
+```javascript
+callError
+```
+
+An object mapping call error names to codes. This is primarily useful for tracking down certain kinds of internal errors.
+
+
+```javascript
+Credentials
+```
+
+An object with factory methods for creating credential objects for clients.
+
+
+```javascript
+ServerCredentials
+```
+
+An object with factory methods fro creating credential objects for servers.