Nihilist Postmodern Mistake
Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

grpc-pool

1.4.0 • Public • Published

grpc-pool Build Status Maintainability

A light-weight efficient implementation for gRPC connection pool.
For detailed documentation please visit this wiki

What's new in 1.4.0 ?

  • Support for statically generated code(protobuf) files

Example

Naming Rules in Proto Files

Names of the RPC function must Match /^_[A-Z]/, meaning it must start with an _ followed by an Upper-Case letter
Sample .proto file:

syntax = "proto3";
 
package Hello;
 
service Greeting {
    rpc NotAvailable(Request) returns (Reply) {};
    rpc _Hi(Request) returns (Reply) {};
}
 
message Request {
    string msg = 1;
}
 
message Reply {
    string resp = 1;
}

** Note that the RPC NotAvailable will not be exposed by this library

const PROTO_FILE_PATH = path.join(__dirname, 'hello_grpc_pb');
const client = new GRPCClient(PROTO_FILE_PATH, {
    maxConnections : 5,
    packageName    : 'Hello',
    serviceName    : 'Greeting',
    url            : 'localhost:50001',
    prefix         : 'RPC'
});
 
const { RPC_Hi } = client;
 
const response = await RPC_Hi({msg: 'Hey Bot!'})

Usage with statically generated code (protobuf)

Note: You must use the same naming convention mentioned for the above protobuf file

const PROTO_FILE_PATH = path.join(__dirname, 'hello_grpc_pb');
const client = new GRPCClient(PROTO_FILE_PATH, {
    maxConnections : 2,
    rpcPrefix      : 'RPC',
    serviceName    : 'Greeting',
    url            : 'localhost:50001',
    staticFile     : true,
});
 
const { RPC_Hi } = client;
 
const request = new messages.Request();
request.setMsg('Hi');
 
const res = await RPC_Hi(request);
expect(res.getResp()).to.be.eql('Hello');

Notice the usage of staticFile flag. Also notice that packageName is not needed when static file is being used.

Installation

npm i lib -S

ES-Lint

npm run lint

Babel

npm run build

Mocha & Chai (Testing)

npm test

Coverage Report

npm run coverage

Contributions

This is open-source, which makes it obvious for any PRs, but I would request you to add necessary test-cases for the same

Install

npm i grpc-pool

DownloadsWeekly Downloads

3

Version

1.4.0

License

MIT

Unpacked Size

16.3 kB

Total Files

5

Last publish

Collaborators

  • avatar