Skip to content

Releases: ndsev/zserio

Zserio v2.0.0

15 Jun 12:46
Compare
Choose a tag to compare

The goal of this main release is to publish stabilized schema language which contains the following new features:

New generated service interface is completely independent on used communication library and it is up to the application to implement the corresponding service backend.

There are available three sample service backend implementations:

New generated pubsub interface is completely independent on used communication library and it is up to the application to implement the corresponding pubsub backend.

There are available three sample pubsub backend implementations:

Please note that this release does not contain old C++98 generator anymore. The last version supporting old C++98 generator is the zserio v1.4.0.

The release contains a lot of fixes and improvements as well.

Fixes

#87 - Name clashing in generated code
#142 - Parameter used as an offset doesn't work
#159 - Bit fields or arrays using 64-bit length don't work in Java
#162 - Ambiguous instantiate error in case of circular imports
#167 - Generated C++ code introduces resource leak in case of SQLite DB opening failure
#171 - Zserio Java generated code clashes with java standard types
#176 - Documentation emitter crashes in case of invalid see tag
#180 - Fix multiline string literals in grammar
#181 - C++ generator crashes if package name begins with underscore
#182 - String concatenation generates uncompilable C++ code
#183 - Fix string literals in SQL constraints and pubsub
#189 - BitStreamWriter.writeBitBuffer fails when internal buffer is used
#190 - Generated code contains reset method for optional fields when -wihoutWriterCode is specified
#207 - C++ - Unaligned cache fill
#208 - Change the last byte implementation in the bit buffer
#210 - Buggy BitStreamWriter constructor from BitBuffer
#211 - BitStreamWriter should not reset whole given buffer
#216 - Wrong constraint checking for optional fields in C++
#218 - Disable functions in offsets

New Features

#129 - Add bitmasks into zserio language
#169 - Redesign generated service interface
#170 - Add pubsub support into zserio language
#200 - Cross language portability for array size

Improvements

#46 - Optimize AnyHolder inplace creation
#153 - Improve static analysis of Java code
#154 - Improve static analysis of C++ code
#155 - Improve static analysis of Python code
#172 - Remove generated annotation from Java generated code
#174 - Consider to restrict implicit arrays
#179 - Change default behaviour of SQL constraint for fields
#184 - Remove '@' character pre-processing in SQL constraints
#187 - Add keyword 'topic' to the pubsub types
#204 - Cross language portability for auto arrays
#205 - Cross language portability for unions
#206 - Cross language portability for strings
#212 - Cross language portability for bit buffer
#217 - Disable dynamic string concatenation

Zserio v2.0.0-pre5

21 May 13:13
Compare
Choose a tag to compare
Zserio v2.0.0-pre5 Pre-release
Pre-release

This is the fifth beta version of the zserio v2.0.0 which contains new zserio type varsize.

New zserio type varsize can be used in schemas for array sizes which must fulfill cross language portability.

This pre-release contains several fixes as well.

Fixes

#207 - C++ - Unaligned cache fill
#208 - Change the last byte implementation in the bit buffer
#210 - Buggy BitStreamWriter constructor from BitBuffer
#211 - BitStreamWriter should not reset whole given buffer

New Features

#200 - Cross language portability for array size

Improvements

#204 - Cross language portability for auto arrays
#205 - Cross language portability for unions
#206 - Cross language portability for strings
#212 - Cross language portability for bit buffer

Zserio v2.0.0-pre4

24 Apr 13:22
Compare
Choose a tag to compare
Zserio v2.0.0-pre4 Pre-release
Pre-release

This is the fourth beta version of the zserio v2.0.0 which contains several fixes.

