[Announcement] v1.5.8 Release

17 views
Skip to first unread message

Julius Pfrommer

unread,
Sep 6, 2026, 4:26:05 PMSep 6
to open...@googlegroups.com
Dear all,

There is now a maintenance release v1.5.8 for the currently "stable" 1.5 release series.

The commit hash of the release is e6a35ddc4c80d6f948af3f046ad942b4c9822549.

The release notes are below.
Thanks to everybody whose effort contributed to this release.

Regards,
Julius Pfrommer

Dr. Julius Pfrommer
General Manager | o6 Automation GmbH
Rintheimer Straße 23, 76131 Karlsruhe

—————————————————

This open62541 release v1.5.8 is the eighth maintenance release of the 1.5 release series.

open62541 (http://open62541.org) is an open source implementation of OPC UA (OPC Unified Architecture / IEC 62541) written in the C language. The library is usable with all major compilers and provides the necessary tools to implement dedicated OPC UA clients and servers, or to integrate OPC UA-based communication into existing applications. The open62541 library is platform independent: All platform-specific functionality is implemented via exchangeable plugins for easy porting to different (embedded) targets.

open62541 is licensed under the Mozilla Public License v2.0 (MPLv2). This allows the open62541 library to be combined and distributed with any proprietary software. Only changes to the open62541 library itself need to be licensed under the MPLv2 when copied and distributed. The plugins, as well as the server and client examples are in the public domain (CC0 license). They can be reused under any license and changes do not have to be published.

Important changes compared to the previous v1.5.7 release include:

  • core: Allow datatypes to be self-referential via optional or array members
  • core: XML en/decoding avoids pointer arithmetic during size calculation
  • core: Decode XML character references correctly
  • core: Reject overflowing XML decoder sizes
  • core: Check async result allocation arithmetic
  • core: Count final chunks against the receive limit
  • core: Validate asymmetric OPN header bounds
  • core: Separate async cancellation operation types
  • core: Make JSON token overflow guard portable
  • core: Reject overflowing array helper sizes
  • core: Reject overflowing JSON decoder allocations
  • core: Reject overflowing binary array allocations
  • core: Validate ExtensionObject array length
  • core: Use per-entry lengths for TCP/UDP address arrays
  • core: Don't pass the empty-array sentinel to realloc when appending
  • core: Decode XML union values
  • core: Give empty structure datatypes storage
  • core: Preserve self references in datatype descriptions when copying
  • server: Move monitored items on node replacement
  • server: Distinguish node copies from editable replacements
  • server: O(1) MonitoredItem removal via the intrusive LIST macros
  • server: Avoid cache-sized FindServersOnNetwork stack use
  • server: Handle reentrant monitored item deletion
  • server: Lookup tree for MonitoredItems to prevent accidentally quadratic runtime (#7884)
  • server: Allow local MonitoredItem deletion in callbacks
  • server: Emit LIFECYCLE_STOPPED instead of duplicate LIFECYCLE_STOPPING
  • server: Accept detached methods with a warning
  • server: Consider all hierarchical parents
  • server: Attribute write uses internal custom datatypes
  • server: Skip incompatible VariableType defaults
  • client: Validate results in new high-level helpers
  • client: Do not run the connectivity check before the Session is activated
  • client: Validate service result before reading result arrays
  • pubsub: Reject incomplete RawData metadata
  • pubsub: Reject invalid UADP security headers
  • pubsub: Harden transport and message encoding
  • pubsub: Fix EtherType slot, VLAN ID 3, MQTT keepalive, calloc checks, frame limit, UDP port init
  • pubsub: Validate MQTT reader address
  • pubsub: Fix JSON PublisherId encoding and SequenceNumber/Status types
  • pubsub: Reject oversized DSMs and fix heartbeat encode/decode asymmetry
  • pubsub: Bound invalid-DSM skip against remaining buffer
  • pubsub: Fix Eth send freeing interior pointer to heap
  • pubsub: Fix MQTT broker-connection reuse comparing params to itself
  • pubsub: Roll back failed AddConnection calls
  • pubsub: Handle zero-padding inside fixed-size raw strings
  • util: Map numeric QualifiedName namespaces
  • arch: Use per-entry address lengths in new backends
  • arch: Fix/lwip netif lookup 1.5
  • plugins: Use file extension for certificates and CRLs (#8315)
  • plugins: Prevent UAF in memory backend range-limited history reads
  • deps: Yxml supports content fragment parsing

Diff stat: 104 files changed, 4850 insertions(+), 595 deletions(-)
Diff stat in /include and /src: 43 files changed, 1254 insertions(+), 405 deletions(-)

New features and major changes compared to the previous 1.4 release series include:

  • core: JSON de/encoding according to the OPC UA 1.05 specification
  • core: XML de/encoding of Variants (also with multi-dimensional arrays) and structure-types
  • core: UA_String_format with shorthands to print OPC UA builtin types
  • arch: Support for FreeRTOS (using the lwip EventLoop)
  • arch: Support for QNX
  • arch: Support for Zephyr
  • server: Support for "local" Event-MonitoredItems
  • server: Extended async operations (read/write/call)
  • server: Improved value source API for VariableNodes
  • server: Implement CertificateGroup handling
  • server: Support for GDS push operations
  • client: Transparent mapping between local and remote namespace-indices
  • client: Automatically read the NamespaceArray during connect (add to the namespace mapping)
  • client: Support for Event-MonitoredItems
  • client: All async service APIs are typed
  • client: Load DataTypeDefinitions from the server at runtime
  • pubsub: Support for manual de/encoding of PubSub messages
  • pubsub: Custom state machine for PubSubComponents to integrate communication backends
  • pubsub: Public API to compute offset tables for fixed Network-/DataSetMessages
  • pubsub: Improved loading of PubSub configurations from a (binary) file
  • pubsub: Initial support for SKS
  • nodeset-compiler: Use the native XML decoding to parse attributes at runtime
  • util: Query language (and parser) for EventFilter, RelativePath, etc.
  • util: Convert DataTypeDefinition into UA_DataType (internal representation)
  • eventloop: EventLoop can be cancelled to immediately return from a "poll-sleep"
  • eventloop: Option to limit the number of sockets open at the same time
  • eventloop: Support for lwip-based EventLoop
  • plugins: Crypto PKI/SecurityGroup with a file-system storage backend
  • plugins: Support for ECC-based SecurityPolicies (OpenSSL only)
  • tools: "Shell mode" for the ua-cli terminal client

Reply all
Reply to author
Forward
0 new messages