- New:
oneof
support! - Fix: Correct serialization of repeated unknown fields.
- Fix: Removed superfluous
private
modifier on enum constructor. - Warning: The 'protoparser' library was updated to version 4.0. This changes the type passed to
any
ServiceWriter
implementations.
- New: Messages implement
Serializable
. The serialized form follows protobuf encoding, so renaming fields is safe as long as tags are consistent. (Renaming classes is unsafe, however). Note that extension fields are deserialized as unknown fields.
- New:
--quiet
and--dry-run
command-line arguments. - Fix: Handle an extension registry with zero or only one item.
- Okio dependency bumped to 1.2.0.
- Fix: Correctly throw
IOException
when parsing bad input fails. - Fix: Ensure emitted code references to
Arrays.asList
correctly compiles in some edge cases. - 'UNDEFINED' enum value has been removed.
- New: 'UNDEFINED' enum value represents values that the generated code is unable to handle.
- New: Service writer implementation can now be specified on the command-line.
- New: Generate interface definition for a
Service
with a partial list of methods. - Okio dependency bumped to 1.0.0.
- New: Options on enums and enum values are now supported.
- New: Options ending with
.redacted
on fields will omit values fromtoString
. - New:
Redactor
creates copies of messages with redacted fields omitted. - Various internal serialization improvements and memory reduction.
- Okio dependency bumped to 0.9.0.
-
Replace Wire's ByteString class with the one from Okio (https://github.com/square/okio). This is a breaking API change.
-
Add a new static method
Wire.parseFrom(okio.Source input, Class<M> messageClass)
. -
Reimplement Wire's input handling to use Okio internally.
-
Provide basic support for generating code from service declarations (see README.md).
-
Improve deserialization performance.
-
Fix a bug where no some extension dependencies were not detected.
- New: Support service declarations as roots. The request and response types of their methods will be included.
- Fix: Enum value duplicate check now correctly looks at names instead of values.
- New: Automatically add Maven plugin's generated source as a compilation root.
- Fix: Correct Maven plugin's 'no arguments' flag to work properly.
- Fix: Support extend declarations nested inside message types.
- New: Empty repeated fields are now initialized to an empty collection.
- New: Emit field options. Use
--no_options
flag to disable. - New:
@Deprecated
is now added to fields and setters on the builder. - New: Maven plugin for running the compiler as part of a build.
- Fix: Treat empty and null repeated fields the same in
equals()
andhashCode()
.
Note: This version is not backwards compatible with code generated from previous versions.
- New:
--registry_class
compiler argument emits a class with a list of extensions suitable for passing to theWire
constructor. - Fix: Ensure all trailing whitespace is trimmed on documentation.
- Fix: Correct parsing and emission of multi-line documentation.
- New: Support for message options.
- New: Check for duplicate field tag numbers.
- New: Emit Javadoc on messages, enum values, and builder methods.
- Fix: Emit imports for extension fields and classes outside of package.
- Fix: Correctly generate sources for protos with the same basename.
- Fix: Do not generate default constants for message types.
- Fix: Avoid shadowing fields named "result", "other", or "o".
- New: Support reading directly from
InputStream
. - New: Add '
other == this
' shortcut in generatedequals()
methods.
Initial version.