18个版本

0.17.0-pre.22021年10月6日
0.17.0-pre.12021年5月29日
0.16.0 2020年10月14日
0.15.0 2020年7月7日
0.11.1 2019年3月27日

#1736过程宏

Download history 12741/week @ 2024-03-14 13142/week @ 2024-03-21 12718/week @ 2024-03-28 13950/week @ 2024-04-04 14333/week @ 2024-04-11 12326/week @ 2024-04-18 10922/week @ 2024-04-25 16551/week @ 2024-05-02 9655/week @ 2024-05-09 10921/week @ 2024-05-16 10473/week @ 2024-05-23 11029/week @ 2024-05-30 9709/week @ 2024-06-06 11681/week @ 2024-06-13 13788/week @ 2024-06-20 9442/week @ 2024-06-27

46,057 每月下载量
95 个crate中使用(通过 salsa

Apache-2.0 OR MIT

43KB
762

salsa

Test Book Released API docs Crates.io

一个用于按需、增量计算的泛型框架。

必读警告

目前仍处于非常明显的开发中。适合实验性使用,但预期会有频繁的破坏性变更。

致谢

本系统深受 adaptonglimmer 和 rustc的查询系统启发。因此,感谢 Eduard-Mihai Burtescu、Matthew Hammer、Yehuda Katz 和 Michael Woerister。

关键思想

salsa 的关键思想是您将程序定义为一组 查询。每个查询都像函数 K -> V 一样使用,该函数从类型为 K 的某个键映射到类型为 V 的值。查询有两种基本类型:

  • 输入:系统的基本输入。您可以根据需要随时更改这些输入。
  • 函数:纯函数(无副作用),将输入转换成其他值。查询的结果被缓存以避免重复计算。当您更改输入时,我们将(相当智能地)确定何时可以重用这些缓存的值,何时需要重新计算。

想了解更多?

要了解更多关于Salsa的信息,请尝试以下操作:

联系方式

大部分讨论发生在问题拉取请求中,但我们还有一个zulip聊天室

依赖关系

约2MB
约43K SLoC