ruby-protobuf


Protocol Buffers for Ruby

What's this?

Protocol Buffers for Ruby.

Source

Install

sudo gem install ruby_protobuf

Quick Examples

Generate Ruby Code

A .proto file like this:

``` package tutorial;

message Person { required string name = 1; required int32 id = 2; optional string email = 3; } ```

generates ruby code like this:

module Tutorial class Person < ::Protobuf::Message required :string, :name, 1 required :int32, :id, 2 optional :string, :email, 3 end end

by the command:

rprotoc PROTOFILE

Use Generated Ruby Code

Serialize a Message

``` person = Tutorial::Person.new person.id = 1234 person.name = 'John Doe' person.email = 'jdoe@example.com' phone = Tutorial::Person::PhoneNumber.new phone.number = '555-4321' phone.type = Tutorial::Person::PhoneType::HOME person.phone << phone serialized_string = person.serialize_to_string

person.serialize_to_file('person.dat')

```

Parse a Serialized String/File

``` person = Tutorial::Person.new person.parse_from_string(serialized_string)

person.parse_from_file('person.dat')

assert_equal(1234, person.id) assert_equal('John Doe', person.name) assert_equal('jdoe@example.com', person.email) assert_equal(1, person.phone.size) assert_equal('555-4321', person.phone[0].number) assert_equal(Tutorial::Person::PhoneType::HOME, person.phone[0].type) ``` For more examples, see the tutorial.

Project Information

Labels:
ruby protocolbuffers protobuf