NoFlo

林一二2023年07月15日 16:43

Github 上过 KickStarter

可以序列化为纯文本,例如通过流程实现Jekyll博客系统的例子,适合嵌入太微这类笔记应用让太微更加智能

也支持子图,需要调研是否支持递归调用。

目前已停止开发,但是 MIT 协议可以拿来修改,而且有浏览器执行引擎,方便嵌入游戏平台和游戏。

最后我决定还是不使用它,改用Flyde。因为 NoFlo 模块比较分散,接入需要了解很多分散的知识和代码,但已经没人为这个项目及时答疑了。而且 UI 中比较强调节点图标,而非节点名和端口,导致不是很好拖线

组件分发

通过 npm 装,官方提供 noflo-filesystemnoflo-core 两个组件包

编辑器

底层的编辑器UI组件是flowhub/the-graph,它产出DSL,然后可以被无头的 noflo 包加载执行。

它又被noflo/noflo-ui使用,做了一个基本的编辑器。

界面的例子 the-graph/demo-full

设计风格

来自meemoo/dataflow/issues#53里的讨论,弃用了传统的 UE 蓝图的风格,以便在移动端更好操作。但缺点是得点开节点才能操作widget,不像UE蓝图风格可以把开关等各种小组件直接放在节点上。

运行时

把 npm 包 noflo 加入项目,然后正常用 webpack 等打包,就可以在浏览器上使用其 API 来运行了。不过看noflo/noflo-browser好像还有 noflo-runtime 等包待调研。

组件也不是直接在浏览器上就能用,需要参考 noflo-component-loader npm 包加载和转换它们。

AI生成

使用 DSL 定义的图其实可以用语言模型来生成

# In the graph we first need to define the nodes and the connections between them
Read(filesystem/ReadFile) OUT -> IN Display(core/Output)

# Start off the graph by sending a filename to the file reader
'package.json' -> IN Read

相关博客

A system brought to life - noflo

bergie