Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Feb 3, 2026

This PR contains the following updates:

Package Change Age Confidence
node-opcua (source) 2.161.02.163.1 age confidence

Release Notes

node-opcua/node-opcua (node-opcua)

v2.163.1

Compare Source

v2.163.0: 🚀 Release Notes — v2.163.0

Compare Source

This release is a major step forward for DataType handling performance and OPC UA 1.05 compliance. It introduces a new lazy and parallel DataType extraction pipeline, significantly improving scalability for large and complex information models. In parallel, full support for OPC UA 1.05 subtyped structures and unions has been finalized, alongside multiple performance optimizations, correctness fixes, and test expansions.

✨ TL;DR

  • 🚄 Massive performance improvements for dynamic DataType discovery (lazy + parallel extraction)
  • 🧠 New Lazy DataType extraction strategy (default on client side)
  • 🧬 Full support for OPC UA 1.05 StructureWithSubtypedValues and UnionWithSubtypedValues
  • 🧪 Expanded test coverage for large DataType trees, continuation points, and reconnection edge cases
  • 🧹 Package updates and generated nodeset-type adjustments

🌟 Key Features & Enhancements

🧠 Lazy & Parallel DataType Extraction
  • 3ad017c Introduced a Lazy DataTypeExtractStrategy to efficiently handle very large DataType trees:

    • Pre-creates DataTypeFactory per namespace using readNamespaceArray
    • Avoids eager loading of all DataTypes
    • Adds strategy-aware session handling and extraction helpers
    • Extends tests to validate Auto, Force104, and Lazy strategies (datatype-manager)
  • 984510c Major performance refactor:

    • Parallel resolution of structure fields with Promise.all
    • Lazy on-demand DataType loading
    • Non-reentrancy guard to avoid duplicate network requests
    • Reduced session round-trips and improved batching (datatype-manager / client)
  • 57374f8 Prefetch dependent field DataTypes in parallel during schema extraction:

    • Restores eager extraction for server-side safety
    • Sets Lazy as the new default client strategy
    • Guarantees idempotency during parallel resolution (datatype-manager)

🧬 OPC UA 1.05 — Subtyped Structures & Unions

  • 4e02e64 Added full support for OPC UA 1.05 subtyped fields:

    • StructureWithSubtypedValues
    • UnionWithSubtypedValues
    • Proper parsing of AllowSubTypes
    • Correct encoding/decoding and cloning of ExtensionObjects
    • Comprehensive unit tests and XML fixtures (address-space / dynamic-extension-object)
  • 17ea9bb Fixed client-side creation of ExtensionObjects containing subtyped fields (client)

📌 Summary

Version 2.163.0 delivers substantial scalability gains for complex OPC UA servers and clients, especially those with large DataType graphs or OPC UA 1.05 models. Lazy, parallel extraction dramatically reduces startup time and network load while maintaining strict correctness and backward compatibility.

💙 Support the project

Consider joining the NodeOPCUA Subscription program
for professional support, or help sustain the project by sponsoring us on OpenCollective
.
Full Changelog: node-opcua/node-opcua@v2.162.0...v2.163.0

v2.162.0

Compare Source

🚀 Release Notes — v2.162.0

This release focuses on performance improvements, memory optimizations, and protocol robustness, with additional updates to OPC UA 1.05 nodesets, better TypeScript generation, and fixes in client-side extension object handling. Several hot paths (transport, secure channel, chunk manager, variant encoding) have been optimized to reduce allocations and improve throughput under load.

✨ TL;DR

  • Significant performance & memory optimizations in transport, secure channel, chunk manager, and variant encoding
  • Updated OPC UA 1.05 nodesets with smarter fallback for ComplexDataType handling
  • Fixed client-side ExtensionObject creation with subtyped fields
  • Improved TypeScript generator correctness for inherited generic members
  • Added tests and documentation for packet assembly and reconnection scenarios

⚡ Performance Improvements

  • 3ff99c3 — Avoid unnecessary buffer copies in the transport layer (transport)
  • 6347ba6 — Faster buffer encoding/decoding for Variants (variant)
  • 6339b87 — Reduce memory retention by not keeping raw message chunks unless performance monitoring is enabled (transport)
  • e99143f — Zero-copy padding removal and length reduction using Buffer.subarray (secure-channel)
  • 30cf813 — Optimize padding byte writing using Buffer.fill() (~10% throughput gain) (chunk-manager)

🧠 Protocol & Feature Enhancements

  • d1697eb — Detect ComplexDataType2017 profile to automatically force OPC UA 1.04 extraction when required (client / datatype extraction)
  • e62d0e9 — Update nodeset XML files to the latest OPC UA 1.05 revisions (nodesets)
  • 8343203 — Add documentation and tests for packet assembler (packet-assembler)

🐛 Bug Fixes

  • 17ea9bb — Fix client-side creation of ExtensionObjects containing subtyped fields (client)
  • 332fbed — Fix typo in “already used nonce” error message (server)
  • 7149387 — Fix inherited member type compatibility in the TypeScript generator (generator) 👉 Fixes GitHub issue #​1472

🧪 Tests & Tooling

  • e230cef — Add end-to-end tests exploring reconnection behavior after keepalive failures (end2end-test)
  • 50c0cf9 — Minor adjustment to run_all_mocha_tests.js (tests)

🧹 Maintenance & Cleanup

  • 4e06dc1 — Dependency updates
  • da12830 — Additional package updates
  • 67da20e — Improved warning messages
  • 415b89e — Version bump to v2.162.0

📌 Note

This release brings measurable gains in performance and memory efficiency, especially for high-throughput clients and servers, while continuing the transition toward OPC UA 1.05 compliance with robust backward-compatibility handling.

New Contributors

Full Changelog: node-opcua/node-opcua@v2.161.0...v2.162.0


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot changed the title fix(deps): update dependency node-opcua to v2.162.0 fix(deps): update dependency node-opcua to v2.163.0 Feb 7, 2026
@renovate renovate bot force-pushed the renovate/node-opcua-2.x branch from 9d17b80 to 3f2e05d Compare February 7, 2026 21:56
@renovate renovate bot changed the title fix(deps): update dependency node-opcua to v2.163.0 fix(deps): update dependency node-opcua to v2.163.1 Feb 9, 2026
@renovate renovate bot force-pushed the renovate/node-opcua-2.x branch from 3f2e05d to 4f9df17 Compare February 9, 2026 11:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants