Skip to content

Releases: ndsev/zserio

Zserio v2.18.0

03 Oct 07:26

Choose a tag to compare

Zserio Core 2.18.0

  • Enhanced to support missing enumeration cases in the choices
  • Improved Zserio Encoding Guide document
  • Improved Zserio Language Overview document
  • Improved license document to clarify licensing of user schemas and generated code

C++ Extension 1.3.0

  • Implemented the enhancement to SQL tables, which adds a new parameter columns to the read, write and update methods
  • Activated new warning -Wswitch-enum for all supported compilers (gcc, clang and MSVC)
  • Fixed includes in the runtime library to resolve compilation error using g++15
  • Fixed generated code when -withoutWriterCode and -withSetterCode is used

Java Extension 1.2.0

  • Implemented the enhancement to SQL tables, which adds a new parameter columns to the read, write and update methods
  • Fixed ByteStreamWriter and ByteStreamReader to allow serialisation/deserialisation of big blobs up to 2GB
  • Fixed JSON import to support fully the parameterized types

Python Extension 1.1.0

  • Implemented the enhancement to SQL tables, which adds a new parameter columns to the read, write and update methods

Fixes

#678 - The getBitPosition method in the ByteArrayBitStreamBase class may throw a java.lang.NegativeArraySizeException
#687 - JSON import fails for the byte parameterized types in Java
#691 - C++ compilation error with g++15 caused by including but using int64_t instead of std::int64_t
#709 - C++ is not compilable for parameterized types using -withSetterCode
#710 - non const class attributes for setting via const parameter

New Features

#566 - SQLite API: Make Row Reader more efficient and backward compatible
#711 - Missing enumeration switch-cases after activating gcc -Wswitch-enum

Improvements

#576 - Consider to update gtest to newer version
#677 - Improve Zserio Encoding Guide for packed arrays
#679 - Improve Zserio Language Overview document
#704 - Document unicode escape syntax
#712 - Clarification needed on licensing of user schemas and generated code

Zserio v2.17.0

24 Jul 12:01

Choose a tag to compare

Zserio Core 2.17.0

  • Enhanced implementation of Zserio templates to support generation of native templates

Improvements

#702 - Implement support for generating native templates

Zserio v2.16.1

27 Jun 10:55

Choose a tag to compare

Zserio Core 2.16.1

  • Enhanced extension loading to accept all extensions located in the working directory (directory where the zserio.jar or zserio_core.jar is located)

C++ Extension 1.2.1

  • Implemented new command line option -withSettersCode|-withoutSettersCode which enables/disables generation of the setters and additional constructors
  • Fixed generation of the choices with only default case
  • Fixed generation of the optional strings with default value
  • Fixed generation of the extended optionals with default value

Java Extension 1.1.4

  • Fixed generation of the optional uint32_t with default value

Python Extension 1.0.5

  • Dropped support of Python 3.8
  • Introduced support for Python 3.13

Fixes

#694 - Wrong generated C++ code for choices with only default case
#699 - Wrong generated C++ code for optional strings with default value
#700 - Wrong generated C++ code for extended optionals with default value
#701 - Wrong generated Java code for optional uint32_t with default value

New Features

#690 - Zserio option without writing methods is disabling as well generation of setter methods

Improvements

#674 - Consider to load jar extensions automatically from the working directory
#688 - Drop support of Python 3.8
#689 - Provide support for Python 3.13

Zserio v2.16.0

05 Dec 13:48

Choose a tag to compare

Zserio Core 2.16.0

C++ Extension 1.2.0

  • Implemented left shift operator using multiplication for signed values
  • Fixed type info expressions which contain strings
  • Fixed choice tag name clashing in packed unions and choices

Java Extension 1.1.3

  • Fixed choice tag name clashing in packed unions and choices

Doc Extension 1.0.4


Fixes

#667 - Choice tag name clashing in ZserioPackingContext
#668 - Doc Strings Missing for 'extend' Fields in HTML Documentation
#675 - Some type info expressions are not correctly generated when the expression contains strings

New Features

#670 - Extend lengthof operator to work with strings

Improvements

#671 - Consider to implement left shift operator by multiplication in C++

Zserio v2.15.0

30 Oct 08:10

Choose a tag to compare

Zserio Core 2.15.0

  • Improved warning message for optional fields
  • Disabled most of the expressions in offsets
  • Fixed checking of duplicated offsets
  • Fixed checking of offset usage in expressions