Main reason of this pre-release is to solve possible symbol clashing in generated code by introducing some identifier naming restrictions (issue #87). This might break backward compatibility of some schemas.

Fixes

#87 - Name clashing in generated code
#189 - BitStreamWriter.writeBitBuffer fails when internal buffer is used
#190 - Generated code contains reset method for optional fields when -wihoutWriterCode is specified

Zserio v2.0.0-pre3

08 Apr 10:53
Compare
Choose a tag to compare
Zserio v2.0.0-pre3 Pre-release
Pre-release

This is the thirtd beta version of the zserio v2.0.0 which contains slightly changed syntax for pubsub types.

The pubsub interface stays completely independent on used communication library and it is up to the application to implement the corresponding pubsub backend.

Improvements

#187 - Add keyword 'topic' to the pubsub types

Zserio v2.0.0-pre2

06 Apr 13:29
Compare
Choose a tag to compare
Zserio v2.0.0-pre2 Pre-release
Pre-release

This is the second beta version of the zserio v2.0.0 which contains new generated pubsub interface.

New generated pubsub interface is completely independent on used communication library and it is up to the application to implement the corresponding pubsub backend.

There are available three sample pubsub backend implementations:

The pre-release contains several fixes as well.

Fixes

#176 - Documentation emitter crashes in case of invalid see tag
#180 - Fix multiline string literals in grammar
#181 - C++ generator crashes if package name begins with underscore
#182 - String concatenation generates uncompilable C++ code
#183 - Fix string literals in SQL constraints and pubsub

New Features

#170 - Add pubsub support into zserio language

Improvements

#174 - Consider to restrict implicit arrays
#179 - Change default behaviour of SQL constraint for fields
#184 - Remove '@' character pre-processing in SQL constraints

Zserio v2.0.0-pre1

25 Feb 16:42
Compare
Choose a tag to compare
Zserio v2.0.0-pre1 Pre-release
Pre-release

This is the first beta version of the zserio v2.0.0 which contains

New generated service interface is completely independent on used communication library and it is up to the application to implement the corresponding service backend.

There are available three sample service backend implementations:

Please note that this pre-release does not contain old C++98 generator anymore. The last version supporting old C++98 generator is the zserio v1.4.0.

The pre-release contains several fixes as well.

Fixes

#142 - Parameter used as an offset doesn't work
#162 - Ambiguous instantiate error in case of circular imports
#167 - Generated C++ code introduces resource leak in case of SQLite DB opening failure
#171 - Zserio Java generated code clashes with java standard types

New Features

#129 - Add bitmasks into zserio language
#169 - Redesign generated service interface

Improvements

#46 - Optimize AnyHolder inplace creation
#153 - Improve static analysis of Java code
#154 - Improve static analysis of C++ code
#155 - Improve static analysis of Python code
#172 - Remove generated annotation from Java generated code

Zserio v1.4.0

25 Feb 15:22
Compare
Choose a tag to compare

The main goal of this release is to publish

  • templates in the zserio language,
  • new instantiate keyword to support explicit template instantiations and
  • new zserio type extern to support proprietary extensions.

Zserio templates got inspiration from C++ class templates concept and borrowed syntax from Java generics.

Please note that all template instantiations are resolved during zserio compilation not to put any hurdle to generators and to support languages which do not have natively templates.

This release contains as well a change of the generated C++ API for optional members not to force applications to use internal zserio OptionalHolder abstraction.

This is the last release which contains the old C++ generator which can be invoked using command line argument '-cppStandard c++98'. However, please note that this old C++ generator does not support new zserio type extern.

Fixes

#148 - Choices with complicated selector does not work for C++ and Java
#151 - GRPC service endpoints are language dependent
#158 - Generated template file names too long
#161 - Instantiate type does not resolve subtypes

New Features

#70 - Add extern keyword into zserio language to support proprietary extensions
#144 - Add templates into zserio language
#150 - Add instantiate keyword into zserio language

Improvements

#146 - C++11: optional access unnecessary

Zserio v1.4.0-pre2

22 Nov 14:34
Compare
Choose a tag to compare
Zserio v1.4.0-pre2 Pre-release
Pre-release

The main goal of this pre-release is to publish

  • new instantiate keyword to support explicit template instantiations and
  • new zserio type extern to support proprietary extensions.

Fixes

#151 - GRPC service endpoints are language dependent

New Features

#70 - Add extern keyword into zserio language to support proprietary extensions
#150 - Add instantiate keyword into zserio language

Zserio v1.4.0-pre1

30 Oct 13:53
Compare
Choose a tag to compare
Zserio v1.4.0-pre1 Pre-release
Pre-release

The main goal of this pre-release is to publish templates in the zserio language to allow testing before main release.

Zserio templates got inspiration from C++ class templates concept and borrowed syntax from Java generics.

Please note that all template instantiations are resolved during zserio compilation not to put any hurdle to generators and to support languages which do not have natively templates.

This pre-release contains as well a change of the generated C++ API for optional members not to force applications to use internal zserio OptionalHolder abstraction.

Fixes

#148 - Choices with complicated selector does not work for C++ and Java

New Features

#144 - Add templates into zserio language

Improvements

#146 - C++11: optional access unnecessary

Zserio v1.3.0

30 Aug 05:14
Compare
Choose a tag to compare

The main goal of this release is to publish modernized C++ generator together with C++ runtime library which supports C++11 standard.

The following are main new features in C++11 generated code:

  • Scoped strongly typed enumerations
  • Field constructors using perfect forwarding
  • Move constructors
  • Move assignment operators
  • Zserio arrays mapped directly to STL vector
  • Zserio optional members mapped to zserio::OptionalHolder

For more information about generated C++11 code, please check Zserio C++ Quick Start Tutorial.

The old C++ generator is still supported and can be invoked using command line argument '-cppStandard c++98'. However, it's deprecated and can be removed anytime in the future.

The second goal of this release is to upgrade the grammar compiler ANTLR from version 2 to the newest version 4 which required a huge zserio core redesign.

The release contains several fixes as well.

Fixes

#107 - C++ and python generate wrong includes / imports for default package sources
#113 - Indexed offsets do not work in Python if code only for reader is generated
#114 - Wrong Python code for functions with the same name
#130 - Generated Python code fails during reading table row with NULL columns
#131 - Implicit array cannot have indexed offsets
#132 - Script build.sh is not working if project path contains spaces
#139 - Amalgamation source file is not generated for default package into directory '.'

New Features

#36 - optional support for initializer_list
#108 - Modern C++ Generator

Improvements

#121 - Generate __init__.py for each package
#123 - Upgrade ANTLR2 to the newest ANTLR4
#125 - cppcheck does not check C++ header files
#136 - Remove GRPC from c++98 emitter
#137 - Forbid ZSERIO prefix in all identifiers
#138 - Remove sum operator