• Stars
    star
    128
  • Rank 281,044 (Top 6 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

httpbin like for gRPC

grpcbin

httpbin like for gRPC

CircleCI Docker Build Status Go Report Card GoDoc License

overview

Links

Run server locally

$ docker run -it --rm -p 9000:9000 -p 9001:9001 moul/grpcbin
2017/12/18 14:48:01 listening on :9000 (insecure)
2017/12/18 14:48:01 listening on :9001 (secure)

Example

See examples on a the dedicated repo: grpcbin-example


Golang

package main

import (
	"fmt"
	"log"

	"golang.org/x/net/context"
	"google.golang.org/grpc"

	pb "github.com/moul/pb/grpcbin/go-grpc"
)

func main() {
	// dial
	conn, _ := grpc.Dial("grpcb.in:9000", grpc.WithInsecure())
	defer conn.Close()

	// create client and context
	client := pb.NewGRPCBinClient(conn)
	ctx := context.Background()

	// call DummyUnary
	res, err := client.DummyUnary(ctx, &pb.DummyMessage{
		FString: "hello",
		FInt32:  42,
	})
	if err != nil {
		log.Fatalf("failed to call DummyUnary: %v", err)
	}
	fmt.Println(res)
}

Example with grpcc:

# fetch proto and install tool
$ wget -qN https://github.com/moul/pb/raw/master/grpcbin/grpcbin.proto
$ npm install -g grpcc

# interactive client
$ grpcc -i -p ./grpcbin.proto --address grpcb.in:9000
Connecting to grpcbin.GRPCBin on grpcb.in:9000. Available globals:

  client - the client connection to GRPCBin
    index (EmptyMessage, callback) returns IndexReply
    dummyUnary (DummyMessage, callback) returns DummyMessage
    dummyServerStream (DummyMessage, callback) returns DummyMessage
    dummyClientStream (DummyMessage, callback) returns DummyMessage
    dummyBidirectionalStreamStream (DummyMessage, callback) returns DummyMessage

  printReply - function to easily print a unary call reply (alias: pr)
  streamReply - function to easily print stream call replies (alias: sr)
  createMetadata - convert JS objects into grpc metadata instances (alias: cm)

[email protected]:9000> ^C

# call index endpoint
$ grpcc -i -p ./grpcbin.proto --address grpcb.in:9000 --eval 'client.index({}, printReply)'
{
  "description": "gRPC testing server",
  "endpoints": [
    {
      "path": "index",
      "description": "This endpoint."
    },
    {
      "path": "dummyUnary",
      "description": "Unary endpoint that replies a received DummyMessage."
    },
    [...]
  ]
}

# call dummyUnary with arguments
$ grpcc -i -p ./grpcbin.proto --address grpcb.in:9000 --eval 'client.dummyUnary({f_string:"hello",f_int32:42}, printReply)'
{
  "f_string": "hello",
  "f_strings": [],
  "f_int32": 42,
  "f_int32s": [],
  "f_enum": "ENUM_0",
  "f_enums": [],
  "f_sub": null,
  "f_subs": [],
  "f_bool": false,
  "f_bools": [],
  "f_int64": "0",
  "f_int64s": [],
  "f_bytes": {
    "type": "Buffer",
    "data": []
  },
  "f_bytess": [],
  "f_float": 0,
  "f_floats": []
}

More Repositories

1

assh

💻 make your ssh client smarter
Go
2,868
star
2

awesome-ssh

💻 A curated list of SSH resources.
2,245
star
3

sshportal

🎩 simple, fun and transparent SSH (and telnet) bastion server
Go
1,787
star
4

quicssh

SSH over QUIC
Go
796
star
5

http2curl

📐 Convert Golang's http.Request to CURL command line
Makefile
704
star
6

node-gitlab

DEPRECATED, see https://github.com/node-gitlab/node-gitlab
JavaScript
474
star
7

protoc-gen-gotemplate

📂 generic protocol generator based on golang's text/template (grpc/protobuf)
Go
438
star
8

gotty-client

🔧 terminal client for GoTTY
Go
296
star
9

golang-repo-template

🌀 A template for creating new Golang + Docker + Canonical Domain + Badges + Dependabot + Renovate + GolangCI-lint + Goreleaser + GitHub Actions + Gitpod + Depaware + Git Hooks + ...
Go
274
star
10

zapgorm2

⚡ zap logging driver for gorm v2
Go
246
star
11

alfred-workflow-gauth

🔑 TOTP - Google Authenticator Workflow for Alfred2 (Two-Factor authentication)
Python
239
star
12

ssh2docker

🐳 standalone SSH server that connects you to your Docker containers
Go
183
star
13

docker-diff

🐳 Compare Docker images
Shell
154
star
14

depviz

👓 dependency visualizer for GitHub & GitLab (a.k.a., "auto-roadmap")
Go
143
star
15

travis-docker

🐳👨 Docker in Travis-CI
Shell
108
star
16

docker-icecast

📻 Icecast 2 in Dockerfile (Docker container, compatible with liquidsoap)
XSLT
103
star
17

iocat

🔧 Socket.io & WebSocket netcat-like utility
CoffeeScript
83
star
18

number-to-words

convert number into words (english, french, italian, roman, spanish, portuguese, belgium, dutch, swedish, polish, russian, iranian, roman, aegean)
Go
73
star
19

awesome-ascii-art

A curated list of ascii-art resources
49
star
20

docker-kernel-builder

🐧 Kernel build environment in Docker
48
star
21

docker-readthedocs

🐳 ReadTheDocs (RTD, read the docs) in docker
Shell
43
star
22

kafka-gateway

🌊 Kafka Gateway (gRPC/protobuf + http/json)
Go
40
star
23

zapgorm

⚡ Zap logger for GORM (support v1 and v2)
Go
38
star
24

retry

🐚 retry shell commands
Makefile
26
star
25

dockerpatch

🐳 Read, write, manipulate, convert & apply filters to Dockerfiles
Go
24
star
26

chizap

⚡️ simple zap logging middleware for go-chi
Go
22
star
27

radioman

🎵 Web radio solution using Liquidsoap and Icecast
Go
21
star
28

dockerself

🐳 runtime self dockerizer
Go
21
star
29

anonuuid

🔧 Anonymize UUIDs outputs (written in Golang)
Go
20
star
30

node-scaleway

🔧 Online Labs API client in Node.js and browser javascript
JavaScript
19
star
31

pb

C#
18
star
32

scaleway-ipxe

💃 custom IPXE config on Scaleway servers
17
star
33

zapfilter

⚡💊 advanced filtering for uber's zap logger
Go
15
star
34

gno-basics

Gnolang smart contract examples
Go
15
star
35

sapin

🎄 draw a beautiful christmas tree in ascii using Golang
Go
14
star
36

totp-keychain

🔒 TOTP cli backed by the OS X keychain
Go
14
star
37

cleanarch

🚿 the clean architecture, optimised for Golang
Go
14
star
38

grpcbin-example

Go
14
star
39

xbmc-remote-keyboard

📹 Send local keyboard presses to a remote XBMC/Kodi through JSON RPC api (javascript, coffee, ncurses)
CoffeeScript
14
star
40

captcha

🦾 a "Completely Automated Public Turing test to tell Computers and Humans Apart" CLI
Go
13
star
41

golang-boilerplate

🔧 Golang project bootstrap
Makefile
13
star
42

scaleway-cli-node

💻 Interract with Scaleway from command line (Mimics Docker CLI)
JavaScript
12
star
43

acl

👮 ACL micro-service (gRPC/protobuf + http/json)
Go
12
star
44

progress

🏗 progress, steps, completion patterns for golang
Go
12
star
45

node-icecast-admin

📻 Icecast admin nodejs library - used for statistics
JavaScript
12
star
46

stegaporn

8========D The art of hiding sensitive data in porn videos
Shell
11
star
47

docker-liquidsoap

📻 Liquidsoap in Docker - compatible with icecast
Dockerfile
11
star
48

pipotron

generic (& funny?) text generator
Go
11
star
49

bot

🤖 my personal bot / virtual assistant (GitHub, Discord, HTTP+gRPC API, Twitter, Coffee, etc)
Go
11
star
50

translator

🎤 Translator micro-service
Go
10
star
51

image-builder

⚠️ ARCHIVED ⚠️
10
star
52

node-leboncoin

🔧 leboncoin.fr nodejs library
CoffeeScript
10
star
53

node-netsoul

Netsoul client - Epitech, Epita, Ionis
JavaScript
9
star
54

internet-status

📶 Check internet connectivity
Go
9
star
55

totp-cli

🔒 TOTP CLI
Go
8
star
56

docker-coreos-img

🐳 CoreOS image in a docker image
Makefile
8
star
57

generate-fake-data

🧬 CLI to generate fake data for testing
Go
8
star
58

euler

🎲 Project Euler in Golang
Go
8
star
59

shikaku

🀄 Shikaku generator
Go
8
star
60

git-ci

♐ git subcommand to interract with CI/CD from command line
Go
8
star
61

docker-binfmt-register

🐳 Register Binfmt-support in Docker, works with boot2docker to run armhf images
8
star
62

nixpkgs

🧔 personal nix config #nixos
Nix
8
star
63

graphman

graph manipulation library in golang (pert, cpm, dijkstra, ...)
Go
8
star
64

3d-stereo-html5

3d anaglyph / stereoscopic html5 canvas viewer
8
star
65

libmusic

Manipulate Music in Golang
Go
8
star
66

converter

✂️ multiformat data conversion
Go
7
star
67

mbin

:neckbeard: plenty of more-or-less useful scripts I use(d)
Python
7
star
68

irccloud-desktop-app

💻 IRC Cloud Desktop Application (irccloud.com)
CSS
7
star
69

cryptoguess

Automatically detect and parse cryptography keys
Go
7
star
70

ascii2svg

Go
7
star
71

conf-du-loose

💀🔫 Hacked
Shell
7
star
72

as-a-service

👨 Me, as a service
Go
7
star
73

pkgman

📱 Package manipulation tool & library (ipa, etc)
Go
7
star
74

drunken-bishop

Drunken Bishop algorithm for Ascii-Art representation of Fingerprint
Makefile
7
star
75

image-tools-v1

⚠️ Archives ⚠️ Image Tools - Scripts to build images on Online Labs
7
star
76

hacker-typing

☠️🏴‍☠️🦜 impress your friends :)
Makefile
7
star
77