C++ Extension 1.1.0

  • Implemented generation of parsing information code using new command line option -withParsingInfoCode
  • Improved generated const literals to be constexpr
  • Fixed possibility of passing large parameters by value for packed arrays
  • Fixed violations of several MISRA C++ 2023 rules
  • Fixed auto optional fields generated without writer code using command line option -withoutWriterCode

Java Extension 1.1.2

  • Improved documentation
  • Fixed auto optional fields generated without writer code using command line option -withoutWriterCode

Python Extension 1.0.3

  • Improved documentation
  • Fixed auto optional fields generated without writer code using command line option -withoutWriterCode

Fixes

#168 - Improve offset expression checking
#571 - Improve warning message for optional fields
#586 - Fix MISRA C++ 2023 rule 8.2.5 "reinterpret_cast shall not be used"
#605 - Fix MISRA C++ 2023 rule 7.0.5 "Integral promotion or the usual arithmetic conversions shall not change the type signedness"
#607 - Fix MISRA C++ 2023 rule 0.1.2 "The value returned by a function shall be used"
#609 - Fix MISRA C++ 2023 rule 6.4.1 "A variable declared in an inner scope shall not hide a variable declared in an outer scope"
#624 - Unexpected error message when using '-withReflectionCode'
#627 - Fix MISRA C++ 2023 rule 8.2.6 "An object with integral, enumerated, or pointer to void type shall not be cast to a pointer type"
#628 - Fix MISRA C++ 2023 rule 7.0.3 "The numerical value of a character shall not be used"
#630 - Fix MISRA C++ 2023 rule 7.0.4 "The operands of bitwise operators and shift operators shall be appropriate"
#631 - Fix MISRA C++ 2023 rule 6.7.1 "Local variables shall not have static storage duration"
#632 - Fix MISRA C++ 2023 rule 13.3.3 "The parameters in all declarations or overrides of a function shall either be unnamed or have identical names"
#633 - Fix MISRA C++ 2023 rule 12.3.1 "The union keyword shall not be used"
#634 - Fix MISRA C++ 2023 rule 28.6.2 "Forwarding references and std::forward shall be used together"
#635 - Fix MISRA C++ 2023 rule 5.10.1 "User-defined identifiers shall have an appropriate form"
#637 - Fix MISRA C++ 2023 rule 15.0.1 "Special member functions shall be provided appropriately"
#639 - Fix MISRA C++ 2023 rule 19.2.2 "The #include directive shall be followed by either a or "filename" sequence"
#640 - Offsets should not be allowed in expressions
#645 - Duplicated offsets should be disabled
#654 - Optional Fields without Writer Coder Result in Invalid Generated Code
#657 - Big Parameters passed by value (more than the threshold value of 128 bytes)
#660 - Fix MISRA C++ 2023 rule 7.11.2 "An array passed as a function argument shall not decay to a pointer"

New Features

#652 - Emit Source Positions for Compounds

Improvements

#509 - All generated c++ const literals should be constexpr
#597 - Docs: Improve README.md documentation for Java/Python/HTML/XML generator
#618 - Update documentation of bitmask types that they does not have to be always prefixed
#641 - Disallow most of the expressions in offsets
#665 - Separate test schemas to the different repository core enhancement

Zserio v2.14.1

19 Jul 07:23

Choose a tag to compare

C++ Extension 1.0.2

  • Fixed checking of the number of bits for dynamic bit fields in runtime library
  • Fixed moving of the variables in the reflectable in runtime library
  • Fixed MSVC warnings
  • Fixed MISRA C++ 2023 rules 9.3.1 and 0.1.2
  • Fixed SonarCloud rules for bitwise operators
  • Fixed all sign-coversion warnings reported by gcc compilers

Java Extension 1.1.1

  • Fixed checking of the number of bits for dynamic bit fields in runtime library
  • Fixed checking of the compound parameters in packed arrays

Python Extension 1.0.2

  • Fixed checking of the number of bits for dynamic bit fields in runtime library
  • Fixed enumerations in runtime library to solve the backward incompatible change in EnumType implementation of the new Python version 3.12.3

Fixes

