Skip to content

Zserio v2.9.0

Compare
Choose a tag to compare
@mikir mikir released this 02 Dec 12:29
· 679 commits to master since this release

The main goal of this release is to publish the following brand new features:

  • Built-in type bytes
  • Raw bytes as request/response in services
  • Raw bytes as messages in pub/subs
  • New warning if documentable type has no sticky comment using specifier [doc-comment-missing]

This release contains the following improvements in generated code:

  • Removal of pre-write actions in generated Java and Python code
  • Removal of initializeOffsets() calling from SQL Table write() method in C++ code
  • Deprecating of file write and read methods in Java code

This release contains as well the following improvements in runtime libraries:

  • Improving serialization and deserialization utitilies together with deprecating of ZserioIO and InitializeOffsetsWriter interfaces in Java
  • Adding serializeToBytes() and deserializeFromBytes() methods in C++

This release contains as well several bug fixes.

Potential API incompatibilities with previous version:

  • This release can potentially break applications which do not initialize offsets and call zserio write() method or pass zserio objects to API for serialization (pubsub, service, SQL table).
    If this happens, the application will have to call initializeOffsets() method explicitly. To make this transition easier, each runtime library contains serialize() and deserialize() methods which call initializeOffsets() method automatically.
  • Python runtime function deserialize_bytes() has been renamed to deserialize_from_bytes() to be consistent with another languages.
  • Java generic method callMethod() in ServiceClientInterface has been slightly changed to use generic parameter.
  • In C++ runtime IBasicServiceData class, the method getReflectable() returns IBasicReflectableConstPtr instead of IBasicReflectablePtr
  • Java runtime ServiceData class has been changed to interface
  • Python runtime ServiceData class has been changed to interface (constructor has been removed)

Potential CLI incompatibility with previous version:

  • The warning specifier [doc-comment-see] has been renamed to [doc-comment-link].
    This change can influence usage of -withWarnings or -withoutWarnings command line options.

Fixes

#421 - StackOverflowError during template instantiation when same name is chosen
#430 - Misleading error message when using parametrized types in a wrong way
#452 - Fix Java validation of SQL virtual tables with null column values
#458 - Wrong unresolved referenced symbol warning in documentation comment

New Features

#426 - Implement warning if documentable type has no sticky comment
#433 - Allow using raw bytes as request/response in services
#448 - Implement new zserio type 'bytes'
#450 - Allow using raw bytes as messages in pub/subs

Improvements

#373 - Java: Consider to remove pre-write actions
#374 - Python: Consider to remove pre-write actions
#399 - Java: Improve serialization utilities in runtime library
#400 - Implement test coverage in Java runtime library
#435 - C++: Remove initializeOffsets calling from SQL Table write
#436 - C++: Implement serializeToBytes and deserializeFromBytes in runtime library
#453 - Java: Deprecate file write and read methods in generated code