Skip to content

v2.6.0

Compare
Choose a tag to compare
@xfxyjwf xfxyjwf released this 28 Aug 00:03

2014-08-15 version 2.6.0

General

  • Added oneofs(unions) feature. Fields in the same oneof will share
    memory and at most one field can be set at the same time. Use the
    oneof keyword to define a oneof like:

    message SampleMessage {
      oneof test_oneof {
        string name = 4;
        YourMessage sub_message = 9;
      }
    }
    
  • Files, services, enums, messages, methods and enum values can be marked
    as deprecated now.

  • Added Support for list values, including lists of mesaages, when
    parsing text-formatted protos in C++ and Java.

    For example:  foo: [1, 2, 3]
    

C++

  • Enhanced customization on TestFormat printing.
  • Added SwapFields() in reflection API to swap a subset of fields.
    Added SetAllocatedMessage() in reflection API.
  • Repeated primitive extensions are now packable. The
    [packed=true] option only affects serializers. Therefore, it is
    possible to switch a repeated extension field to packed format
    without breaking backwards-compatibility.
  • Various speed optimizations.

Java

  • writeTo() method in ByteString can now write a substring to an
    output stream. Added endWith() method for ByteString.
  • ByteString and ByteBuffer are now supported in CodedInputStream
    and CodedOutputStream.
  • java_generate_equals_and_hash can now be used with the LITE_RUNTIME.

Python

  • A new C++-backed extension module (aka "cpp api v2") that replaces the
    old ("cpp api v1") one. Much faster than the pure Python code. This one
    resolves many bugs and is recommended for general use over the
    pure Python when possible.
  • Descriptors now have enum_types_by_name and extension_types_by_name dict
    attributes.
  • Support for Python 3.