58 个版本 (breaking)

0.142.0 2023 年 9 月 28 日
0.140.0 2023 年 9 月 28 日
0.101.0 2023 年 7 月 24 日
0.95.0 2023 年 3 月 12 日
0.8.2 2019 年 10 月 16 日

#3 in #flows

Download history 2/week @ 2024-03-07 1/week @ 2024-03-14 194/week @ 2024-03-28 142/week @ 2024-04-04

416 每月下载量
flowide 中使用

MIT 许可证

1MB
18K SLoC

flowr

flowr 包含用于运行流程的 flowrlib 库(下面详细介绍)

flowr 包含多个“运行器”应用程序(使用 flowrlib 库构建),用于运行流程

  • flowrcli 从命令行运行流程
  • flowrgui 使用 Iced 构建,具有图形用户界面 (GUI) 的流程运行器
  • flowrex 是一个仅执行作业的二进制文件(不协调流程执行),可以作为协调器通过网络使用,以便有更多执行资源执行流程的作业

它们根据定义的语义处理 Functions 的执行,形成 Flow

flowrlib

它负责读取 Manifest 文件中的流程定义,从 LibraryManifest 文件加载所需的库,然后通过调度要由 Function Implementations 执行的 Jobs 来协调执行,提供运行所需的 Inputs,收集产生的 Outputs,并将这些 Outputs 传递给网络中的其他连接的 Functions

功能

这些是 flowr crate 条件的编译功能

  • submission - 包含接收要执行的流程的能力
  • context - 使此 crate 了解流上下文函数或不了解
  • debugger - 添加调试器的功能
  • metrics - 跟踪执行期间指标的功能
  • flowstdlib - (是一个可选依赖项,类似于功能标志)允许编译和链接原生版本的 flowstdlib 函数或不允许编译和链接(并依赖于 wasm 版本)

默认情况下,以下已启用:“debugger”,“metrics”,“context”,“submission”,“flowstdlib”

flowrcliflowrgui

上下文函数

context 文件夹实现了每个运行时为流程提供的上下文函数,以便与环境(如标准 I/O 和文件系统)交互,以及提供编译流程时使用的上下文函数的定义。

这些都是纯函数,或具有副作用的功能,不是流程本身的一部分。

这些函数被组织成以下模块,每个模块包含多个函数

  • args - 用于获取flow调用的参数
  • file - 用于与文件系统交互
  • image - 用于创建图像文件
  • stdio - 用于与标准输入输出交互

flowrex

有关如何在运行流程中使用它的更多详细信息,请参阅分布式部分。

依赖关系

~82–120MB
~2M SLoC