Craig Tiller c4f0ebe63b Prepare for the new batch call API. %!s(int64=11) %!d(string=hai) anos
..
bin d5d00d5c8f Adds a demo app that accesses the live pubsub service. %!s(int64=11) %!d(string=hai) anos
ext c4f0ebe63b Prepare for the new batch call API. %!s(int64=11) %!d(string=hai) anos
lib 03d70c649f Adds updater_proc, to simplify the setup of credentials during stub creation %!s(int64=11) %!d(string=hai) anos
spec 11f75faf4d Ensures the auth modules are available with just require 'grpc' %!s(int64=11) %!d(string=hai) anos
.gitignore 097ef9b7d9 Incorporating ruby into the master grpc repository. %!s(int64=11) %!d(string=hai) anos
.rspec 097ef9b7d9 Incorporating ruby into the master grpc repository. %!s(int64=11) %!d(string=hai) anos
.rubocop.yml e2860c5bdb Adds rubocop and fixes most style violations it detected %!s(int64=11) %!d(string=hai) anos
.rubocop_todo.yml e2860c5bdb Adds rubocop and fixes most style violations it detected %!s(int64=11) %!d(string=hai) anos
Gemfile 0f0a6bc4f0 Switches to using protobuf-ruby. %!s(int64=11) %!d(string=hai) anos
README.md 0343f7f3a6 Fixes markdown sytax errors %!s(int64=11) %!d(string=hai) anos
Rakefile 36066537cf Fix lint errors, other cleanups %!s(int64=11) %!d(string=hai) anos
grpc.gemspec 43374163ec Corrects a typo %!s(int64=11) %!d(string=hai) anos

README.md

gRPC Ruby

A Ruby implementation of gRPC, Google's RPC library.

INSTALLATION PREREQUISITES

This requires Ruby 2.x, as the rpc api surface uses keyword args.

INSTALLING

  • Install the gRPC core library TODO: describe this, once the core distribution mechanism is defined.

    $ gem install grpc
    

Installing from source

  • Build or Install the gRPC core E.g, from the root of the grpc git repo

    $ cd ../..
    $ make && sudo make install
    
  • 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
    $
    $ # follow the instructions to ensure that your're using the latest stable version of Ruby
    $ # and that the rvm command is installed
    
  • Install bundler

    $ gem install bundler
    
  • Finally, install grpc ruby locally.

    $ cd <install_dir>
    $ bundle install
    $ rake  # compiles the extension, runs the unit tests, see rake -T for other options
    

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 unittest
  • 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)
    logger.info("div(7/3): req=#{req.inspect}")
    resp = stub.div(req, INFINITE_FUTURE)
    logger.info("Answer: #{resp.inspect}")