From 1d4f321327dd0826211e0efb983a1087310a2ce3 Mon Sep 17 00:00:00 2001 From: Chris Fallin Date: Fri, 20 Feb 2015 17:32:06 -0800 Subject: Updated CHANGES.txt to mention Ruby extension. Change-Id: I3c3ec4aecf4ea2ce786d8d674baeca875e71801f --- CHANGES.txt | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) (limited to 'CHANGES.txt') diff --git a/CHANGES.txt b/CHANGES.txt index 02c964cb..e0c02084 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,10 +1,35 @@ -2015-2-22 version 3.0.0-alpha-2 (Ruby/JavaNano): +2015-02-22 version 3.0.0-alpha-2 (Ruby/JavaNano): General * Introduced two new language implementations (Ruby and JavaNano) to proto3. * Various bug fixes since 3.0.0-alpha-1 Ruby: - TODO(cfallin): Add descriptions here. + We have added proto3 support for Ruby via a native C extension. + + The Ruby extension itself is included in the ruby/ directory, and details on + building and installing the extension are in ruby/README.md. The extension + will also be published as a Ruby gem. Code generator support is included as + part of `protoc` with the `--ruby_out` flag. + + The Ruby extension implements a user-friendly DSL to define message types + (also generated by the code generator from `.proto` files). Once a message + type is defined, the user may create instances of the message that behave in + ways idiomatic to Ruby. For example: + + - Message fields are present as ordinary Ruby properties (getter method + `foo` and setter method `foo=`). + - Repeated field elements are stored in a container that acts like a native + Ruby array, and map elements are stored in a container that acts like a + native Ruby hashmap. + - The usual well-known methods, such as `#to_s`, `#dup`, and the like, are + present. + + Unlike several existing third-party Ruby extensions for protobuf, this + extension is built on a "strongly-typed" philosophy: message fields and + array/map containers will throw exceptions eagerly when values of the + incorrect type are inserted. + + See ruby/README.md for details. JavaNano: JavaNano is a special code generator and runtime library designed especially -- cgit v1.2.3