Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gusaul/grpcox

Like Postman, but for gRPC: web based GUI client for gRPC Development Testing
https://github.com/gusaul/grpcox

grpc grpc-go testing-tools

Last synced: about 2 months ago
JSON representation

Like Postman, but for gRPC: web based GUI client for gRPC Development Testing

Awesome Lists containing this project

README

        

# gRPCox
[![Go Report Card](https://goreportcard.com/badge/github.com/gusaul/grpcox)](https://goreportcard.com/report/github.com/gusaul/grpcox)

turn [gRPCurl](https://github.com/fullstorydev/grpcurl) into web based UI, extremely easy to use

## Features
- Recognize and provide list of services and methods inside it as an options.
- Automatically recognize schema input and compose it into JSON based. (ensure your gRPC server supports [server reflection](https://github.com/grpc/grpc/blob/master/src/proto/grpc/reflection/v1alpha/reflection.proto)). Examples for how to set up server reflection can be found [here](https://github.com/grpc/grpc/blob/master/doc/server-reflection.md#known-implementations).
- Save established connection, and reuse it for next invoke/request (also can close/restart connection)

## Installation
### Docker
```shell
docker pull gusaul/grpcox:latest
```
then run
```shell
docker run -p 6969:6969 -v {ABSOLUTE_PATH_TO_LOG}/log:/log -d gusaul/grpcox
```

### Docker Compose
from terminal, move to grpcox directory, then run command
```shell
docker-compose up
```
if you're using docker and want to connect gRPC on your local machine, then use

`host.docker.internal:` instead of `localhost`

### Golang
if you have golang installed on your local machine, just run command
```shell
make start
```
from grpcox directory

configure app preferences by editing `config.env` file

| var | usage | type | unit |
|-----------------|---------------------------------------------|--------|--------|
| MAX_LIFE_CONN | maximum idle time connection before closed | number | minute |
| TICK_CLOSE_CONN | ticker interval to sweep expired connection | number | second |
| BIND_ADDR | ip:port to bind service | string | |

set value `0 (zero)` to disable auto close idle connection.

## Demo
![gRPCox Demo](https://raw.githubusercontent.com/gusaul/grpcox/master/index/img/demogrpcox.gif)