node-opcua/node-opcua

GitHub: node-opcua/node-opcua

一个基于 TypeScript 和 Node.js 的完整 OPC UA 协议栈,用于在工业物联网场景中构建 OPC UA 客户端与服务端。

Stars: 1652 | Forks: 516

# node-opcua 适用于 Node.js 和浏览器的最完整的 OPC UA 协议栈,使用 TypeScript 编写。 [![NPM version](https://img.shields.io/npm/v/node-opcua)](https://www.npmjs.com/package/node-opcua) [![Node.js CI](https://github.com/node-opcua/node-opcua/actions/workflows/workflow.yml/badge.svg)](https://github.com/node-opcua/node-opcua/actions/workflows/workflow.yml) [![Coverage Status](https://img.shields.io/coverallsCoverage/github/node-opcua/node-opcua)](https://coveralls.io/r/node-opcua/node-opcua) [![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lernajs.io/) [![The Book](https://img.shields.io/static/v1?label=the%20book&message=NodeOPCUA%20by%20example&color=blueviolet&logo=leanpub)](https://leanpub.com/node-opcuabyexample-edition2024) [![NPM download - server](https://img.shields.io/npm/dm/node-opcua.svg?logo=npm&label=node-opcua-server)](https://www.npmtrends.com/node-opcua-server) [![NPM download - server -total](https://img.shields.io/npm/dt/node-opcua.svg?label=total)](https://www.npmtrends.com/node-opcua-server) [![NPM download - client](https://img.shields.io/npm/dm/node-opcua-client.svg?logo=npm&label=node-opcua-client)](https://www.npmtrends.com/node-opcua-client) [![NPM download - client -total](https://img.shields.io/npm/dt/node-opcua-client.svg?label=total)](https://www.npmtrends.com/node-opcua-client) ## 为什么选择 node-opcua? - **完整的 OPC UA 协议栈** — 单一工具包即可实现客户端、服务端、Discovery 和 Aggregation - **安全至上** — 开箱即用地支持所有 OPC UA 安全策略、加密通信和证书管理 - **跨平台** — 可在 Windows、Linux、macOS 以及浏览器中运行 - **模块化架构** — 按需选择包,涵盖从轻量级客户端到功能完备的服务端 - **久经沙场** — 受到全球工业企业的生产环境信赖 - **文档齐全** — 提供详尽的书籍、API 参考手册、教程和引导式示例 ## 快速入门 ### 将 node-opcua 作为 npm 包安装 ``` $ mkdir myproject $ cd myproject $ npm init $ npm install node-opcua ``` ### 尝试示例服务端和客户端 ``` $ npm install node-opcua-samples $ ./node_modules/.bin/simple_server ``` ``` $ ./node_modules/.bin/simple_client -e "opc.tcp://opcuademo.sterfive.com:26543" ``` ## Node.js 环境要求 - 需使用 **Node.js 20** 或更高版本。 ## 文档 [![The Book](https://img.shields.io/static/v1?label=the%20book&message=NodeOPCUA%20by%20example&color=blueviolet&logo=leanpub)](https://leanpub.com/node-opcuabyexample-edition2024) **[NodeOPCUA by Example](https://leanpub.com/node-opcuabyexample-edition2024)** — 最佳起点。包含数十个实用、即用且文档完备的示例。 ### 教程 - [创建服务端](https://github.com/node-opcua/node-opcua/blob/master/documentation/creating_a_server.md) - [使用 TypeScript 创建客户端](https://github.com/node-opcua/node-opcua/blob/master/documentation/creating_a_client_typescript.md) - [基于角色的安全与用户管理 (OPC 10000-18)](https://github.com/node-opcua/node-opcua/blob/master/documentation/role_based_security.md) - 为 [NodeOPCUA 订阅会员](https://support.sterfive.com)提供更多高级示例和培训资料 ### API 参考 - [API 文档](https://node-opcua.github.io/api_doc/index.html) ## 🏢 专业支持 在您的 OPC UA 项目中需要帮助?Sterfive 为 node-opcua 提供专业的支持与咨询服务。 | | **社区** (GitHub) | **专业版** (Sterfive) | |---------------------------|:------------------------:|:--------------------------:| | GitHub Issues | ✅ | ✅ | | CVE 安全通告 | 公开发布后 | **提前获取 — 在公开发布前提供补丁** | | 私密支持渠道 | — | ✅ | | 扩展文档 | — | ✅ | | 保证响应时间 | — | ✅ | | 咨询与培训 | — | ✅ | | 可认证构建 | — | ✅ | [![Professional Support](https://img.shields.io/static/v1?style=for-the-badge&label=Professional&message=Support&labelColor=blue&color=green&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ5MS41MiA0OTEuNTIiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ5MS41MiA0OTEuNTI7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxnPg0KCQk8cGF0aCBkPSJNNDg3Ljk4OSwzODkuNzU1bC05My4xMDktOTIuOTc2Yy00LjgxMy00LjgwNi0xMi42NDItNC42NzQtMTcuMjczLDAuMzA3Yy03LjE0OCw3LjY4OS0xNC42NCwxNS41NTQtMjEuNzMsMjIuNjM0ICAgIGMtMC4yNzEsMC4yNy0wLjUwMSwwLjQ5My0wLjc2MywwLjc1NUw0NjcuMyw0MzIuNTA0YzguOTEtMTAuNjE0LDE2LjY1Ny0yMC40MSwyMS43My0yNi45NyAgICBDNDkyLjcyLDQwMC43NjIsNDkyLjI1NywzOTQuMDE5LDQ4Ny45ODksMzg5Ljc1NXoiLz4NCgk8L2c+DQo8L2c+DQo8Zz4NCgk8Zz4NCgkJPHBhdGggZD0iTTMzNC4zLDMzNy42NjFjLTM0LjMwNCwxMS4zNzktNzcuNTYsMC40MTMtMTE0LjU1NC0yOS41NDJjLTQ5LjAyMS0zOS42OTMtNzUuOTcyLTEwMi42NDItNjUuODM4LTE1MC41OTNMMzcuNjM0LDQxLjQxOCAgICBDMTcuNjUzLDU5LjQyNCwwLDc4LjU0NSwwLDkwYzAsMTQxLjc1MSwyNjAuMzQ0LDQxNS44OTYsNDAxLjUwMyw0MDAuOTMxYzExLjI5Ni0xLjE5OCwzMC4xNzYtMTguNjUxLDQ4LjA2Mi0zOC4xNjdMMzM0LjMsMzM3LjY2MSAgICB6Ii8+DQoJPC9nPg0KPC9nPg0KPGc+DQoJPGc+DQoJCTxwYXRoIGQ9Ik0xOTMuODU0LDk2LjA0MUwxMDEuMjEzLDMuNTNjLTQuMjI1LTQuMjItMTAuODgyLTQuNzI0LTE1LjY2NC0xLjE0NWMtNi42NTQsNC45ODMtMTYuNjQ4LDEyLjY1MS0yNy40NTMsMjEuNDk4ICAgIGwxMTEuOTQ1LDExMS43ODVjMC4wNjEtMC4wNiwwLjExMS0wLjExMywwLjE3Mi0wLjE3NGM3LjIzOC03LjIyOCwxNS4zNTUtMTQuODg1LDIzLjI5MS0yMi4xNjcgICAgQzE5OC41MzQsMTA4LjcxMywxOTguNjg0LDEwMC44NjMsMTkzLjg1NCw5Ni4wNDF6Ii8+DQoJPC9nPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPC9zdmc+)](https://support.sterfive.com) 📧 联系方式:[contact@sterfive.com](mailto:contact@sterfive.com) · 🌐 [sterfive.com](https://www.sterfive.com) ## 生态系统 ### 结合 MCP 的 AI 驱动建模 **[node-opcua-modeler-mcp-server](https://www.npmjs.com/package/node-opcua-modeler-mcp-server)** — 一款 [MCP server](https://modelcontextprotocol.io),可让 AI 代理访问 OPC UA 配套规范类型系统。发现类型、解析 namespace 依赖、查阅工程单位——所有这一切均可在您的 AI 编程助手中完成。 ``` npx node-opcua-modeler-mcp-server ``` ### OPC UA Modeler **[OPC UA Modeler](https://opcua-modeler.sterfive.com)** — 采用 YAML 优先的工作流,并全面支持配套规范,从而创建、验证和生成 OPC UA 信息模型。 ## 支持的功能 node-opcua 实现了全面的 OPC UA 服务、传输协议、安全策略以及服务端/客户端配置文件。 👉 **[查看完整的功能支持矩阵](./supported_features.md)** ## 路线图 - 改进文档并提供更多教程 - 合规性测试与认证 (CTT) - 支持冗余 - 无会话事务 - JTokens 和 OAuth 想要影响路线图?[联系 Sterfive](mailto:contact@sterfive.com)。 ## 贡献 欢迎您的贡献!以下是开始接触源码的方法: ``` $ git clone git://github.com/node-opcua/node-opcua.git $ cd node-opcua $ npm install -g pnpm $ pnpm install $ pnpm recursive install $ pnpm build ``` ### 从源码运行演示服务端 ``` $ node packages/node-opcua-samples/bin/simple_server ``` ### 从源码运行演示客户端 ``` $ node packages/node-opcua-samples/bin/simple_client.js -e "opc.tcp://opcuademo.sterfive.com:26543" ``` ## 开源许可 node-opcua 采用 [MIT 许可协议](./LICENSE)。 - 您可以自由地将其用于开源和商业应用。 - 您必须在软件的所有副本或实质部分中包含版权声明。 - node-opcua 不提供任何形式的保证。 我们强烈建议您加入 [NodeOPCUA 会员](https://support.sterfive.com)以获取额外权益和支持。 ## 版权 版权所有 © 2014-2026 Sterfive SAS — 833264583 RCS ORLEANS — 法国 ([sterfive.com](https://www.sterfive.com))
标签:GNU通用公共许可证, MITM代理, Node.js, OPC UA, SIEM, TypeScript, 安全插件, 工业控制, 工业通信协议, 物联网, 自动化攻击