Crates.io | salsa |
lib.rs | salsa |
version | 0.23.0 |
created_at | 2018-09-28 15:42:16.199905+00 |
updated_at | 2025-06-27 09:42:48.909286+00 |
description | A generic framework for on-demand, incrementalized computation (experimental) |
homepage | |
repository | https://github.com/salsa-rs/salsa |
max_upload_size | |
id | 87002 |
size | 2,454,806 |
A generic framework for on-demand, incrementalized computation.
Very much a WORK IN PROGRESS at this point.
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:
The bulk of the discussion happens in the issues and pull requests, but we have a zulip chat as well.
To create a release and publish to crates.io, update the version
field in Cargo.toml.
After pushed, GitHub Actions will publish the crates to crates.io automatically.