Skip to content

an implementation of a OPC UA stack fully written in javascript and nodejs - http://node-opcua.github.io/

License

Notifications You must be signed in to change notification settings

crispinboylan-int/node-opcua

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

node-opcua

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

NPM download NPM version

Node.js CI

Build status 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 14 or above

tutorials and guided examples

The Book. This book provides a large number of practical and ready-to-use and fully documented example. It's the best starting point to learn about node-opcua.

Sponsors & Backers

The funding of node-opcua enterly relies on its users.
We appreciate that, once you have evaluated the software and you have decided to use it in one of your application, you consider supporting our effort by either financially contributing to one of our sponsor programs:

Grants ensure the following:

  • πŸ”¨ Long term maintenance of the project
  • βš™οΈ maintain the website and continuous integration platform
  • πŸ›£ Progress on the road-map
  • πŸ› Quick responses to bug reports
  • πŸš€ New features & enhancements
  • βš–οΈ representing the node-opcua user community at the OPC Foundation

Getting professional support

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

Professional Support

Registered members have access to a extended set of online documentation.

Registered members can post and query sterfive for any question related to NodeOPCUA in a private chat room.

or contact sterfive for dedicated consulting and more advanced support or for a certified version of node-opcua. ([email protected]).

Road-map

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

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
  • session less transactions
  • WebSocket transport
  • JTokens and OAuth
  • reversed connection
  • 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 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 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

API reference

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() βœ…
GetEndpoints() βœ…
RegisterServer() βœ…
RegisterServer2() βœ…
FindServersOnNetwork() βœ…
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() πŸŒ‘
PubSUB as a commercial module βœ…
GDS as a commercial module βœ…
Transport Protocol
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 πŸŒ‘
Security Policies
Policy Status Comment
None βœ…
Basic128Rsa15 βœ… deprecated in 1.04
Basic256 βœ… deprecated in 1.04
Basic256Sha256 βœ…
Authentication Status Comment
Anonymous βœ…
User Name Password βœ…
X509 Certificate βœ…
client facets
Base Client Behaviour βœ…
AddressSpace Lookup βœ…
Attribute Read βœ…
DataChange Subscription βœ…
DataAccess βœ…
Discovery βœ…
Event Subscription βœ…
Method call βœ…
Historical Access πŸŒ“
Advanced Type βœ…
Programming πŸŒ‘
Auditing πŸŒ“
Redundancy πŸŒ‘ Sponsors wanted
server profiles
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 πŸŒ‘ Sponsors wanted
Redundancy Visible Server πŸŒ‘ Sponsors wanted
Node Management Server πŸŒ‘ Sponsors wanted
Auditing Server πŸŒ“
Complex Type Server βœ… (sponsored)
Session Diagnostics βœ… (sponsored)
Subscription Diagnostics βœ… (sponsored)
Alarms & Conditions βœ… (sponsored)
Pub & Sub πŸŒ‘ 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

About licensing

The node-opcua core module is copyrighted and licenced under the term of the "The MIT License".

This means that :

  • node-opcua comes without any warranty of any kind.
  • you can freely reuse in an open-source application or a commercial application
  • you have to clearly include the software copyright notice in all copies or substantial portions of the software.

You are strongly encourage to apply to our NodeOPCUA Membership to get additional benefits and support.

Copyright

Copyright (c) 2022 Sterfive SAS - 833264583 RCS ORLEANS - France (https://www.sterfive.com)

Copyright (c) 2014-2022 Etienne Rossignon

About

an implementation of a OPC UA stack fully written in javascript and nodejs - http://node-opcua.github.io/

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 75.9%
  • JavaScript 24.0%
  • XSLT 0.1%
  • Shell 0.0%
  • Batchfile 0.0%
  • Makefile 0.0%