#查询 #计算 #实验性 #salsa #框架 # #泛型

rust-analyzer-salsa

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

4 个版本

0.17.0-pre.62024 年 1 月 23 日
0.17.0-pre.52024 年 1 月 10 日
0.17.0-pre.42023 年 12 月 7 日
0.17.0-pre.32023 年 11 月 25 日

#227 in 开发工具

Download history 2603/week @ 2024-04-07 2411/week @ 2024-04-14 2986/week @ 2024-04-21 2343/week @ 2024-04-28 1582/week @ 2024-05-05 1637/week @ 2024-05-12 1561/week @ 2024-05-19 1491/week @ 2024-05-26 1758/week @ 2024-06-02 1811/week @ 2024-06-09 1572/week @ 2024-06-16 1204/week @ 2024-06-23 1240/week @ 2024-06-30 918/week @ 2024-07-07 848/week @ 2024-07-14 884/week @ 2024-07-21

4,025 每月下载量
6 个 Crates 中使用(通过 cargo-modules

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 的值。查询有两种基本类型

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

想了解更多吗?

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

联系方式

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

依赖项

约 2–8MB
约 56K SLoC