node-opcua
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.
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"
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
$ 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
$ 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 Documentation
- check out the API documentation
Minimum nodejs requirement
- nodejs version 8.16 or above
Contributing
$ git clone git://github.com/node-opcua/node-opcua.git
$ cd node-opcua
$ npm install
$ npm test
Supporting the project
If you like the project, please consider sponsoring the author :beer: :tada: ,
This will give us full of motivation to carry on and keep working on the roadmap.
Getting commercial support
To get commercial support, please contact sterfive
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:, Basic256, :white_check_mark:, Basic256Sha256, :white_check_mark:, Authentication, Status, Comment, Anonymous, :white_check_mark:, User Name Password, :white_check_mark:, X509 Certificate, :white_check_mark:, in version 2.0.x (sponsored), 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, :first_quarter_moon:, Sponsors wanted, Session Diagnostics, :white_check_mark:, (sponsored), Subscription Diagnostics, :white_check_mark:, (sponsored), Alarms & Conditions, :white_check_mark:, (sponsored), Pub & Sub, :new_moon:, Sponsors wanted, ## Road-map
This are the item we would like to achieve in the next version of the API.
- improved documentation
- Compliance testing and certification (CTT)
- more tutorials
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