41 个版本

0.17.0-pre.22021 年 10 月 6 日
0.17.0-pre.12021 年 5 月 29 日
0.16.1 2021 年 5 月 5 日
0.16.0 2020 年 10 月 14 日
0.8.0 2018 年 11 月 1 日

算法 中排名第 218

Download history 12776/week @ 2024-03-14 13166/week @ 2024-03-21 12827/week @ 2024-03-28 13957/week @ 2024-04-04 14365/week @ 2024-04-11 12371/week @ 2024-04-18 10972/week @ 2024-04-25 16583/week @ 2024-05-02 9701/week @ 2024-05-09 10960/week @ 2024-05-16 10501/week @ 2024-05-23 11067/week @ 2024-05-30 9750/week @ 2024-06-06 11723/week @ 2024-06-13 13820/week @ 2024-06-20 9439/week @ 2024-06-27

每月下载量 46,173
用于 105 个crate(34 个直接使用)

Apache-2.0 OR MIT

1.5MB
3K SLoC

salsa

Test Book Released API docs Crates.io

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

强制警告

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

致谢

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

关键思想

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

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

想了解更多信息?

要了解更多关于莎莎的信息,请尝试以下方法

联系方式

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

依赖关系

~4MB
~75K SLoC