GitHub - salsa-rs/salsa: A generic framework for on-demand, incrementalized computation. Inspired by adapton, glimmer, and rustc's query system. (original) (raw)

salsa

Test Book Released API docs Crates.io

A generic framework for on-demand, incrementalized computation.

Salsa Logo

Obligatory warning

Very much a WORK IN PROGRESS at this point.

Credits

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.

Key idea

The key idea of salsa is that you define your program as a set ofqueries. 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:

Want to learn more?

To learn more about Salsa, try one of the following:

Getting in touch

The bulk of the discussion happens in the issuesand pull requests, but we have a zulip chat as well.

Contributing

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.