blob: fecd8041e089e5526b0bce9c7531f2438cc5b6bd [file] [log] [blame] [view]
Tim Emiolaeb158ff2015-02-21 06:29:53 -08001gRPC in 3 minutes (Ruby)
2========================
Tim Emiola49f3ccd2015-02-19 11:09:19 -08003
Dan Cirulibc4b1ce2015-02-25 15:22:58 -08004BACKGROUND
5-------------
Tim Emiolae69e13d2015-06-03 11:56:34 -07006For this sample, we've already generated the server and client stubs from [helloworld.proto][]
Dan Cirulibc4b1ce2015-02-25 15:22:58 -08007
Tim Emiolaeb158ff2015-02-21 06:29:53 -08008PREREQUISITES
9-------------
Tim Emiola49f3ccd2015-02-19 11:09:19 -080010
Tim Emiola9da96d92015-04-30 13:09:07 -040011- Ruby 2.x
Tim Emiola9da96d92015-04-30 13:09:07 -040012This requires Ruby 2.x, as the gRPC API surface uses keyword args.
Tim Emiolae69e13d2015-06-03 11:56:34 -070013If 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.
Tim Emiola8af51752015-02-26 02:04:15 -080014RVM is also useful if you don't have the necessary privileges to update your system's Ruby.
Tim Emiolae69e13d2015-06-03 11:56:34 -070015
16 ```sh
17 $ # RVM installation as specified at https://rvm.io/rvm/install
18 $ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
19 $ \curl -sSL https://get.rvm.io | bash -s stable --ruby=ruby-2
20 $
21 $ # follow the instructions to ensure that your're using the latest stable version of Ruby
22 $ # and that the rvm command is installed
23 ```
Tim Emiola8af51752015-02-26 02:04:15 -080024- *N.B* Make sure your run `source $HOME/.rvm/scripts/rvm` as instructed to complete the set-up of RVM.
Tim Emiola5b5e1462015-02-25 04:18:56 -080025
Tim Emiola49f3ccd2015-02-19 11:09:19 -080026INSTALL
27-------
28
Tim Emiola9da96d92015-04-30 13:09:07 -040029- Clone this repository
Tim Emiola5828df62015-02-26 12:57:10 -080030- Use bundler to install the example package's dependencies
Tim Emiolae69e13d2015-06-03 11:56:34 -070031
32 ```sh
33 $ # from this directory
34 $ gem install bundler # if you don't already have bundler available
35 $ bundle install
36 ```
Tim Emiola49f3ccd2015-02-19 11:09:19 -080037
Tim Emiolaeb158ff2015-02-21 06:29:53 -080038Try it!
39-------
Tim Emiola49f3ccd2015-02-19 11:09:19 -080040
41- Run the server
Tim Emiolae69e13d2015-06-03 11:56:34 -070042
43 ```sh
44 $ # from this directory
45 $ bundle exec ./greeter_server.rb &
46 ```
Tim Emiola49f3ccd2015-02-19 11:09:19 -080047
48- Run the client
Tim Emiolae69e13d2015-06-03 11:56:34 -070049
50 ```sh
51 $ # from this directory
52 $ bundle exec ./greeter_client.rb
53 ```
Tim Emiolac66fe1e2015-02-26 03:53:16 -080054
55Tutorial
56--------
57
58You can find a more detailed tutorial in [gRPC Basics: Ruby](https://github.com/grpc/grpc-common/blob/master/ruby/route_guide/README.md)
Tim Emiola9da96d92015-04-30 13:09:07 -040059
Tim Emiolae69e13d2015-06-03 11:56:34 -070060[helloworld.proto]:https://github.com/grpc/grpc-common/blob/master/protos/helloworld.proto
61[RVM]:https://www.rvm.io/