port-docker-image

🐳 Script to port Docker image on armhf architecture
Shell
7
star
78

u

🔬 Go common utility functions
Go
7
star
79

ansicat

display ANSI files in terminal
Go
6
star
80

godev

A collection of helpers I use during Golang development
Makefile
6
star
81

amiga-ball

AMIGA!!!
HTML
6
star
82

go-dl-extract

🐳 "curl | tar xf" as a static binary - ADD compressed tarball url on Docker scratch
Go
6
star
83

docker-drupal

🐳 run Drupal in Docker
Shell
6
star
84

runcache

🔧 shell command caching
Shell
6
star
85

node-slumber

🔧 Port of Python's slumber library -- (RESTful API library)
CoffeeScript
6
star
86

tapas-icecast-analytics

Icecast Web Analytics using Tapas (nodejs)
CoffeeScript
6
star
87

testman

😎 `go test` wrapper for advanced testing workflows in Go
Go
6
star
88

banner

lightweight Golang ascii-art text generator
Go
6
star
89

awesome

awesome
Go
6
star
90

node-alfred-workflow

👨 Create Alfred Workflow with NodeJS (wrapper)
Python
6
star
91

alfred-workflow-chromecast

👨 Chromecast Workflow for Alfred2
Python
6
star
92

docker-plan9port

🐳 plan9port in Docker
Dockerfile
6
star
93

prefix

🔴 prepend numbers, stats, dates, durations to streams
Go
6
star
94

term.js-cli

🔧 A command line interface client for term.js / tty.js
CoffeeScript
6
star
95

funcenter

function-level middlewares in golang
Go
6
star
96

image-service-travis

💽 WIP Official Travis-CI worker image on Online Labs
Makefile
6
star
97

zapring

💍 In-memory RING buffer backend for the Zap logger
Go
6
star
98

guilhunize

Speak like Guilhem
Makefile
6
star
99

zapconfig

⚡ Opinionated presets for Uber's Zap logging go library
Go
5
star
100

wiki

✌️ life wiki
5
star