Fork me on GitHub

Unlocking the Full Potential of OPC UA with TypeScript and NodeJS.

 100% Asynchronous

NodeOPCUA takes advantage of the asynchronous nature of node.js, creating highly responsive applications.

import OPCUAServer from "node-opcua";

const server = new OPCUAServer({});
await server.start();

console.log("Server is now listening ... ( press CTRL+C to stop) ");
await new Promise((resolve) => process.once("SIGINT",resolve));

await server.shutdown();

  High Quality

NodeOPCUA has been developed using TDD and benefits from more than 3500 unit tests and 93% code coverage.

NodeOPCUA uses GitHub Actions as a continuous integration service.

  Coverage Status

NPM version

 Open-Source Constantly Evolving

With the Perpetual Beta model, innovation never stops.

We use Perpetual Beta model to ensure that the core model of NodeOPCUA is constantly improving and tested by the community. We release an new enhanced version every 2 weeks in average.

NPM download - server NPM download - server -total

NPM download - client NPM download - client -total

Sponsor our  
 Open Collective initiative

  Stability & Support with Pro Membership

When industry demands reliability, the Professional Edition delivers.

Are you using NodeOPCUA for your commercial business ? The Professional Edition offers superior uptime, dedicated support, and robust updates. Switch to the NodeOPCUA Membership Subscription for strategic reliability and advanced NodeOPCUA capabilities in your commercial product.

Subscribe to  
 Professional Membership

 Live documentation

NodeOPCUA will benefit from a comprehensive SDK API documentation , numerous end-to-end functional tests, and a set of practical examples to help you learn how to use it.

 Learn by the Book

NodeOPCUA by example - Edition 2024 is the best start to place and learn how to write stunning applications.

 NodeOPCUA needs you !

we welcome funding sponsors & volunteers to help improving code & documentation.

 complement Node-OPCUA with professional Libraries

Elevate NodeOPCUA with Sterfive's professional modules.

Designed for top-tier performance and compliance, they transform NodeOPCUA from a solid open-source base into an unmatched industrial IoT powerhouse..

Our professional modules are crafted for unparalleled performance and compliance.

  • Exclusive Access: Available only to NodeOPCUA Profession Membership Subscription holders.
  • Cost-Effective: Yearly license fee per product line.
  • Ease of Integration: Directly from Sterfive's private npm registry.
  • Transparency: Optional source access available.

Get a quote.
Contact   !

 See below 

Opcua Modeler

Design your own OPCUA Model and companion specification using this revolutionary modeler.

Low-Code Solution With OPC UA Modeler, you can define complex models without programming thanks to our powerful YAML syntax.

Version Control friendly Easily integrate modifications and revisions to your model within your SCM (git)

Ideal for Companion Specifications OPC UA Modeler is the perfect tool for creating your own companion specifications

Want to know more ?
Contact   !

OPC UA for NodeRed

Professional OPCUA Node for your NodeRed environments

Efficient Data Operations: Read, write, browse, monitor, and explore UAVariables and UANodes with precision and ease.

Robust and Reliable: Optimized for complex server environments

Designed for Professional Use:Supports multiple connections and efficient use of server resources, including transaction optimization.

Want to know more ?
Contact   !

@sterfive/file-transfer

This package provides an implementation of FileDirectoryType as per OPCUA File Transfer specification as per OPCUA 1.0.4 part 5 Annex C (page 99).

Client Side
  • accessing a FileDirectory node with ease from a node-opcua client
  • navigate files and folder recursively
  • action standard OPCUA Method to manipulate files and folder using
Server Side
  • creating a FileDirectory node with a single line of code
  • automatically monitor file system changes and reflects them in the OPCUA Tree
  • manage permission
  • use standard file system or memfs

@sterfive/node-opcua-pubsub

implement the OPCUA PubSub specification Part 14.

Client:
  • Extension to interact with Server/PublishSubscribe objects.
  • Administer a server's publish & subscribe objects.
  • Handles connections, Published DataSet, WriterGroup, ReadGroup.
Server:
  • Adds upport using one line of code.
  • Fully implements the PublishSubscribe object.
  • Provides MQTT-JSON transport.
  • MQTT connectors compatible with generic broker, AWS, GoogleCloud, or Azure.

@sterfive/node-opcua-gds

implement the OPCUA GDS specification Part 15 for advance security, certificate management and device provisioning.

Client:
  • Administers server certificates.
  • Handles certificate renewal and management via OPCUA.
  • Interacts with any compliant GDS Server.
Server:
  • Extends node-opcua server with GDS support.
  • Manages pull and push certificates.
  • Easily integrates with a single line of code.

@sterfive/optimized-client

Improve the performance of the OPCUA client by up 200%.

  • Handles server limits & continuation points seamlessly
  • Ideal for large address-space from 1000 to 10 millions nodes
  • Automaticaly groups requests to minimize network transactions
  • Automatically pauses and retries commands based on connection status.

@sterfive/crawler

A crawler that browse OPCUA servers efficiently and collect data from them.

@sterfive/opcua-web-prowy

use the well-known node-opcua Client API from within a web-browser. Reuse same code for nodejs and for the browse to manipulate the address-space.

Creating a simple Server

check this example to see an simple OPCUA server that exposes 3 simple variables.

View Code Read Tutorial

Creating a simple Client

check this example to see an simple OPCUA client that attempts to connect to a OPCUA server, print the end point and browse some variables. (Typescript)

View Code Read Tutorial

Creating a virtual Weather Station OPC/UA Server

In this tutorial, we will use a REST API to access free weather data from cities around the world and expose them though a OPC/UA server.

Read tutorial

Creating a HTML Dashboard to monitor a

check this example to see an simple OPCUA client that attempts to connect to a OPCUA server, print the end point and browse some variables.

View Code Read Tutorial

 Submit an issue or a suggestion

If you find an issue or have any suggestions you can submit them here and get support from the community.

 Fork and contribute

If you find an issue in the documentation or in the code, you can fork and send a pull request to the master branch.

  Become a sponsor

Companies that uses Node-opcua are encouraged to make a voluntary contribution.

The world now runs on open source. None of it would be possible without the devoted team that push the technology forward.

  Request    support

Want professional support and fast anwser to your support ? Contact us !

we help you accelerate your project and reduce your risk.

The project repositories

node-opcua
  • Status updating...

Follow us