mirror of https://github.com/grpc/grpc.git
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
1a22275e15
|
10 years ago | |
---|---|---|
.. | ||
bin | 10 years ago | |
ext/grpc | 10 years ago | |
lib | 10 years ago | |
spec | 10 years ago | |
.gitignore | 10 years ago | |
.rspec | 10 years ago | |
.rubocop.yml | 10 years ago | |
.rubocop_todo.yml | 10 years ago | |
Gemfile | 10 years ago | |
README.md | 10 years ago | |
Rakefile | 10 years ago | |
grpc.gemspec | 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
- 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}")