xref: /aosp_15_r20/external/grpc-grpc/examples/ruby/README.md (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1*cc02d7e2SAndroid Build Coastguard WorkergRPC in 3 minutes (Ruby)
2*cc02d7e2SAndroid Build Coastguard Worker========================
3*cc02d7e2SAndroid Build Coastguard Worker
4*cc02d7e2SAndroid Build Coastguard WorkerBACKGROUND
5*cc02d7e2SAndroid Build Coastguard Worker-------------
6*cc02d7e2SAndroid Build Coastguard WorkerFor this sample, we've already generated the server and client stubs from [helloworld.proto][]
7*cc02d7e2SAndroid Build Coastguard Worker
8*cc02d7e2SAndroid Build Coastguard WorkerPREREQUISITES
9*cc02d7e2SAndroid Build Coastguard Worker-------------
10*cc02d7e2SAndroid Build Coastguard Worker
11*cc02d7e2SAndroid Build Coastguard Worker- Ruby 2.x
12*cc02d7e2SAndroid Build Coastguard WorkerThis requires Ruby 2.x, as the gRPC API surface uses keyword args.
13*cc02d7e2SAndroid Build Coastguard WorkerIf 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.
14*cc02d7e2SAndroid Build Coastguard WorkerRVM is also useful if you don't have the necessary privileges to update your system's Ruby.
15*cc02d7e2SAndroid Build Coastguard Worker
16*cc02d7e2SAndroid Build Coastguard Worker  ```sh
17*cc02d7e2SAndroid Build Coastguard Worker  $ # RVM installation as specified at https://rvm.io/rvm/install
18*cc02d7e2SAndroid Build Coastguard Worker  $ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
19*cc02d7e2SAndroid Build Coastguard Worker  $ \curl -sSL https://get.rvm.io | bash -s stable --ruby=ruby-2
20*cc02d7e2SAndroid Build Coastguard Worker  $
21*cc02d7e2SAndroid Build Coastguard Worker  $ # follow the instructions to ensure that your're using the latest stable version of Ruby
22*cc02d7e2SAndroid Build Coastguard Worker  $ # and that the rvm command is installed
23*cc02d7e2SAndroid Build Coastguard Worker  ```
24*cc02d7e2SAndroid Build Coastguard Worker- *N.B* Make sure your run `source $HOME/.rvm/scripts/rvm` as instructed to complete the set-up of RVM.
25*cc02d7e2SAndroid Build Coastguard Worker
26*cc02d7e2SAndroid Build Coastguard WorkerINSTALL
27*cc02d7e2SAndroid Build Coastguard Worker-------
28*cc02d7e2SAndroid Build Coastguard Worker- [Install gRPC Ruby][]
29*cc02d7e2SAndroid Build Coastguard Worker
30*cc02d7e2SAndroid Build Coastguard Worker- Use bundler to install the example package's dependencies
31*cc02d7e2SAndroid Build Coastguard Worker
32*cc02d7e2SAndroid Build Coastguard Worker  ```sh
33*cc02d7e2SAndroid Build Coastguard Worker  $ # from this directory
34*cc02d7e2SAndroid Build Coastguard Worker  $ gem install bundler # if you don't already have bundler available
35*cc02d7e2SAndroid Build Coastguard Worker  $ bundle install
36*cc02d7e2SAndroid Build Coastguard Worker  ```
37*cc02d7e2SAndroid Build Coastguard Worker
38*cc02d7e2SAndroid Build Coastguard WorkerTry it!
39*cc02d7e2SAndroid Build Coastguard Worker-------
40*cc02d7e2SAndroid Build Coastguard Worker
41*cc02d7e2SAndroid Build Coastguard Worker- Run the server
42*cc02d7e2SAndroid Build Coastguard Worker
43*cc02d7e2SAndroid Build Coastguard Worker  ```sh
44*cc02d7e2SAndroid Build Coastguard Worker  $ # from this directory
45*cc02d7e2SAndroid Build Coastguard Worker  $ bundle exec ./greeter_server.rb &
46*cc02d7e2SAndroid Build Coastguard Worker  ```
47*cc02d7e2SAndroid Build Coastguard Worker
48*cc02d7e2SAndroid Build Coastguard Worker- Run the client
49*cc02d7e2SAndroid Build Coastguard Worker
50*cc02d7e2SAndroid Build Coastguard Worker  ```sh
51*cc02d7e2SAndroid Build Coastguard Worker  $ # from this directory
52*cc02d7e2SAndroid Build Coastguard Worker  $ bundle exec ./greeter_client.rb
53*cc02d7e2SAndroid Build Coastguard Worker  ```
54*cc02d7e2SAndroid Build Coastguard Worker
55*cc02d7e2SAndroid Build Coastguard WorkerTutorial
56*cc02d7e2SAndroid Build Coastguard Worker--------
57*cc02d7e2SAndroid Build Coastguard Worker
58*cc02d7e2SAndroid Build Coastguard WorkerYou can find a more detailed tutorial in [gRPC Basics: Ruby][]
59*cc02d7e2SAndroid Build Coastguard Worker
60*cc02d7e2SAndroid Build Coastguard Worker[helloworld.proto]:../protos/helloworld.proto
61*cc02d7e2SAndroid Build Coastguard Worker[RVM]:https://www.rvm.io/
62*cc02d7e2SAndroid Build Coastguard Worker[Install gRPC ruby]:../../src/ruby#installation
63*cc02d7e2SAndroid Build Coastguard Worker[gRPC Basics: Ruby]:https://grpc.io/docs/languages/ruby/basics
64