grpc/src/ruby
Nicolas Noble 1c4dfc6ed9 Merge pull request #6396 from nicolasnoble/build-it-all-the-way-2
Always build the grpc library when building the ruby extension.
2016-05-02 14:34:22 -07:00
..
bin Simplified ruby interop test files 2016-04-21 14:28:00 -07:00
ext/grpc Always build the grpc library when building the ruby extension. 2016-05-02 21:27:23 +02:00
lib Load default roots.pem in Ruby via grpc_set_ssl_roots_override_callback 2016-04-28 13:27:19 -07:00
pb Got Ruby stress client working, with some modifications to interop tests 2016-04-22 13:37:26 -07:00
qps Add support for an "OTHER" value in client_type, server_type, and add a string to 2016-04-21 00:33:46 -07:00
spec ruby: Add test case for referring external package 2016-04-07 13:13:30 -07:00
stress Got Ruby stress client working, with some modifications to interop tests 2016-04-22 13:37:26 -07:00
tools Reversed premature removal of a file 2016-05-02 11:26:46 -07:00
.gitignore Incorporating ruby into the master grpc repository. 2014-12-01 17:45:43 -08:00
.rubocop.yml Ruby: fix some synchronization code in server implementation 2016-03-09 11:10:20 -08:00
.rubocop_todo.yml Corrects the cancel_after_first_response behaviour 2015-06-19 10:23:42 -07:00
CHANGELOG.md Corrects the Changelog date 2015-04-14 11:03:37 -07:00
README.md Update Ruby README with simpler install instructions 2016-01-15 10:12:28 -08:00

README.md

Gem gRPC Ruby

A Ruby implementation of gRPC.

Status

Beta

PREREQUISITES

  • Ruby 2.x. The gRPC API uses keyword args.

INSTALLATION

Linux and Mac OS X:

gem install grpc

BUILD FROM SOURCE

  • Clone this repository

  • Install Ruby 2.x. Consider doing this with RVM, it's a nice way of controlling the exact ruby version that's used.

$ command curl -sSL https://rvm.io/mpapis.asc | gpg --import -
$ \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
  • Make sure your run source $HOME/.rvm/scripts/rvm as instructed to complete the set up of RVM

  • Install bundler

$ gem install bundler
  • Finally, build and install the gRPC gem locally.
$ # from this directory
$ bundle install  # creates the ruby bundle, including building the grpc extension
$ rake  # runs the unit tests, see rake -T for other options

DOCUMENTATION

  • rubydoc for the gRPC gem is available online at rubydoc.
  • the gRPC Ruby reference documentation is available online at grpc.io

CONTENTS

Directory structure is the layout for ruby extensions

  • ext: the gRPC ruby extension

  • lib: the entrypoint gRPC ruby library to be used in a 'require' statement

  • spec: Rspec unittests

  • bin: example gRPC clients and servers, e.g,

    stub = Math::Math::Stub.new('my.test.math.server.com:8080')
    req = Math::DivArgs.new(dividend: 7, divisor: 3)
    GRPC.logger.info("div(7/3): req=#{req.inspect}")
    resp = stub.div(req)
    GRPC.logger.info("Answer: #{resp.inspect}")