datafrog
datafrog copied to clipboard
A lightweight Datalog engine in Rust
Hey, I'm just playing around with datafrog and trying to translate some basic datalog queries to the equivalent Rust code. I am wondering what something like the following snippet looks...
Currently, `datafrog` requires that all joins occur on tuples of the form `(K, V)`. This becomes unpleasant for relations with [more than two elements](https://github.com/rust-lang/polonius/blob/cf585fd76c9e65552fd9a8f320c3c2d8f822a75e/polonius-engine/src/output/datafrog_opt.rs#L78), as well as for joins on...
The compiler team is working on a standard policy around its external crates (see https://github.com/rust-lang/compiler-team/pull/19) -- we need to bring this crate into conformance, though the policy is not yet...
Currently the project uses an inconsistent naming scheme for generic arguments, which this PR aims to unify: - `K`, `Key` -> `Key` - `V1`, `Val1` -> `Value1` - `V2`, `Val2`...
@lqd opened rust-lang/polonius#157 a while ago, ~~which solves the `Location::All` problem in what I think is the "correct" way~~. Essentially, it transforms all occurrences of `origin_live_at(O, P)` in rule bodies...
We don't presently have any unit tests...for anything. I think we should create a "base layer" of unit tests where we generate some simple operations and some random inputs and...
It could be interesting to have simple statistics, for example behind a feature flag, of the number of tuples and the time it took to merge and create them, for...
The `RelationLeaper` trait is implemented by `Relation` and has some extra methods for constructing leapers. However, it would be simpler if they were defined directly on the struct rather than...
I had trouble following the existing docs for leapers and leapjoin. This PR adds longer explanations to the main `Leaper` wrappers and their constructors. It also adds links making it...