Skip to content

mresti/grpc-workshop

Repository files navigation

grpc-golang-workshop

In this workshop, you will learn using Golang or Python how to build a gRPC server, a gRPC client and how to deploy a gRPC server using docker.

Based on the official gRPC workshop - https://codelabs.developers.google.com/codelabs/cloud-grpc/index.html - Where I extended to include deploying gRPC server using docker and learn to implement a gRPC client/gRPC server using Golang and Python.

Installing the Training Material

    $ mkdir -p $GOPATH/src/github.com/mresti && cd $_
    $ git clone https://github.com/mresti/grpc-workshop.git

Go Get The Training Material

    $ go get github.com/mresti/grpc-workshop

Versions of dependencies

  • gRPC version 1.16.0
  • golang version 1.10.3 or above
  • python version 3.6 or above

Requirements

Dependencies golang

  • Install protoc plugin for golang:
    $ go get -u google.golang.org/grpc
    $ go get -u github.com/golang/protobuf/proto 
    $ go get -u github.com/golang/protobuf/protoc-gen-go

Dpendencies python

  • Create a virtualenv:
    $ pip install virtualenv
    $ virtualenv venv
    $ source venv/bin/activate   
  • Install protoc plugin for python:
    (venv) $ pip install grpcio
    (venv) $ pip install grpcio-tools
    (venv) $ pip install googleapis-common-protos
    (venv) $ pip install pyee

Or using requirements.txt file:

    (venv) $ pip install -r requirements.txt

Table of Contents

What we covered with this workshop:

  • The Protocol Buffer Language
  • How to implement a gRPC server using Go or Python
  • How to implement a gRPC client using Go or Python
  • How to deploy on docker a gRPC server using Go or Python language

Steps to learn gRPC

gRPC 101 Presentation

Slides that go along with the talk.

Also, see this video for general introduction to gRPC: Talk

Learn gRPC:

Golang

gRPC golang workshop

Python

gRPC python workshop

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published