18个版本
0.17.0-pre.2 | 2021年10月6日 |
---|---|
0.17.0-pre.1 | 2021年5月29日 |
0.16.0 | 2020年10月14日 |
0.15.0 | 2020年7月7日 |
0.11.1 | 2019年3月27日 |
#1736 在 过程宏
46,057 每月下载量
在 95 个crate中使用(通过 salsa)
43KB
762 行
salsa
一个用于按需、增量计算的泛型框架。
必读警告
目前仍处于非常明显的开发中。适合实验性使用,但预期会有频繁的破坏性变更。
致谢
本系统深受 adapton、glimmer 和 rustc的查询系统启发。因此,感谢 Eduard-Mihai Burtescu、Matthew Hammer、Yehuda Katz 和 Michael Woerister。
关键思想
salsa
的关键思想是您将程序定义为一组 查询。每个查询都像函数 K -> V
一样使用,该函数从类型为 K
的某个键映射到类型为 V
的值。查询有两种基本类型:
- 输入:系统的基本输入。您可以根据需要随时更改这些输入。
- 函数:纯函数(无副作用),将输入转换成其他值。查询的结果被缓存以避免重复计算。当您更改输入时,我们将(相当智能地)确定何时可以重用这些缓存的值,何时需要重新计算。
想了解更多?
要了解更多关于Salsa的信息,请尝试以下操作:
- 阅读 带有大量注释的
hello_world
示例; - 查看 Salsa 书籍;
- 观看我们的 视频 之一。
联系方式
依赖关系
约2MB
约43K SLoC