Salvia
Incremental computing framework in async Rust.
Obligatory warning
This project is highly experimental and mostly is proof-of-concept. Unless you absolutely need
asyncconsider usingsalsacrate instead.
Primer
- Async in Rust
- Incremental computing
- Adapton - research initiative for incremental computing
salsa- incremental computation framework for sync Rust
salvia allows you to define queries (functions which values will be cached) and inputs
("functions" which value is set directly by user).
Upon execution, queries record which other queries or inputs it called and can avoid
recalculation when none of those values change.
salvia was inspired by salsa library.
As a major difference from it, this crate was designed to work in async Rust from the start
and had to make some concessions to achieve that.
Usage example
use ;
;
async
async
License
This project is dual licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.