#513 - Runtime libraries don't check numBits properly during serialization / deserialization
#587 - MSVC produces some warnings in CI builds
#588 - Benchmarks do not compile with MinGW in Debug mode (CI build)
#589 - Set cpp allocator tests do not work in CI build with MSVC in Debug
#595 - Python runtime tests fail for new Python 3.12.3
#599 - C++ runtime tests fail for C++11 using MinGW 7.5.0
#606 - Fix MISRA C++ 2023 rule 9.3.1 "The body of an iteration-statement or a selection-statement shall be a compound-statement"
#607 - Fix MISRA C++ 2023 rule 0.1.2 "The value returned by a function shall be used"
#614 - Check for minimum C++ standard version doesn't work
#616 - Java doesn't check compound parameters which are used deep in packed arrays
#621 - Local variables in C++ runtime reflectable are not automatically moved
#622 - Solve SonarCloud rule "Results of ~ and << operations on operands of underlying types unsigned char..."
#623 - Solve SonarCloud rule "Bitwise operators should not be applied to signed operands"
#625 - Fix all sign-conversion warnings reported by gcc compiler

Improvements

#620 - Improve documentation about C++ custom memory management

Zserio v2.14.0

30 Apr 12:58

Choose a tag to compare

Zserio Core 2.14.0

  • Reformatting of the Java sources according to the clang-format rules

C++ Extension 1.0.1

  • Support for Conan 2.x deployment
  • Official support of the C++17 standard for clang, minGW and MSVC compilers
  • Updating documentation (serialization API, additional API)
  • Replacement of the cppcheck and CodeQL static analysis tools by the SonarCloud
  • Fixed all conversion warnings fired from old gcc 8.0 compiler
  • Fixed a bug that caused the JSON reader to fail when encountering empty bytes or external fields
  • Fixed a bug that caused the JSON reader to fail when encountering floats in scientific notation
  • Reformatting of the C++ and Java sources according to the clang-format rules

Java Extension 1.1.0

  • Partial implementation of Zserio subtypes in the generated Java code
  • Fixed a bug that caused the JSON reader to fail when encountering empty bytes or external fields
  • Fixed a bug that caused the JSON reader to fail when encountering floats in scientific notation
  • Reformatting of the Java sources according to the clang-format rules

Python Extension 1.0.1

  • Fixed a bug that caused the JSON reader to fail when encountering empty bytes or external fields
  • Fixed a bug that caused the JSON reader to fail when encountering floats in scientific notation
  • Official support of Python 3.12
  • Reformatting of the Java sources according to the clang-format rules
  • Reformatting of the Python sources according to the black rules

Doc Extension 1.0.1

  • Fixed a bug that caused generation failure when choices have cases expressed by constants
  • Reformatting of the Java sources according to the clang-format rules

XML Extension 1.0.1

  • Reformatting of the Java sources according to the clang-format rules

Fixes

#559 - Json: Scientific notation decode error
#568 - MSVC 2017 Conformance Mode does not compile C++ runtime library
#581 - JSON reader fails in case of empty extern field
#582 - JSON reader fails in case of empty bytes field
#586 - Fix MISRA C++ 2023 rule 8.2.5 "reinterpret_cast shall not be used"
#592 - When the parameter of choice type is constant, document generation fails
#593 - Fix MISRA C++ 2023 rule 15.1.3 "Conversion operators and constructors that are callable with a single argument shall be explicit"
#596 - C++ runtime tests fail for C++17 using MSVC v142

New Features

#533 - Zserio Conan 2.x Deployment and Integration of CMake Helper
#574 - Add SonarCloud support to scan C++ runtime
#578 - Consider to implement subtype classes in Java

Improvements

#82 - Modernize CMake configuration
#333 - add_zserio_module cmake function
#504 - Consider to remove cppcheck static analysis tool
#558 - Add clang-format tool to check all C++ sources
#560 - Provide Zserio CMake helper for easier integration to CMake based projects
#561 - Add clang-format tool to check all Java sources
#563 - Add readability-identifier-length rule to clang-tidy tool
#567 - Add support for Python 3.12
#569 - Docs: Add more info to EOF exception
#573 - Enhance C++ configuration to support compilation using C++17 standard
#575 - Consider to split GitHub Actions according to the generators
#579 - Enable conversion warnings for gcc compiler
#583 - Docs: Add section about PMR allocators in C++ documentation
#594 - Consider to remove CodeQL queries for AUTOSAR
#603 - Add black tool to check all Python sources

Zserio v2.13.0

14 Dec 08:34

Choose a tag to compare

Zserio Core 2.13.0

  • New Zserio Compatibility Guide which defines
    • New version numbers for all supported Zserio extensions
    • New binary encoding version
    • New JSON encoding version
  • Official support of Java 11 and Java 17

