npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

zsbonc-node-opcua

v2.33.0

Published

pure nodejs OPCUA SDK

Readme

node-opcua

node-opcua is an implementation of an OPC UA stack fully written in Typescript for NodeJS.

NPM download NPM version Build Status Build status HitCount lerna

Coverage Status Code Climate

OPC UA Gitter chat

The Book

Node-opcua is the OPC-UA stack running on NodeJS.

Why NodeJS ?

Because nodeJs is a great framework to design asynchronous applications.

Getting started

installing node-opcua as a node package

$ mkdir mytest
$ cd mytest
$ npm init 
$ npm install node-opcua --unsafe-perms
$ # create your first app.js file!

installing node-opcua samples as a node package

$ mkdir myserver
$ cd myserver
$ npm init
$ npm install node-opcua-samples --unsafe-perms
$ ./node_modules/.bin/simple_server

or

$ ./node_modules/.bin/simple_client  -e "opc.tcp://opcserver.mAutomation.net:4841" -n="ns=1;s=EVR2.system.RTC_SEC"

or

$ ./node_modules/.bin/simple_client  -e "opc.tcp://opcuademo.sterfive.com:26543" 

Minimum nodejs requirement

  • nodejs version 10.23 or above

API Documentation

tutorials and guided examples

The Book

Getting professional support

NodeOPCUA is developed and maintained by sterfive.com.

To get professional support, consider subscribing to the node-opcua membership community:

Professional Support

or contact sterfive for dedicated consulting and more advanced support.

:heart: Supporting the development effort - Sponsors & Backers

If you like node-opcua and if you are relying on node-opcua in one of your projects, please consider becoming a backer and sponsoring us, this helps us to maintain a high-quality stack and constant evolution of the stack.

If your company would like to participate and influence the development of future versions of node-opcua please contact sterfive.

Road-map

Those are the items we would like to achieve in the next version of the API.

  • improved documentation
  • Compliance testing and certification (CTT)
  • Pub-sub support
  • support for redundancy
  • more tutorials

Advanced topics

installing node-opcua from source

running the demo server from source

 $ git clone https://github.com/node-opcua/node-opcua.git
 $ cd node-opcua
 $ npm install -g pnpm 
 $ pnpm install
 $ pnpm recursive install
 $ pnpm build
 $ node packages/node-opcua-samples/bin/simple_server

running the demo client from source

 $ git clone https://github.com/node-opcua/node-opcua.git
 $ cd node-opcua
 $ npm install -g pnpm 
 $ pnpm install
 $ pnpm recursive install
 $ pnpm build
 $ node packages/node-opcua-samples/bin/simple_client.js -e "opc.tcp://opcserver.mAutomation.net:4841" -n="ns=1;s=EVR2.system.RTC_SEC"
    

Tutorials

Contributing

$ git clone git://github.com/node-opcua/node-opcua.git
$ cd node-opcua
$ npm install -g pnpm 
$ pnpm install
$ pnpm recursive install
$ pnpm build

NPM

Project Stats

Supported Features

