#computation #query #framework #key #salsa #generic #on-demand

ra_ap_salsa

按需增量计算的泛型框架(实验性)

30 个版本

0.0.230 2024 年 8 月 19 日
0.0.229 2024 年 8 月 12 日
0.0.227 2024 年 7 月 29 日
0.0.222 2024 年 6 月 24 日
0.0.203 2024 年 2 月 26 日

318开发工具 中排名 #318

Download history 565/week @ 2024-05-03 485/week @ 2024-05-10 855/week @ 2024-05-17 671/week @ 2024-05-24 732/week @ 2024-05-31 934/week @ 2024-06-07 618/week @ 2024-06-14 504/week @ 2024-06-21 535/week @ 2024-06-28 707/week @ 2024-07-05 720/week @ 2024-07-12 742/week @ 2024-07-19 842/week @ 2024-07-26 685/week @ 2024-08-02 684/week @ 2024-08-09 685/week @ 2024-08-16

3,070 每月下载次数
用于 23 个 crate(2 个直接使用)

Apache-2.0 OR MIT

205KB
4K SLoC

salsa

按需增量计算的泛型框架。

重要警告

这是一个基于 https://github.com/salsa-rs/salsa/ 的分支,根据 rust-analyzer 的需求进行了调整。

致谢

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

核心思想

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

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

想了解更多吗?

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

联系方式

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

依赖关系

~2.4–8MB
~65K SLoC