Update version from 2.2.0 to 2.3.0

Tarball is attached.

2010-01-08 version 2.3.0:

  General
  * Parsers for repeated numeric fields now always accept both packed and
    unpacked input.  The [packed=true] option only affects serializers.
    Therefore, it is possible to switch a field to packed format without
    breaking backwards-compatibility -- as long as all parties are using
    protobuf 2.3.0 or above, at least.
  * The generic RPC service code generated by the C++, Java, and Python
    generators can be disabled via file options:
      option cc_generic_services = false;
      option java_generic_services = false;
      option py_generic_services = false;
    This allows plugins to generate alternative code, possibly specific to some
    particular RPC implementation.

  protoc
  * Now supports a plugin system for code generators.  Plugins can generate
    code for new languages or inject additional code into the output of other
    code generators.  Plugins are just binaries which accept a protocol buffer
    on stdin and write a protocol buffer to stdout, so they may be written in
    any language.  See src/google/protobuf/compiler/plugin.proto.
    **WARNING**:  Plugins are experimental.  The interface may change in a
    future version.
  * If the output location ends in .zip or .jar, protoc will write its output
    to a zip/jar archive instead of a directory.  For example:
      protoc --java_out=myproto_srcs.jar --python_out=myproto.zip myproto.proto
    Currently the archive contents are not compressed, though this could change
    in the future.
  * inf, -inf, and nan can now be used as default values for float and double
    fields.

  C++
  * Various speed and code size optimizations.
  * DynamicMessageFactory is now fully thread-safe.
  * Message::Utf8DebugString() method is like DebugString() but avoids escaping
    UTF-8 bytes.
  * Compiled-in message types can now contain dynamic extensions, through use
    of CodedInputStream::SetExtensionRegistry().
  * Now compiles shared libraries (DLLs) by default on Cygwin and MinGW, to
    match other platforms.  Use --disable-shared to avoid this.

  Java
  * parseDelimitedFrom() and mergeDelimitedFrom() now detect EOF and return
    false/null instead of throwing an exception.
  * Fixed some initialization ordering bugs.
  * Fixes for OpenJDK 7.

  Python
  * 10-25 times faster than 2.2.0, still pure-Python.
  * Calling a mutating method on a sub-message always instantiates the message
    in its parent even if the mutating method doesn't actually mutate anything
    (e.g. parsing from an empty string).
  * Expanded descriptors a bit.


On Thu, Dec 31, 2009 at 1:57 PM, Auclair Vincent
<auclair.vinc...@gmail.com> wrote:
> attached is a port of google protobuf
>
> Information for inst:protobuf-2.2.0
>
> Comment:
> c++ protocol buffers
>
> Description:
> Protocol buffers are a flexible, efficient, automated mechanism for 
> serializing
> structured data - think XML, but smaller, faster, and simpler. You define how
> you want your data to be structured once, then you can use special generated
> source code to easily write and read your structured data to and from a 
> variety
> of data streams and using a variety of languages. You can even update your 
> data
> structure without breaking deployed programs that are compiled against the 
> "old"
> format.
>
> Maintainer: Vincent Auclair <auclair.vinc...@gmail.com>
>
> WWW: http://code.google.com/p/protobuf/
>
> It uses the installed gtest instead of the shipped one for regressions tests.
> This is only the c++ part. There are also a java and python part in it.
> Which I am not currently planning to port.
>
> Comments ?
> This was also ported for the ACSEL. (same as gtest, glog) So it would be nice 
> if
> it could be mentioned in the commit message. :)
> This is the 2.2.0 version as the 2.2.0a is only a debian fix.
> The 2.3.0 is in release candidate.
>
> I am copying the website example here :
>
> You write a .proto file like this:
>
> message Person {
>  required int32 id = 1;
>  required string name = 2;
>  optional string email = 3;
> }
>
> Then you compile it with protoc, the protocol buffer compiler,
> to produce code in C++, Java, or Python.
>
> Then, if you are using C++, you use that code like this:
>
> Person person;
> person.set_id(123);
> person.set_name("Bob");
> person.set_email("b...@example.com");
>
> fstream out("person.pb", ios::out | ios::binary | ios::trunc);
> person.SerializeToOstream(&out);
> out.close();
>
> Or like this:
>
> Person person;
> fstream in("person.pb", ios::in | ios::binary);
> if (!person.ParseFromIstream(&in)) {
>  cerr << "Failed to parse person.pb." << endl;
>  exit(1);
> }
>
> cout << "ID: " << person.id() << endl;
> cout << "name: " << person.name() << endl;
> if (person.has_email()) {
>  cout << "e-mail: " << person.email() << endl;
> }
>


-- 
Vincent Auclair        -      auclair.vincent[ at ]gmail.com
(+33) 6 80 77 59 67

Attachment: protobuf.tar.gz
Description: GNU Zip compressed data

Reply via email to