an implementation of a OPC UA stack fully written in javascript and nodejs
Node-opcua is an full OPC-UA stack written in NodeJS.
Why NodeJS ?
Because nodeJs is a great framework to design asynchronous application.
$ npm install node-opcua
$ git clone https://github.com/node-opcua/node-opcua.git
$ cd node-opcua
$ npm init
$ node bin/simple_server
$ git clone https://github.com/node-opcua/node-opcua.git
$ cd node-opcua
$ npm init
$ node bin/simple_client.js -e "opc.tcp://opcserver.mAutomation.net:4841" -n="ns=1;s=EVR2.system.RTC_SEC"
- check out the API documentation
$ git clone git://github.com/node-opcua/node-opcua.git node-opcua
$ cd node-opcua
$ npm install
$ npm test
If you like the project, please 
| Transport | Status | Comment |
|---|---|---|
| UA-TCP UA-SC UA Binary | β | OPC.TCP - Binary |
| SOAP-HTTP WS-SC UA Binary | π | HTTP/HTTPS - Binary |
| SOAP-HTTP WS-SC UA XML | π | |
| SOAP-HTTP WS-SC UA XML-UA Binary | π |
node-opcua support sign & encrypt security policies
| Policy | Status | Comment |
|---|---|---|
| None | β | |
| Basic128Rsa15 | β | |
| Basic256 | β | |
| Basic256Sha256 | β |
| Authentication | Status | Comment |
|---|---|---|
| Anonymous | β | |
| User Mame Password | β | |
| X509 Certificate | π |
| Base Client Behaviour | β |
| AddressSpace Lookup | β |
| Attribute Read | β |
| DataChange Subscription | β |
| DataAccess | β |
| Discovery | β |
| Event Subscription | β |
| Method call | β |
| Historical Access | π |
| Advanced Type | β |
| Programming | π |
| Auditing | π |
| Redundancy | π |
| Discovery Service Set | ||
| FindServers() | β | |
| GetEndpoints() | β | |
| RegisterServer() | β | |
| Secure Channel Service Set | ||
| OpenSecureChannel() | β | |
| CloseSecureChannel() | β | |
| Session Service Set | ||
| CreateSession() | β | |
| CloseSession() | β | |
| ActivateSession() | β | |
| Cancel() | ||
| View Service Set | ||
| Browse() | β | |
| BrowseNext() | β | |
| TranslateBrowsePathsToNodeIds() | β | |
| RegisterNodes() | β | |
| UnregisterNodes() | β | |
| Attribute Service Set | ||
| Read() | β | |
| Write() | β | |
| HistoryRead() | π | |
| HistoryUpdate() | π | |
| MonitoredItems Service Set | ||
| CreateMonitoredItems() | β | |
| ModifyMonitoredItems() | β | |
| SetMonitoringMode() | β | |
| SetTriggering() | π | |
| DeleteMonitoredItems() | β | |
| Subscription Service Set | ||
| CreateSubscription() | β | |
| ModifySubscription() | β | |
| DeleteSubscriptions() | β | |
| Publish() | β | |
| Republish() | β | |
| TransferSubscriptions() | π | |
| Node Management Service Set | ||
| AddNodes() | π | |
| AddReferences() | π | |
| DeleteNodes() | π | |
| DeleteReferences() | π | |
| Query Service Set | ||
| QueryFirst() | π | |
| QueryNext() | π |
| Core Server | β |
| Data Access Server | β |
| Embedded Server | β |
| Nano Embedded Device Server | β |
| Micro Embedded Device Server | β |
| Standard DataChange Subscription Server | |
| Standard Event Subscription Server | |
| Standard UA Server | |
| Redundancy Transparent Server | π |
| Redundancy Visible Server | π |
| Node Management Server | π |
| Auditing Server | π |
| Complex Type Server |
This are the item we would like to achieve in the next version of the API.
- improved documentation
- Compliance testing and certification (CTT)
- HA Support : supporting the historizing service
- more tutorials
-
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 a issue








