Skip to content

Releases: ndsev/zserio

Zserio v2.7.0

15 Jul 11:22
Compare
Choose a tag to compare

The main goal of this release is to publish reading of debug string representation of Zserio objects using JSON format.

This release contains one improvement which generates new optional value reset method in Java and Python code.

The release contains as well two bug fixes in Zserio expression operators.

Fixes

#322 - Dynamic bitfield type do not compile using modulo operator
#401 - Any operator of uint64 type using known values generates uncompilable Java code

New Features

#278 - Implement reading of debug string representation

Improvements

#392 - Introduce optional value resetter in Java and Python

Zserio v2.6.1

23 May 07:31
Compare
Choose a tag to compare

The main goal of this release is to publish the following fixes in debug string representation of Zserio objects:

  • Fix of debug string representation for optional enums and bitmask in generated Python code
  • Fix of const correctness in debug string representation functions in generated C++ code
  • Improvement of compilation error message in debug string representation if C++ reflections are not present

From this release, documentation of Zserio runtime libraries is available online:

Fixes

#397 - Debug string output can fail in Python in case of optional enum or bitmask
#398 - MSVC: Generated C++ code can't be compiled with C++ 17

Improvements

#394 - Implement const alternative of C++ reflections
#395 - Public zserio runtime documentation to GitHub pages
#396 - Improve C++ compilation error message for debug string if reflections are not present

Zserio v2.6.0

06 May 17:04
Compare
Choose a tag to compare

The main goal of this release is to publish debug string representation of Zserio objects using JSON format.

This release contains as well the following improvements in generated code:

  • Adding of new method choiceTag() for choices in generated C++, Java and Python code
  • Adding of new interface ZserioBitmask for bitmasks in generated Java code
  • Adding of new real optional value indicator in generated Java and Python code

The release contains as well two bug fixes in Zserio expressions.

Fixes

#385 - Fix generated expressions with low precedence operators in comparison operator
#389 - Disable ternary operator in offset

New Features

#119 - Provide debug string representation

Improvements

#386 - Add choiceTag getter to generated choices
#390 - Introduce real optional value indicator in generated code
#393 - Introduce interface for zserio bitmasks in Java

Zserio v2.5.1

30 Mar 05:44
Compare
Choose a tag to compare

The main goal of this release is to publish C++ generator fixes which prevent generation of uncompilable code.

Besides of that, this release contains as well several fixes in core and in generated Java and Python code.

Fixes

#157 - Compound arguments of parameterized types are not properly checked
#201 - Possible resource leak in generated Java code
#220 - Extern type cannot be returned from function
#354 - Wrong evaluation of ternary operator for C++ string literals
#378 - Argument values of parameterized types are not properly checked
#387 - Unpackable choice generates uncompilable C++ code
#388 - Constraints with recursion generates uncompilable C++ code

Zserio v2.5.0

04 Mar 07:27
Compare
Choose a tag to compare

The main goal of this release is to publish the following new features in generated code:

  • Types schema info in generated C++ code
  • Reflection interface in generated C++ code
  • Types schema info in generated Java code

This release contains the brand new language directive:

This release contains as well the following improvements in generated code:

  • Redesign Service interface to use reflection in generated C++ code
  • Passing original request object to service clients in generated C++ code
  • Passing original request object to service clients in generated Java code
  • Redesign encoding of packed arrays for compounds in generated C++, Java and Python code

Please note that redesign of encoding of packed arrays caused binary incompatibility between this release and all 2.4.x versions.
Thus, packed arrays written by API generated by 2.4.x versions cannot be parsed by API generated by this release.

The release contains as well several bug fixes.

Fixes

#219 - Functions return compound by value in C++
#340 - Inner classes and typedefs in generated C++ code can cause clashing
#353 - TypeInfo doesn't work with recursion
#360 - Implement warning if non-optional field depends on optional fields
#361 - HTML: Used-by links for template parameter types are not linking to instantations
#367 - StackOverflowError for schema with recursion in a template
#372 - Invalid error while instantiating template with instantiate type as a template argument

New Features

#103 - Introduce new Reflection interface for C++ emitter
#334 - Publish zserio Java libraries at Maven central
#351 - Add types schema info in generated Java code
#357 - Implement new command line argument for C++ reflection
#375 - Consider to introduce zserio compatibility version directive

