grpc-man

A client to call gRPC server methods on the fly. 一个 gRPC 客户端,可以灵活地调用 gRPC 服务。

Usage no npm install needed!

<script type="module">
  import grpcMan from 'https://cdn.skypack.dev/grpc-man';
</script>

README

grpc-man

中文简体

A client to call gRPC server methods on the fly.

The name is inspired by post-man.

996.icu LICENSE Build Status NPM version npm download Dependencies Status semantic-release Git commit with emojis! FOSSA Status

Quality gate

Usage

This package provides a lightweight gRPC client implementation, which can be used to verify your gRPC service is working as expected or not.

I am using it heavily for testing code, and recommend you to use it too.

Installation

# Globally
npm install -g grpc-man

# Only in project and for testing purpose
npm install --save-dev grpc-man

Use in javascript project

import GrpcClient from 'grpc-man/lib/Client';

async function main() {
  const client = new GrpcClient('<yourhost>:<your port>', __dirname + 'your.proto');

  await client.grpc.youpackage.YourService.yourMethod(arg);
}

Use in testing

If your project provides services through gRPC, then you can use grpc-man to do the automatic testing against your gRPC services.

with mocha

The proto file used for testing is here

import assert = require('assert');
import GrpcClient from 'grpc-man/lib/Client';

describe('grpc', () => {
  it('greets', async () => {
    const client = new Client('0.0.0.0:8890', __dirname + '/./proto/helloworld.proto');

    const res = await client.grpc.helloworld.Greeter.sayHello({ name: 'name' });
    assert.deepEqual(res, { message: 'Hello name' });
  });
});

If you are using jest testing framework, then you can refer to the testing code for this package itself

Use in command line

grpc-man <endpoint> <protoFilePath>

# for example:
grpc-man localhost:8080 /path/to/proto_file

Run it locally

npm start <endpoint> <protoFilePath>

# for example:
npm start localhost:8080 /path/to/proto_file

Run client in development mode

npm run client

License

FOSSA Status