gRPC example
I've implemented some docker-compose file to make easy run tests. All docker-compose files have all clients written in NodeJS, Python, Ruby and Elixir.
To run the gRPC server in a specific language, choose between the docker-compose files:
docker-compose-nodejs-server.yaml
- gRPC server implemented in NodeJS languagedocker-compose-python-server.yaml
- gRPC server implemented in Python languagedocker-compose-ruby-server.yaml
- gRPC server implemented in Ruby languagedocker-compose-elixir-server.yaml
- gRPC server implemented in Elixir language
To run the gRPC server use:
$ docker-compose -f ${docker-compose-file} up server
To run the grPC client use:
$ docker-compose -f ${docker-compose-file} up ${client}
${docker-compose-file}
must be docker-compose-nodejs-server.yaml
, docker-compose-python-server.yaml
, docker-compose-ruby-server.yaml
or docker-compose-elixir-server.yaml
.
${client}
must be nodejs
, python
, ruby
or elixir
.
Simple protobuf definition in protobufs/greeter.proto
.
Server implementation of protobufs/greeter.proto
in nodejs/server.js
.
Client implementation in nodejs/client.js
.
To generate the Python stub methods I've installed pip install grpcio grpcio-tools
and ran python python/generate_pb.py
.
See python client implementation in python/client.py
.
To generate the Ruby stub methods I've installed gem install grpc grpc-tools
and ran grpc_tools_ruby_protoc -I ../protobufs --ruby_out=. --grpc_out=. ../protobufs/greeter.proto
.
See ruby client implementation in ruby/client.rb
.
Client implementation in elixir/priv/client.exs
.