|
|
|
gRPC in 3 minutes (Ruby)
|
|
|
|
========================
|
|
|
|
|
|
|
|
BACKGROUND
|
|
|
|
-------------
|
|
|
|
For this sample, we've already generated the server and client stubs from [helloworld.proto][]
|
|
|
|
|
|
|
|
PREREQUISITES
|
|
|
|
-------------
|
|
|
|
|
|
|
|
- Ruby 2.x
|
|
|
|
This requires Ruby 2.x, as the gRPC API surface uses keyword args.
|
|
|
|
If you don't have that installed locally, you can use [RVM][] to use Ruby 2.x for testing without upgrading the version of Ruby on your whole system.
|
|
|
|
RVM is also useful if you don't have the necessary privileges to update your system's Ruby.
|
|
|
|
|
|
|
|
```sh
|
|
|
|
$ # RVM installation as specified at https://rvm.io/rvm/install
|
|
|
|
$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
|
|
|
|
$ \curl -sSL https://get.rvm.io | bash -s stable --ruby=ruby-2
|
|
|
|
$
|
|
|
|
$ # follow the instructions to ensure that your're using the latest stable version of Ruby
|
|
|
|
$ # and that the rvm command is installed
|
|
|
|
```
|
|
|
|
- *N.B* Make sure your run `source $HOME/.rvm/scripts/rvm` as instructed to complete the set-up of RVM.
|
|
|
|
|
|
|
|
INSTALL
|
|
|
|
-------
|
|
|
|
|
|
|
|
- Clone this repository
|
|
|
|
- Use bundler to install the example package's dependencies
|
|
|
|
|
|
|
|
```sh
|
|
|
|
$ # from this directory
|
|
|
|
$ gem install bundler # if you don't already have bundler available
|
|
|
|
$ bundle install
|
|
|
|
```
|
|
|
|
|
|
|
|
Try it!
|
|
|
|
-------
|
|
|
|
|
|
|
|
- Run the server
|
|
|
|
|
|
|
|
```sh
|
|
|
|
$ # from this directory
|
|
|
|
$ bundle exec ./greeter_server.rb &
|
|
|
|
```
|
|
|
|
|
|
|
|
- Run the client
|
|
|
|
|
|
|
|
```sh
|
|
|
|
$ # from this directory
|
|
|
|
$ bundle exec ./greeter_client.rb
|
|
|
|
```
|
|
|
|
|
|
|
|
Tutorial
|
|
|
|
--------
|
|
|
|
|
|
|
|
You can find a more detailed tutorial in [gRPC Basics: Ruby](https://github.com/grpc/grpc-common/blob/master/ruby/route_guide/README.md)
|
|
|
|
|
|
|
|
[helloworld.proto]:https://github.com/grpc/grpc-common/blob/master/protos/helloworld.proto
|
|
|
|
[RVM]:https://www.rvm.io/
|