blob: 8bdf4d93a2e8667406ca227d81e6ed4c232d6d6f [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-------------
6For this sample, we've already generated the server and client stubs from [helloworld.proto](https://github.com/grpc/grpc-common/blob/master/protos/helloworld.proto).
7
Tim Emiolaeb158ff2015-02-21 06:29:53 -08008PREREQUISITES
9-------------
Tim Emiola49f3ccd2015-02-19 11:09:19 -080010
Tim Emiolaeb158ff2015-02-21 06:29:53 -080011This requires Ruby 2.1, as the gRPC API surface uses keyword args.
Tim Emiola49f3ccd2015-02-19 11:09:19 -080012
Tim Emiola5b5e1462015-02-25 04:18:56 -080013If you don't have that installed locally, you can use [RVM](https://www.rvm.io/) to use Ruby 2.1 for testing without upgrading the version of Ruby on your whole system.
14```sh
15$ command curl -sSL https://rvm.io/mpapis.asc | gpg --import -
16$ \curl -sSL https://get.rvm.io | bash -s stable --ruby=ruby-2.1
17$
18$ # follow the instructions to ensure that your're using the latest stable version of Ruby
19$ # and that the rvm command is installed
20```
21- Make sure your run `source $HOME/.rvm/scripts/rvm` as instructed to complete the set up of RVM
22
Tim Emiola49f3ccd2015-02-19 11:09:19 -080023INSTALL
24-------
25
26- Clone this repository.
27- Follow the instructions in [INSTALL](https://github.com/grpc/grpc/blob/master/INSTALL) to install the gRPC C core.
Yang Gaocec80ed2015-02-24 23:45:00 -080028- *Temporary* Install the full gRPC distribution from source on your local machine and update path: in [Gemfile](https://github.com/grpc/grpc-common/blob/master/ruby/Gemfile) to refer src/ruby within it.
Tim Emiolaeb158ff2015-02-21 06:29:53 -080029 - this is necessary until the gRPC ruby gem is published
Tim Emiola49f3ccd2015-02-19 11:09:19 -080030- Use bundler to install
31```sh
32$ # from this directory
33$ gem install bundler && bundle install
34```
35
Tim Emiolaeb158ff2015-02-21 06:29:53 -080036Try it!
37-------
Tim Emiola49f3ccd2015-02-19 11:09:19 -080038
39- Run the server
40```sh
41$ # from this directory
42$ bundle exec ./greeter_server.rb &
43```
44
45- Run the client
46```sh
47$ # from this directory
48$ bundle exec ./greeter_client.rb
49```
Tim Emiolac66fe1e2015-02-26 03:53:16 -080050
51Tutorial
52--------
53
54You can find a more detailed tutorial in [gRPC Basics: Ruby](https://github.com/grpc/grpc-common/blob/master/ruby/route_guide/README.md)