3 个不稳定版本
0.3.1 | 2023 年 3 月 11 日 |
---|---|
0.3.0 | 2021 年 8 月 3 日 |
0.2.0 | 2021 年 2 月 17 日 |
#327 in 图形 API
98 次每月下载
在 2 包中使用
205KB
3K SLoC
FlowBetween
FlowBetween 是一个创建动画的工具。它也是一个矢量编辑器,旨在提供一种“绘画”工作流程,与大多数其他工具不同,编辑更多地涉及使用画笔进行绘画而不是调整路径。
运行 FlowBetween
如果您使用 OS X,您可以从 网站 下载预构建的二进制文件。
FlowBetween 具有独特的架构,使其用户界面极具便携性。在这个早期版本中,浏览器版本最容易尝试,因为它可以在所有操作系统上运行。请注意,要使用平板电脑与 FlowBetween 一起使用,您最好需要一个完全支持指针事件或触摸 API 的浏览器。在 OS X 上,Chrome 或 Firefox 是您的最佳选择。在 Windows 上,只需 Firefox。iOS 上的 Safari 可与 Apple Pencil 一起使用。
要构建并运行 FlowBetween,请安装 Rust 并下载此存储库。在您选择的浏览器中输入
cargo run --features http --release
并连接到 localhost:3000。选择绘画工具开始绘图。
在 Linux 上,您可以尝试 Gtk 端口
cargo run --features gtk --release
或者您可以通过将 gtk 和 http UI 合并到一个可执行文件中来展示 FlowBetween 架构的更多有趣特性
cargo run --features gtk --features http --release
虽然这目前有点花哨,但它展示了几个方面:FlowBetween 具有极其便携的架构(我知道没有其他应用程序可以在同一可执行文件中并行运行两个独立的 UI 端口)。更重要的是,这旨在发展成为允许在桌面和移动设备上进行无缝编辑的功能(以及单个画布的协作编辑)。
一些技术内容
FlowBetween的架构与大多数其他应用程序基于对象的方式相似,都是基于流的。任何在SmallTalk中编程过的人可能都会认识这个概念。还有一个强有力的原则,即分离代表概念的库和提供具体实现的库。以一个重要的例子来说:flo_canvas
库提供了矢量绘制所需的所有原语,但没有提供任何实现。而flo_gtk_ui
和flo_http_ui
都有能力接收这些更新流,并使用它们各自的用户界面语言来实现。
在这里,flo_binding
库非常值得一看。由于FlowBetween的分离原则,它可以在任何UI框架中重用,并且对于那些遇到过像Knockout或React这样的库的人来说会很熟悉。它本质上是一种将事件流转换为状态表示的方法,反之亦然,这是UI设计中的核心问题之一。
有几个姊妹项目已经迁移到了自己的仓库。desync
提供了异步功能,使用在数据上调度操作的概念(这是通常在线程上调度数据概念的相反)。flo_curves
为FlowBetween生成矢量图形提供了所需的算法库。flo_stream
向Rust的futures库添加了一个'pub-sub'机制,这是使用流在用户界面周围分布事件的好方法。
--|||--
依赖关系
~0.1–4MB
~56K SLoC