C++ Extension 1.0.0

  • Introducing of new extension version together with binary and JSON encoding versions
  • Size optimization of generated objects which are not packed in the schema
  • Brand new less than operator using this ordering
  • Fix of move constructors for parameterized types
  • Fix of JSON bitmasks reading
  • Fix problems related to using-based function references in runtime library for MSVC (C++20)
  • Official support of MSVC 2019 and clang 14

Java Extension 1.0.0

  • Introducing of new extension version together with binary and JSON encoding versions
  • Size optimization of generated objects which are not packed in the schema
  • Fix of new SpotBugs 4.8.2 issues
  • Official support of Java 11 and Java 17
  • Potential API incompatibilities with previous version:
    • All generated classes are now declared as final because of SpotBugs CT_CONSTRUCTOR_THROW issue

Python Extension 1.0.0

  • Introducing of new extension version together with binary and JSON encoding versions
  • Size optimization of generated objects which are not packed in the schema

Doc Extension 1.0.0

  • Introducing of new extension version

XML Extension 1.0.0

  • Introducing of new extension version

Fixes

#532 - Move constructor of parameterized types can throw
#536 - Cannot compile zserio using "building by hand" instructions: javadoc error
#538 - Fix problems related to using-based function references (C++ 20)
#547 - C++ fails to read JSON bitmask with more than 2 values

New Features

#288 - Add less than operator to c++ emitted code
#456 - zserio compatibility management and mechanisms

Improvements

#516 - Generated objects which are not packed does not need to define packing interface
#535 - Update officially support clang compiler to version 14.0.6
#544 - Add official support for MSVC 2019
#545 - Add official support for Java 17
#549 - Add official support for Java 11
#551 - Upgrade SpotBugs version from 3.1.12 to 4.8.2
#552 - Solve SpotBugs issue UWF_UNWRITTEN_FIELD in generated code
#553 - Solve SpotBugs issue CT_CONSTRUCTOR_THROW in generated code

Zserio v2.12.0

05 Oct 11:28

Choose a tag to compare

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

The release contains as well new documentation:

This release contains the following improvements in generated code:

  • Optimization of memory allocations during parsing of huge packed arrays in C++, Java and Python code
  • Checking of correctness of C++ runtime library version during compilation in C++ code

This release contains the following improvements in runtime libraries:

  • Improving runtime test coverage in C++
  • Improving arrays implementation in C++

Fixes

#506 - Fix C++ warning in generated SQL table code with validation

New Features

#482 - Solve backward compatible extension at the end of top level structures
#486 - New keywords for compatibility: removed, deprecated
#528 - Add new warning for packed unions which has no packable fields

Improvements

#13 - initializeOffsets method does not resize offset arrays
#328 - Schema evolution in zserio
#377 - Consider to create separated Zserio encoding guide documentation
#406 - Define and document supported tool chains for all target languages
#464 - The value ranges of the varsize are 2^36 (68,719,476,736)
#471 - Add a description about the JSON mapping used by zserio
#485 - Investigate GitHub analysis tool which can check Autosar C++
#500 - zserio logo not suitable for dark mode
#503 - Improve C++ runtime test coverage
#508 - Improve arrays implementation in C++ runtime library
#519 - ZSERIO_RUNTIME_64BIT looks obsolete in 2.11.0
#520 - zserio_ant_task.compile jdk17 deprecation on AccessController
#524 - Optimize memory allocations for packed arrays
#525 - Enhance unpackable warning to report clearly that packed keyword is ignored
#529 - Check correct C++ runtime library version during compilation

Zserio v2.11.0

11 May 13:42

Choose a tag to compare

The main goal of this release is to improve Functional Safety in C++ generator. This covers:

This release contains the following improvement in generated code:

  • Adding new method to convert enum string to value in generated C++, Java and Python code

This release contains as well two important bug fixes for C++ generator:

  • Fix allocation strategy not to fragment allocated memory
  • Fix move/copy constructors not to keep dangling pointers in generated objects

Fixes

#479 - Allocated memory can be fragmented during parsing in C++
#501 - Dangling pointer after move/copy constructor of dynamic bit field arrays

New Features

#487 - Add method to retrieve enum value from enum string directly
#492 - Add clang-tidy to the C++ static code analysis c++

Improvements

#491 - Provide test coverage statistics in release assets enhancement
#493 - Documentation on when C++ exceptions are thrown