2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家
问题所在
我使用 Node-RED 和 n8n 已有多年。它们都是出色的工具,但每次遇到复杂的工作流——包含数百个节点、实时数据、高吞吐量时,总会反复出现同样的问题:
- 持续负载下内存膨胀
- 缺乏真正的插件隔离(一个有问题的插件会导致整个系统崩溃)
- 编辑器中基于 WebSocket 的 JSON 通信成为瓶颈
- 部署包过于臃肿,依赖大量 npm 包
我一直在思考:如果从零开始构建一个工作流引擎,并将性能与安全性作为首要设计目标,会怎样?
于是我开发了 z8run —— 一个用 Rust 编写的开源可视化工作流引擎。
z8run 是什么?
z8run 是 n8n 和 Node-RED 的自托管替代方案。它提供拖放式可视化编辑器、REST API、WebSocket 实时同步以及插件系统——但整个后端均采用编译后的 Rust 语言编写。
核心理念是:以可视化方式构建、连接并自动化任何任务,同时不牺牲性能或安全性。
主要特性
- 单文件二进制程序 —— 无需运行时依赖。下载即用,一步到位。
- Rust + Tokio 异步运行时 —— 可处理数千个并发工作流
- WebAssembly 插件沙箱 —— 可使用 Rust、Go、C 或任何能编译为 WASM 的语言编写插件。插件在隔离的沙箱中运行,并具备受控的能力(如网络访问、文件系统操作、内存限制等)
- 二进制 WebSocket 协议 —— 头部仅 11 字节,而非冗长的 JSON。即使处理大型工作流,编辑器依然保持流畅响应
- AES-256-GCM 凭据保险库 —— 您的 API 密钥和机密信息在存储时已加密,不会以明文形式保存在配置文件中
- 内置 23 种节点,涵盖 6 大类别,其中包括 10 种 AI 节点
架构设计
z8run 是一个结构清晰的 Rust 工作区,包含多个专注功能的 crate:
z8run/
├── z8run-core # 工作流引擎、有向无环图(DAG)验证、调度器
├── z8run-protocol # 二进制 WebSocket 协议
├── z8run-storage # SQLite / PostgreSQL 持久化存储
├── z8run-runtime # WASM 插件沙箱(基于 wasmtime)
└── z8run-api # REST 与 WebSocket 服务器(基于 Axum)
工作流是有向无环图(DAG)。调度器通过拓扑排序将其编译为并行执行计划——彼此无依赖关系的节点可并发执行。
对比分析
| 特性 | z8run | Node-RED | n8n |
|---|---|---|---|
| 编程语言 | Rust | Node.js | Node.js |
| 支持 WASM 插件 | 是 | 否 | 否 |
| 内置 AI 节点数量 | 10 | 社区提供 | 有限 |
| 通信协议 | 二进制协议 | JSON | JSON |
| 凭据保险库 | AES-256-GCM | 需单独配置 | 内置 |
| 单文件部署 | 是 | 否 | 否 |
| 许可证 | Apache-2.0 / MIT | Apache-2.0 | 可持续使用许可 |
最大的区别在于插件模型。在 Node-RED 中,一个行为异常的插件可能导致整个进程崩溃;而在 z8run 中,插件运行于 wasmtime 沙箱内,并需显式授权能力。您可以决定插件是否可以访问网络、文件系统,以及允许使用的内存量。
内置节点
z8run 开箱即用,提供 23 种节点:
-
输入类:HTTP 输入、
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。