The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#) https://grpc.io/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Tim Emiola 36066537cf Fix lint errors, other cleanups 10 years ago
..
bin Fix lint errors, other cleanups 10 years ago
ext/grpc sync up with master 10 years ago
lib Removed port_picker from active_call_spec, fixed some style issues 10 years ago
spec Fix lint errors, other cleanups 10 years ago
.gitignore Incorporating ruby into the master grpc repository. 10 years ago
.rspec Incorporating ruby into the master grpc repository. 10 years ago
.rubocop.yml Adds rubocop and fixes most style violations it detected 10 years ago
.rubocop_todo.yml Adds rubocop and fixes most style violations it detected 10 years ago
Gemfile Switches to using protobuf-ruby. 10 years ago
README.md Fixes markdown sytax errors 10 years ago
Rakefile Fix lint errors, other cleanups 10 years ago
grpc.gemspec Fix lint errors, other cleanups 10 years ago

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
$ 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}")