16 unstable releases (6 breaking)
|0.16.0||Oct 14, 2020|
|0.15.0||Jul 7, 2020|
|0.14.1||Nov 26, 2019|
|0.12.1||May 30, 2019|
|0.11.1||Mar 27, 2019|
#228 in Procedural macros
18,110 downloads per month
Used in 14 crates (via salsa)
A generic framework for on-demand, incrementalized computation.
Very much a WORK IN PROGRESS at this point. Ready for experimental use but expect frequent breaking changes.
The key idea of
salsa is that you define your program as a set of
queries. Every query is used like function
K -> V that maps from
some key of type
K to a value of type
V. Queries come in two basic
- Inputs: the base inputs to your system. You can change these whenever you like.
- Functions: pure functions (no side effects) that transform your inputs into other values. The results of queries is memoized to avoid recomputing them a lot. When you make changes to the inputs, we'll figure out (fairly intelligently) when we can re-use these memoized values and when we have to recompute them.
To learn more about Salsa, try one of the following: