Giter VIP home page Giter VIP logo

node-opcua

node-opcua is a full OPC UA stack for NodeJS and the Browser written in Typescript.

NPM version Node.js CI lerna Coverage Status Gitter chat The Book

NPM download - server NPM download - server -total

NPM download - client NPM download - client -total

Financial contributors

Become a sponsor

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

Why NodeJS ?

Because NodeJs is a great framework for designing high-performing 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 18 or above

tutorials and guided examples

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

Sponsors & Backers

The funding of node-opcua entirely relies on its users.
We appreciate that, once you have evaluated the software and you have decided to use it in one of your applications, 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

Sponsors

Backers

Thank you to all our backers! Become a backer

Contributors

This project exists thanks to all the people who contribute.

Getting professional support

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

Professional Support

Registered members have access to an 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 licencsd under the term of the "The MIT License".

This means that :

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

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

Copyright

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

Sterfive SAS's Projects

awesome-iot icon awesome-iot

A curated list of awesome Internet of Things projects and resources.

bench-opcua icon bench-opcua

Test bench for comparing performance of various opcua servers

deassertify icon deassertify

Browserify transform that comment assert statements out of your code.

hexy.js icon hexy.js

hex pretty printing for javascript (node)

jsrsasign icon jsrsasign

The 'jsrsasign' (RSA-Sign JavaScript Library) is an opensource free cryptography library supporting RSA/RSAPSS/ECDSA/DSA signing/validation, ASN.1, PKCS#1/5/8 private/public key, X.509 certificate, CRL CMS SignedData, TimeStamp and CAdES in pure JavaScript.

lerna icon lerna

:dragon: A tool for managing JavaScript projects with multiple packages.

litpro icon litpro

Minimal command line client for literate programming

node-opcua icon node-opcua

Unlocking the Full Potential of OPC UA with Typescript and NodeJS - http://node-opcua.github.io/

node-opcua-htmlpanel icon node-opcua-htmlpanel

small HTML panel to display a OPCUA monitored variable based on node, express, socket.io and node-opcua

node-wget icon node-wget

A download tool for nodejs that emulates the functionality of wget

node-wot icon node-wot

Components for building WoT devices or for interacting with them over various IoT protocols

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.