Improvements

#305 - C++: Pass original request object to service clients
#306 - Java: Pass original request object to service clients
#335 - Java: Create string constants for service method names in generated code
#342 - Consider to remove pre-write actions in C++
#350 - Java: attach original exception as a cause
#358 - Extend C++ BitBuffer interface by method returning vector
#359 - Improve C++ Service interface with reflections
#364 - Disable packed warning for empty structure
#365 - HTML: Used-by does not cover parameters
#366 - HTML: Used-by does not cover expressions
#370 - Redesign encoding of packed arrays for compounds

Zserio v2.5.0-pre1

09 Dec 08:07
Compare
Choose a tag to compare
Zserio v2.5.0-pre1 Pre-release
Pre-release

The main goal of this pre-release is to publish new Reflection interface together with types schema info for C++ generator.

This pre-release contains as well redesigned C++ service interface which uses new Reflection functionality.

Fixes

#219 - Functions return compound by value in C++

New Features

#103 - Introduce new Reflection interface for C++ emitter

Improvements

#305 - [C++] Pass original request object to service client
#334 - Publish zserio Java libraries at Maven central
#350 - Java: attach original exception as a cause

Zserio v2.4.2

05 Nov 09:16
Compare
Choose a tag to compare

The main goal of this minor release is to allow users to configure checking of rules ids uniqueness. Normally, rules ids should be unique within a single package only. However for some use cases, users might need to have all rules ids unique globally.

The release contains as well minor fix in HTML generator to generate validate HTML code even if rule id is not unique globally.

Fixes

#347 - Fix rules ids in rules overview in HTML generator

New Features

#346 - Check rule id uniqueness between all packages only on user request

Zserio v2.4.1

26 Oct 14:10
Compare
Choose a tag to compare

The main goal of this minor release is to improve packed arrays feature by automatic comparison of packed and unpacked array sizes. If packed array size is bigger, packed array will be left unpacked.

The release contains as well minor change in C++ generator not to generate field constructor for structures as explicit if it's not necessary.

Fixes

#331 - Unknown documentation see tag in template can cause compilation failure

New Features

#344 - Leave packed arrays unpacked if packed array size is bigger

Improvements

#337 - Add non-explicit default constructor to emitted c++ API (regression)

Zserio v2.4.0

24 Sep 12:18
Compare
Choose a tag to compare

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

Rules provide a way how to organize semantic restrictions for the schema which cannot be easily defined using constraints.

Packed arrays compress all integer types, enumeration types and bitmask types using delta compression.

Beside of that, Implicit arrays are deprecated in the language from this release.

Furthermore, the release contains the following new features in generated code:

  • Types schema info in generated Python code
  • New allocation strategy in generated C++ code
  • New Zserio array types mapping in generated Java code

The release contains as well several bug fixes and improvements.

Fixes

#317 - Indexed offsets arrays can return wrong bit size
#318 - Offsets cannot be variable integer type
#325 - Template argument evaluation fails if top level package is specified
#326 - Improve checking of implicit arrays usage
#327 - Check never ending recursion via non-empty array

New Features

#308 - Add rules support into the language
#309 - Add delta compressed arrays support into the language
#329 - Add types schema info in generated Python code
#330 - Allow different memory allocation strategies in generated C++ code

Improvements

#311 - Remove support for 32-bit Windows platform
#312 - Render navigation bar in HTML created for markdown resources
#313 - Make java.util.List optional for java
#332 - Consider to deprecate implicit arrays
#338 - Add easy way to write a c++ object to a bit stream
#339 - Allow periods in rule IDs in rule_group
#343 - Check rule id uniqueness for all package

Zserio v2.4.0-pre3

20 Sep 07:56
Compare
Choose a tag to compare
Zserio v2.4.0-pre3 Pre-release
Pre-release

The main goal of this pre-release is to publish the packed arrays for C++ and Java extensions.

This pre-release contains as well new utilities for serialization and deserialization zserio objects in C++ runtime library.

New Features

#309 - Add delta compressed arrays support into the language

Improvements

#338 - Add easy way to write a c++ object to a bit stream
#339 - Allow periods in rule IDs in rule_group