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.
This system is heavily inspired by adapton, glimmer, and rustc's query system. So credit goes to Eduard-Mihai Burtescu, Matthew Hammer, Yehuda Katz, and Michael Woerister.
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
varieties:
To learn more about Salsa, try one of the following:
hello_world
example;The bulk of the discussion happens in the issues and pull requests, but we have a zulip chat as well.