The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning. Learn more →
Top 23 Datalog Open-Source Projects
-
cozo
A transactional, relational-graph-vector database that uses Datalog for query. The hippocampus for AI!
-
xtdb
An immutable database for application development and time-travel data compliance, with SQL and XTQL. Developed by @juxt
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
logica
Logica is a logic programming language that compiles to SQL. It runs on Google BigQuery, PostgreSQL and SQLite.
-
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.
-
souffle
Soufflé is a variant of Datalog for tool designers crafting analyses in Horn clauses. Soufflé synthesizes a native parallel C++ program from a logic specification.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
semantic-python-overview
(subjective) overview of projects which are related both to python and semantic technologies (RDF, OWL, Reasoning, ...)
-
treeedb
Generate Soufflé Datalog types, relations, and facts that represent ASTs from a variety of programming languages.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Project mention: Transactional, relational-graph-vector database that uses Datalog for query | news.ycombinator.com | 2024-03-31
Project mention: Mariposa – A programming language with time-travel | news.ycombinator.com | 2024-01-09You don't necessarily need to embed it into the programming language itself to get a ton of value. XTDB (https://github.com/xtdb/xtdb) offer a Clojure, Java and HTTP API for interacting with the database, which is bitemporal and lets you query the database for a specific point in time for example.
Project mention: Prolog language for PostgreSQL proof of concept | news.ycombinator.com | 2024-03-30If you're interested in this I would also recommend you check out Logica[0], which is a datalog-like language that is explicitly made to compile to SQL queries.
0: https://logica.dev/
Datahike [0] provides similar functionality to datomic and is open source. It lacks some features however that Datomic does have [1].
[0]: https://github.com/replikativ/datahike
Project mention: DDlog: A programming language for incremental computation | news.ycombinator.com | 2024-02-13
> In fact, we could have used Datalog to achieve our data goals — but that would mean we have to build our own Datalog implementation, backing data store, etc. We don’t want to do that.
Surprising that creating a whole new language made more sense then a backend. I wonder if they did a proof of concept with an existing logic system like Souffle¹ or Rel² first.
¹ https://github.com/souffle-lang/souffle
² https://relational.ai/blog/rel
Souffle and Cozo mentioned below already implement the whole of "traditional" datalog.
Percival (https://github.com/ekzhang/percival) has some very nice examples showing how you can interactively write and test rules on top of a datalog interpreter.
Bud (http://bloom-lang.net/bud/) is Hellerstein's proof of concept playground. It has bit-rotted in the past few years, but the examples are readable even if you can't easily get it working.
The complexity can be quite good. You can syntactically determine when you've written linear recursion (equivalent to a for loop) vs not. Otherwise, the complexity is what you'd expect from incremental view maintenance in a normal SQL database. Which is to say O(n^k) with k being the number of relations joined, but usually much, much less with appropriate indexes and skew in the data. All the usual tricks concerning data normalization and indexes from databases apply.
https://github.com/topics/datalog?l=rust ... Cozo, Crepe
Crepe: https://github.com/ekzhang/crepe :
> Crepe is a library that allows you to write declarative logic programs in Rust, with a Datalog-like syntax. It provides a procedural macro that generates efficient, safe code and interoperates seamlessly with Rust programs.
Looks like there's not yet a Python grammar for the treeedb tree-sitter: https://github.com/langston-barrett/treeedb :
> Generate Soufflé Datalog types, relations, and facts that represent ASTs from a variety of programming languages.
Looks like roxi supports n3, which adds `=>` "implies" to the Turtle lightweight RDF representation: https://github.com/pbonte/roxi
FWIW rdflib/owl-rl: https://owl-rl.readthedocs.io/en/latest/owlrl.html :
> simple forward chaining rules are used to extend (recursively) the incoming graph with all triples that the rule sets permit (ie, the “deductive closure” of the graph is computed).
ForwardChainingStore and BackwardChainingStore implementations w/ rdflib in Python: https://github.com/RDFLib/FuXi/issues/15
Fast CUDA hashmaps
Gdlog is built on CuCollections.
GPU HashMap libs to benchmark: Warpcore, CuCollections,
https://github.com/NVIDIA/cuCollections
https://github.com/NVIDIA/cccl
https://github.com/sleeepyjack/warpcore
/? Rocm HashMap
DeMoriarty/DOKsparse:
Datalog related posts
- A Logic Language for Distributed SQL Queries
- Transactional, relational-graph-vector database that uses Datalog for query
- Prolog language for PostgreSQL proof of concept
- The "missing" graph datatype already exists. It was invented in the '70s
- DDlog: A programming language for incremental computation
- Datalog in 100 lines of JavaScript (2022)
- Learn Datalog Today
-
A note from our sponsor - WorkOS
workos.com | 30 Apr 2024
Index
What are some of the best open-source Datalog projects? This list will help you:
Project | Stars | |
---|---|---|
1 | cozo | 3,099 |
2 | xtdb | 2,441 |
3 | logica | 1,680 |
4 | datahike | 1,579 |
5 | differential-datalog | 1,334 |
6 | souffle | 861 |
7 | percival | 571 |
8 | securify2 | 568 |
9 | semantic-python-overview | 482 |
10 | crepe | 443 |
11 | datafun | 375 |
12 | ascent | 370 |
13 | modus | 278 |
14 | clojure-graph-resources | 252 |
15 | homebase-react | 201 |
16 | eclair-lang | 192 |
17 | cclyzerpp | 110 |
18 | souffle-haskell | 99 |
19 | entish | 89 |
20 | cl-grph | 50 |
21 | treeedb | 47 |
22 | sparqlprog | 45 |
23 | eacl | 41 |
Sponsored