datafrog
scryer-prolog
datafrog | scryer-prolog | |
---|---|---|
7 | 42 | |
781 | 1,901 | |
2.4% | - | |
0.0 | 9.7 | |
over 2 years ago | 6 days ago | |
Rust | Rust | |
Apache License 2.0 | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
datafrog
- Datafrog: A lightweight Datalog engine in Rust
-
Differential Datalog: a programming language for incremental computation
What is the difference with https://github.com/rust-lang/datafrog? It’s a Datalog engine written by Frank McSherry on top of differential dataflow, that’s used here also
-
Announcing: MiniRust
C++ is arguably the most complex programming language ever. There is not much to be gained by comparing against the supremum.
Take a look at the languages that rust was influenced by (https://en.wikipedia.org/wiki/Rust_(programming_language)) those aren't languages with straightforward compilation semantics.
There is a reason why rust has a datalog engine build into the compiler (https://github.com/rust-lang/datafrog). Which is imho totally rad and awesome, but really hard to fully form a mental model of without a spec.
-
Help with iterator efficiency
Datalog may be obscure, but its actually what the next generation of the borrow checker is going to be implemented in, you may find inspiration here: https://github.com/rust-lang/datafrog
- Scryer-Prolog: modern Prolog implementation written mostly in Rust
-
Differential Dataflow for Mere Mortals
They used to but Frank McSherry (author of differential dataflow) wrote them a specialized version without all the dataflow infrastructure [1]. It's part of the rust-lang nursery [2] now but hasn't been updated in a while, so I'm not sure what happened to it.
[1] https://github.com/frankmcsherry/blog/blob/master/posts/2018...
[2] https://github.com/rust-lang/datafrog
scryer-prolog
-
The Shen Programming Language
thank you! the scryer community deserves much of the credit too. everyone is welcome and encouraged to join us at https://github.com/mthom/scryer-prolog! some exciting plans in the pipe
- Appreciating Clpz_t/2
- Advent of Code 2023 is nigh
- Scryer Prolog version 0.9.3 is out
- Announcing Basic WebAssembly support in Scryer Prolog
- Basic WebAssembly Support in Scryer Prolog
- Scryer-Prolog 0.9.2
- Release v1.1.0 of PostgreSQL-Prolog
-
Djot is a light markup syntax
Djot is the markup syntax that is used for the documentation of Scryer Prolog, using a parser written in Prolog:
https://github.com/aarroyoc/djota
It works well so far. One of the few limitations I noticed so far pertains to the formatting of tables. For instance, consider the table used in library(format) to describe control sequences:
https://github.com/mthom/scryer-prolog/blob/b0566e41503a6c8d...
It contains several entries that span multiple lines, yet are meant to denote only a single row of the table, such as:
% | `~Nr` | where N is an integer between 2 and 36: format the |
- The First Annual Scryer Prolog Meetup
What are some alternatives?
polonius - Defines the Rust borrow checker.
swipl-devel - SWI-Prolog Main development repository
dida - Differential dataflow for mere mortals
logica - Logica is a logic programming language that compiles to SQL. It runs on Google BigQuery, PostgreSQL and SQLite.
psac - Parallel Self-Adjusting Computation
differential-datalog - DDlog is a programming language for incremental computation. It is well suited for writing programs that continuously update their output in response to input changes. A DDlog programmer does not write incremental algorithms; instead they specify the desired input-output mapping in a declarative manner.
database-stream-processor - Streaming and Incremental Computation Framework
materialize - The data warehouse for operational workloads.
datalog_rust
tau-prolog - An open source Prolog interpreter in JavaScript
a-mir-formality - a model of MIR and the Rust type/trait system
prolog - The only reasonable scripting engine for Go.