Repository navigation
Expand file tree
/
Copy pathprojects.html
More file actions
95 lines (85 loc) · 17.9 KB
/
Copy pathprojects.html
File metadata and controls
95 lines (85 loc) · 17.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="icon" type="image/x-icon" href="/favicon.ico"><title>Projects | node-opcua</title><link rel="canonical" href="https://node-opcua.github.io/projects.html"><meta name="description" content="Explore the node-opcua ecosystem — open-source modules, tools, and commercial add-ons for OPC UA on Node.js."><!-- Open Graph --><meta property="og:title" content="Projects | node-opcua"><meta property="og:description" content="Explore the node-opcua ecosystem — open-source modules, tools, and commercial add-ons for OPC UA on Node.js."><meta property="og:image" content="https://node-opcua.github.io/og-default.png"><meta property="og:url" content="https://node-opcua.github.io/projects.html"><meta property="og:type" content="website"><!-- Twitter Card --><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Projects | node-opcua"><meta name="twitter:description" content="Explore the node-opcua ecosystem — open-source modules, tools, and commercial add-ons for OPC UA on Node.js."><meta name="twitter:image" content="https://node-opcua.github.io/og-default.png"><!-- Organization JSON-LD (site-wide) --><script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","name":"node-opcua","url":"https://node-opcua.github.io","logo":"https://node-opcua.github.io/logos/sterfive-logo.png","description":"The open-source OPC UA stack for Node.js, maintained by Sterfive.","sameAs":["https://github.com/node-opcua","https://www.npmjs.com/package/node-opcua","https://www.sterfive.com"]}</script><!-- Slot for child layout head content (JSON-LD etc.) --><script>(function(){const gaId = "G-J4DZPPT47Y";
// Consent Mode v2 — default everything to DENIED before consent
window.dataLayer = window.dataLayer || [];
function gtag(){ dataLayer.push(arguments); }
window.gtag = gtag;
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied',
'wait_for_update': 500
});
// Check for a previously stored consent choice
var stored = (function() {
try {
return document.cookie
.split('; ')
.find(function(row) { return row.startsWith('na_consent='); })
?.split('=')[1];
} catch (e) { return null; }
})();
if (stored === 'granted') {
gtag('consent', 'update', { 'analytics_storage': 'granted' });
}
// Load the GA script (Consent Mode ensures it respects the state above)
var s = document.createElement('script');
s.async = true;
s.src = 'https://www.googletagmanager.com/gtag/js?id=' + gaId;
document.head.appendChild(s);
gtag('js', new Date());
gtag('config', gaId, {
'anonymize_ip': true,
'allow_google_signals': false,
'allow_ad_personalization_signals': false
});
})();</script><link rel="stylesheet" href="/assets/role_based_security.CrBQaTfZ.css">
<style>.projects-container[data-astro-cid-aid3sr62]{max-width:800px;margin:0 auto;padding:4rem 2rem}.projects-intro[data-astro-cid-aid3sr62]{padding:0 0 3rem;border-bottom:1px solid var(--divider)}.projects-intro[data-astro-cid-aid3sr62] h1[data-astro-cid-aid3sr62]{font-size:clamp(2.5rem,5.5vw,3.75rem);font-weight:700;color:var(--ink);margin-bottom:1.5rem;line-height:1.15}.lede[data-astro-cid-aid3sr62]{font-size:1.2rem;line-height:1.6;color:var(--ink-soft)}.featured-projects[data-astro-cid-aid3sr62]{padding:3rem 0;border-top:2px solid var(--accent);border-bottom:1px solid var(--divider)}.section-heading[data-astro-cid-aid3sr62]{font-size:clamp(1.8rem,4vw,2.25rem);font-weight:700;color:var(--ink);letter-spacing:-.025em;margin-bottom:var(--space-stack-lg)}.featured-repo[data-astro-cid-aid3sr62]{display:flex;flex-direction:column;gap:.75rem}.featured-name[data-astro-cid-aid3sr62]{font-family:var(--font-mono);font-size:1.125rem;font-weight:600}.featured-name[data-astro-cid-aid3sr62] a[data-astro-cid-aid3sr62]{color:var(--accent);text-decoration:underline}.featured-name[data-astro-cid-aid3sr62] a[data-astro-cid-aid3sr62]:hover{color:var(--ink)}.featured-extended[data-astro-cid-aid3sr62]{font-family:var(--font-sans);font-size:1rem;line-height:1.6;color:var(--ink-soft);max-width:56ch}.projects-group[data-astro-cid-aid3sr62]{padding:3rem 0;border-bottom:1px solid var(--divider)}.projects-group[data-astro-cid-aid3sr62] h2[data-astro-cid-aid3sr62]{font-size:clamp(1.75rem,3.5vw,2.25rem);font-weight:700;color:var(--ink);margin-bottom:2rem}.repo-list[data-astro-cid-aid3sr62]{list-style:none;padding:0;display:flex;flex-direction:column;gap:1.25rem}.repo-item[data-astro-cid-aid3sr62]{display:flex;align-items:baseline;gap:.75rem;line-height:1.6;flex-wrap:wrap}.highlight-badge[data-astro-cid-aid3sr62]{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--bg);background-color:var(--accent);padding:2px 6px;border-radius:3px;text-transform:uppercase;letter-spacing:.05em;display:inline-block;align-self:center}.repo-link[data-astro-cid-aid3sr62]{font-family:var(--font-mono);font-size:1rem;font-weight:600;color:var(--accent);text-decoration:underline}.repo-link[data-astro-cid-aid3sr62]:hover{color:var(--ink)}.repo-separator[data-astro-cid-aid3sr62]{color:var(--muted);font-weight:400}.repo-description[data-astro-cid-aid3sr62]{font-family:var(--font-sans);font-size:1rem;color:var(--ink-soft)}.projects-footer[data-astro-cid-aid3sr62]{padding:3rem 0 0;font-size:1.1rem;color:var(--ink-soft)}.projects-footer[data-astro-cid-aid3sr62] a[data-astro-cid-aid3sr62]{color:var(--accent);text-decoration:underline}.projects-footer[data-astro-cid-aid3sr62] a[data-astro-cid-aid3sr62]:hover{color:var(--ink)}
</style><script type="module" src="/assets/hoisted.3WjCi9KP.js"></script></head> <body> <header class="navbar" data-astro-cid-ymhdp2rl> <div class="container navbar-container" data-astro-cid-ymhdp2rl> <a href="/" class="logo" data-astro-cid-ymhdp2rl> <span class="logo-dot" data-astro-cid-ymhdp2rl></span><span class="logo-text" data-astro-cid-ymhdp2rl>node-opcua</span> </a> <button class="menu-trigger" aria-label="Open menu" aria-expanded="false" type="button" data-astro-cid-ymhdp2rl> <span class="hamburger-bar" data-astro-cid-ymhdp2rl></span> <span class="hamburger-bar" data-astro-cid-ymhdp2rl></span> <span class="hamburger-bar" data-astro-cid-ymhdp2rl></span> </button> <div class="backdrop" aria-hidden="true" data-astro-cid-ymhdp2rl></div> <nav class="nav-drawer" aria-label="Main navigation" data-astro-cid-ymhdp2rl> <a href="/getting-started.html" class="nav-link" data-astro-cid-ymhdp2rl>Getting started</a> <a href="/api_doc/latest/" class="nav-link" data-astro-cid-ymhdp2rl>API reference</a> <a href="/projects.html" class="nav-link" data-astro-cid-ymhdp2rl>Projects</a> <a href="/news.html" class="nav-link" data-astro-cid-ymhdp2rl>News</a> <a href="https://www.npmjs.com/package/node-opcua/v/2.175.2" target="_blank" rel="noopener noreferrer" class="version-badge" aria-label="Latest release: v2.175.2" data-astro-cid-ymhdp2rl> <span class="version-number" data-astro-cid-ymhdp2rl>v2.175.2</span> <span class="version-label" data-astro-cid-ymhdp2rl>latest</span> </a> <a href="https://github.com/node-opcua/node-opcua" target="_blank" rel="noopener noreferrer" class="nav-link" data-astro-cid-ymhdp2rl>GitHub</a> <a href="https://github.com/sponsors/node-opcua" target="_blank" rel="noopener noreferrer" class="nav-link" data-astro-cid-ymhdp2rl>Sponsor</a> </nav> </div> </header> <main> <div class="projects-container" data-astro-cid-aid3sr62> <section class="projects-intro" data-astro-cid-aid3sr62> <h1 data-astro-cid-aid3sr62>The node-opcua ecosystem</h1> <p class="lede" data-astro-cid-aid3sr62>
Beyond the main SDK, node-opcua is part of a family of
open-source and commercial modules and tools,
maintained by Sterfive.
</p> </section> <section class="featured-projects" data-astro-cid-aid3sr62> <p class="section-eyebrow" data-astro-cid-aid3sr62>Featured</p> <h2 class="section-heading" data-astro-cid-aid3sr62>New from the project.</h2> <article class="featured-repo" data-astro-cid-aid3sr62> <h3 class="featured-name" data-astro-cid-aid3sr62> <a href="https://github.com/node-opcua/node-opcua-modeler-mcp-server" target="_blank" rel="noopener noreferrer" data-astro-cid-aid3sr62>node-opcua-modeler-mcp-server</a> </h3> <p class="featured-extended" data-astro-cid-aid3sr62>Lets AI agents (Claude, Cursor, and other MCP-compatible tooling) query, validate, and build OPC UA information models. Discover companion specification types, resolve namespace dependencies, look up engineering units. The first Model Context Protocol server for industrial automation.</p> </article> </section> <section class="projects-group" data-astro-cid-aid3sr62> <h2 data-astro-cid-aid3sr62>Core libraries</h2> <ul class="repo-list" data-astro-cid-aid3sr62> <li class="repo-item" data-astro-cid-aid3sr62> <span class="highlight-badge" data-astro-cid-aid3sr62>Featured</span> <a href="https://github.com/node-opcua/node-i3x" target="_blank" rel="noopener noreferrer" class="repo-link" data-astro-cid-aid3sr62> node-i3x </a> <span class="repo-separator" data-astro-cid-aid3sr62>·</span> <span class="repo-description" data-astro-cid-aid3sr62>An implementation of the CESMII Industrial Information Interoperability eXchange (i3X) API for Node.js, bridging OPC UA address spaces to i3X context models.</span> </li><li class="repo-item" data-astro-cid-aid3sr62> <a href="https://github.com/node-opcua/node-opcua" target="_blank" rel="noopener noreferrer" class="repo-link" data-astro-cid-aid3sr62> node-opcua </a> <span class="repo-separator" data-astro-cid-aid3sr62>·</span> <span class="repo-description" data-astro-cid-aid3sr62>The main client and server SDK.</span> </li><li class="repo-item" data-astro-cid-aid3sr62> <a href="https://github.com/node-opcua/node-opcua-pki" target="_blank" rel="noopener noreferrer" class="repo-link" data-astro-cid-aid3sr62> node-opcua-pki </a> <span class="repo-separator" data-astro-cid-aid3sr62>·</span> <span class="repo-description" data-astro-cid-aid3sr62>PKI and certificate management for OPC UA.</span> </li><li class="repo-item" data-astro-cid-aid3sr62> <a href="https://github.com/node-opcua/node-opcua-crypto" target="_blank" rel="noopener noreferrer" class="repo-link" data-astro-cid-aid3sr62> node-opcua-crypto </a> <span class="repo-separator" data-astro-cid-aid3sr62>·</span> <span class="repo-description" data-astro-cid-aid3sr62>Certificate tools, encryption, and signature support.</span> </li> </ul> </section><section class="projects-group" data-astro-cid-aid3sr62> <h2 data-astro-cid-aid3sr62>Companion specifications</h2> <ul class="repo-list" data-astro-cid-aid3sr62> <li class="repo-item" data-astro-cid-aid3sr62> <a href="https://github.com/node-opcua/node-opcua-isa95" target="_blank" rel="noopener noreferrer" class="repo-link" data-astro-cid-aid3sr62> node-opcua-isa95 </a> <span class="repo-separator" data-astro-cid-aid3sr62>·</span> <span class="repo-description" data-astro-cid-aid3sr62>ISA-95 extension for node-opcua server.</span> </li> </ul> </section><section class="projects-group" data-astro-cid-aid3sr62> <h2 data-astro-cid-aid3sr62>Tooling</h2> <ul class="repo-list" data-astro-cid-aid3sr62> <li class="repo-item" data-astro-cid-aid3sr62> <a href="https://github.com/node-opcua/opcua-commander" target="_blank" rel="noopener noreferrer" class="repo-link" data-astro-cid-aid3sr62> opcua-commander </a> <span class="repo-separator" data-astro-cid-aid3sr62>·</span> <span class="repo-description" data-astro-cid-aid3sr62>OPC UA client with a blessed (ncurses) terminal UI.</span> </li><li class="repo-item" data-astro-cid-aid3sr62> <a href="https://github.com/node-opcua/bench-opcua" target="_blank" rel="noopener noreferrer" class="repo-link" data-astro-cid-aid3sr62> bench-opcua </a> <span class="repo-separator" data-astro-cid-aid3sr62>·</span> <span class="repo-description" data-astro-cid-aid3sr62>Performance benchmarks for OPC UA servers.</span> </li><li class="repo-item" data-astro-cid-aid3sr62> <a href="https://github.com/node-opcua/node-opcua-sampleserver" target="_blank" rel="noopener noreferrer" class="repo-link" data-astro-cid-aid3sr62> node-opcua-sampleserver </a> <span class="repo-separator" data-astro-cid-aid3sr62>·</span> <span class="repo-description" data-astro-cid-aid3sr62>A simple reference OPC UA server based on node-opcua.</span> </li><li class="repo-item" data-astro-cid-aid3sr62> <a href="https://github.com/node-opcua/node-opcua-htmlpanel" target="_blank" rel="noopener noreferrer" class="repo-link" data-astro-cid-aid3sr62> node-opcua-htmlpanel </a> <span class="repo-separator" data-astro-cid-aid3sr62>·</span> <span class="repo-description" data-astro-cid-aid3sr62>Small HTML panel for displaying monitored variables.</span> </li> </ul> </section><section class="projects-group" data-astro-cid-aid3sr62> <h2 data-astro-cid-aid3sr62>Related projects</h2> <ul class="repo-list" data-astro-cid-aid3sr62> <li class="repo-item" data-astro-cid-aid3sr62> <a href="https://github.com/node-opcua/node-wot-opcua-tools" target="_blank" rel="noopener noreferrer" class="repo-link" data-astro-cid-aid3sr62> node-wot-opcua-tools </a> <span class="repo-separator" data-astro-cid-aid3sr62>·</span> <span class="repo-description" data-astro-cid-aid3sr62>Tools for bridging (node-)WoT and (node-)OPCUA.</span> </li><li class="repo-item" data-astro-cid-aid3sr62> <a href="https://github.com/node-opcua/node-opcua-sample" target="_blank" rel="noopener noreferrer" class="repo-link" data-astro-cid-aid3sr62> node-opcua-sample </a> <span class="repo-separator" data-astro-cid-aid3sr62>·</span> <span class="repo-description" data-astro-cid-aid3sr62>A simple OPC UA sample client demonstrating SDK usage.</span> </li> </ul> </section> <section class="projects-footer" data-astro-cid-aid3sr62> <p data-astro-cid-aid3sr62>
See the complete list of repositories on
<a href="https://github.com/node-opcua" target="_blank" rel="noopener noreferrer" data-astro-cid-aid3sr62>GitHub</a>.
</p> </section> </div> </main> <footer class="footer" data-astro-cid-sz7xmlte> <div class="container footer-container" data-astro-cid-sz7xmlte> <div class="footer-left" data-astro-cid-sz7xmlte> <p class="copyright" data-astro-cid-sz7xmlte><strong data-astro-cid-sz7xmlte>node-opcua</strong> · maintained by Sterfive SAS · MIT licensed</p> </div> <div class="footer-center" data-astro-cid-sz7xmlte> <a href="/api_doc/latest/" data-astro-cid-sz7xmlte>Docs</a> <a href="/projects.html" data-astro-cid-sz7xmlte>Projects</a> <a href="/news.html" data-astro-cid-sz7xmlte>News</a> <a href="https://github.com/node-opcua/node-opcua" target="_blank" rel="noopener noreferrer" data-astro-cid-sz7xmlte>GitHub</a> <a href="https://www.npmjs.com/package/node-opcua" target="_blank" rel="noopener noreferrer" data-astro-cid-sz7xmlte>npm</a> <a href="https://github.com/sponsors/node-opcua" target="_blank" rel="noopener noreferrer" data-astro-cid-sz7xmlte>Sponsor</a> <a href="/privacy.html" data-astro-cid-sz7xmlte>Privacy</a> <button id="reset-analytics-consent" type="button" class="footer-analytics-btn" aria-label="Reset analytics consent preference" data-astro-cid-sz7xmlte>
Analytics: manage
</button> </div> <div class="footer-right" data-astro-cid-sz7xmlte> <p data-astro-cid-sz7xmlte>For commercial inquiries: <a href="https://www.sterfive.com" target="_blank" rel="noopener noreferrer" class="commercial-link" data-astro-cid-sz7xmlte>sterfive.com</a></p> </div> </div> </footer> <script>
(function() {
var btn = document.getElementById('reset-analytics-consent');
if (!btn) return;
btn.addEventListener('click', function() {
// Clear the consent cookie so the banner reappears on next load.
document.cookie = 'na_consent=; max-age=0; path=/; SameSite=Lax';
// Reload so the banner mounts fresh and Consent Mode reverts to default DENIED.
window.location.reload();
});
})();
</script> <div id="consent-banner" class="consent-banner" role="region" aria-label="Analytics consent" aria-live="polite" data-astro-cid-2effgw6e><div class="consent-inner" data-astro-cid-2effgw6e><div class="consent-text" data-astro-cid-2effgw6e><span class="consent-eyebrow" data-astro-cid-2effgw6e>Analytics</span><p class="consent-body" data-astro-cid-2effgw6e>
We use Google Analytics to measure traffic: page views, country,
and referrer. No advertising, no cross-site tracking, no profiling.
<a href="/privacy.html" class="consent-privacy-link" data-astro-cid-2effgw6e>Privacy details</a></p></div><div class="consent-actions" data-astro-cid-2effgw6e><button id="consent-accept" class="consent-btn consent-btn-accept" type="button" aria-label="Accept analytics" data-astro-cid-2effgw6e>Accept</button><button id="consent-reject" class="consent-btn consent-btn-reject" type="button" aria-label="Reject analytics" data-astro-cid-2effgw6e>Reject</button></div></div></div>
<script>
(function() {
// Check if consent was already given — hide banner immediately
var hasCookie = document.cookie.split('; ').some(function(row) {
return row.startsWith('na_consent=');
});
if (hasCookie) {
document.getElementById('consent-banner').style.display = 'none';
return;
}
function setConsent(choice) {
var sixMonths = 60 * 60 * 24 * 180;
document.cookie = 'na_consent=' + choice + '; max-age=' + sixMonths + '; path=/; SameSite=Lax';
if (choice === 'granted' && window.gtag) {
window.gtag('consent', 'update', { 'analytics_storage': 'granted' });
}
document.getElementById('consent-banner').style.display = 'none';
}
document.getElementById('consent-accept')
.addEventListener('click', function() { setConsent('granted'); });
document.getElementById('consent-reject')
.addEventListener('click', function() { setConsent('denied'); });
})();
</script> </body></html>