#signal #functional-reactive-programming #future #reactive #frp

futures-signals

使用futures crate的零成本FRP信号

41个版本

0.3.34 2024年7月26日
0.3.33 2023年9月7日
0.3.32 2023年3月18日
0.3.31 2022年9月10日
0.1.0 2018年3月18日

#28 in 异步

Download history 3214/week @ 2024-05-03 3057/week @ 2024-05-10 2826/week @ 2024-05-17 2303/week @ 2024-05-24 3446/week @ 2024-05-31 2423/week @ 2024-06-07 3173/week @ 2024-06-14 3034/week @ 2024-06-21 3622/week @ 2024-06-28 3156/week @ 2024-07-05 3932/week @ 2024-07-12 3971/week @ 2024-07-19 4285/week @ 2024-07-26 2687/week @ 2024-08-02 2850/week @ 2024-08-09 1937/week @ 2024-08-16

12,495 每月下载量
用于 53 个crates (30直接)

MIT 许可证

275KB
5.5K SLoC

crates.io docs.rs

这是一个Rust crate,它提供零成本的FRP 信号,这些信号构建在 futures crate之上。

等等,零成本?是的,没错:如果你没有使用功能,你就不会付出任何性能成本,而你实际使用的功能会尽可能快。信号非常高效。

什么是信号?它是一个 随时间变化的值,你可以在其值发生变化时被有效地通知。

这在许多情况下都很有用

  • 每当程序状态改变时,你可以自动将其序列化到数据库中。

  • 每当客户端状态改变时,你可以自动向服务器发送消息,反之亦然。这可以用来自动、高效、方便地保持客户端和服务器状态的一致性。

  • 游戏引擎可以使用信号在状态改变时自动更新游戏状态。

  • 你可以轻松地将连续输入(如当前温度或当前时间)表示为信号。

  • 如果你创建了一个GUI,你可以使用信号在状态改变时自动更新GUI,确保你的状态和GUI始终保持同步。

  • 你可以使用 dominator 来创建Web应用,并自动保持它们与程序状态同步。

  • 还有更多情况!

了解更多信息的最快方式是阅读 教程

依赖

~1.2–2MB
~41K SLoC