| Service | | | |-----------------------------|-----------------------|---------------------------| | Discovery Service Set | | | | |FindServers() | :white_check_mark: | | |GetEndpoints() | :white_check_mark: | | |RegisterServer() | :white_check_mark: | | |RegisterServer2() | :white_check_mark: | | |FindServersOnNetwork() | :white_check_mark: | | Secure Channel Service Set | | | | |OpenSecureChannel() | :white_check_mark: | | |CloseSecureChannel() | :white_check_mark: | | Session Service Set | | | | |CreateSession() | :white_check_mark: | | |CloseSession() | :white_check_mark: | | |ActivateSession() | :white_check_mark: | | |Cancel() | | | View Service Set | | | | |Browse() | :white_check_mark: | | |BrowseNext() | :white_check_mark: | | |TranslateBrowsePathsToNodeIds() | :white_check_mark:| | |RegisterNodes() | :white_check_mark:| | |UnregisterNodes() |:white_check_mark:| | Attribute Service Set | || | |Read() |:white_check_mark:| | |Write() |:white_check_mark:| | |HistoryRead() |:waxing_crescent_moon:| | |HistoryUpdate() |:waxing_crescent_moon:| |MonitoredItems Service Set | || | |CreateMonitoredItems() |:white_check_mark:| | |ModifyMonitoredItems() |:white_check_mark:| | |SetMonitoringMode() |:white_check_mark:| | |SetTriggering() |:new_moon:| | |DeleteMonitoredItems() |:white_check_mark:| |Subscription Service Set | || | |CreateSubscription() |:white_check_mark:| | |ModifySubscription() |:white_check_mark:| | |DeleteSubscriptions() |:white_check_mark:| | |Publish() |:white_check_mark:| | |Republish() |:white_check_mark:| | |TransferSubscriptions()|:white_check_mark:| |Node Management Service Set | || | |AddNodes() |:new_moon:| | |AddReferences() |:new_moon:| | |DeleteNodes() |:new_moon:| | |DeleteReferences() |:new_moon:| |Query Service Set | || | |QueryFirst() |:new_moon:| | |QueryNext() |:new_moon:|

| | | | |----------------------------------------|:------------------------:|--------------------| | Transport Protocol | | | | Transport | Status | Comment | | UA-TCP UA-SC UA Binary | :white_check_mark: | OPC.TCP - Binary |
| SOAP-HTTP WS-SC UA Binary | :new_moon: | HTTP/HTTPS - Binary|
| SOAP-HTTP WS-SC UA XML | :new_moon: | |
| SOAP-HTTP WS-SC UA XML-UA Binary | :new_moon: | |
| Security Policies | | | | Policy | Status | Comment | | None | :white_check_mark: | |
| Basic128Rsa15 | :white_check_mark: | deprecated in 1.04 |
| Basic256 | :white_check_mark: | deprecated in 1.04 |
| Basic256Sha256 | :white_check_mark: | |
| Authentication | Status | Comment | | Anonymous |:white_check_mark: | | | User Name Password |:white_check_mark: | | | X509 Certificate |:white_check_mark: | | | client facets | | | | Base Client Behaviour |:white_check_mark: | | | AddressSpace Lookup |:white_check_mark: | | | Attribute Read |:white_check_mark: | | | DataChange Subscription |:white_check_mark: | | | DataAccess |:white_check_mark: | | | Discovery |:white_check_mark: | | | Event Subscription |:white_check_mark: | | | Method call |:white_check_mark: | | | Historical Access |:first_quarter_moon: | | | Advanced Type |:white_check_mark: | | | Programming |:new_moon: | | | Auditing |:first_quarter_moon: | | | Redundancy |:new_moon: |Sponsors wanted | | server profiles | | | | Core Server | :white_check_mark: | | | Data Access Server | :white_check_mark: | | | Embedded Server | :white_check_mark: | | | Nano Embedded Device Server | :white_check_mark: | | | Micro Embedded Device Server | :white_check_mark: | | | Standard DataChange Subscription Server| :white_check_mark: | | | Standard Event Subscription Server | :white_check_mark: | | | Standard UA Server | :white_check_mark: | | | Redundancy Transparent Server | :new_moon: |Sponsors wanted | | Redundancy Visible Server | :new_moon: |Sponsors wanted | | Node Management Server | :new_moon: |Sponsors wanted | | Auditing Server | :first_quarter_moon: | | | Complex Type Server | :white_check_mark: |(sponsored) | | Session Diagnostics | :white_check_mark: | (sponsored)| | Subscription Diagnostics | :white_check_mark: | (sponsored)| | Alarms & Conditions | :white_check_mark: | (sponsored)| | Pub & Sub | :new_moon: |Sponsors wanted |

Feedback

  • if you're using node-opcua in one of your project, please feel free to leave a comment and a quick description in the wiki

  • if you have a particular wish or found a issue, let us known and create an issue