cozo VS differential-datalog

Compare cozo vs differential-datalog and see what are their differences.

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. (by vmware)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
cozo differential-datalog
29 22
3,099 1,334
4.3% 0.9%
8.0 0.0
about 1 month ago 10 months ago
Rust Java
Mozilla Public License 2.0 MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

cozo

Posts with mentions or reviews of cozo. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-21.
  • Transactional, relational-graph-vector database that uses Datalog for query
    1 project | news.ycombinator.com | 31 Mar 2024
  • Learn Datalog Today
    8 projects | news.ycombinator.com | 21 Jan 2024
  • Documentation for Rust interface
    1 project | /r/cozodb | 8 Dec 2023
    I can figure parts of it out from https://github.com/cozodb/cozo/blob/main/cozo-core/tests/air_routes.rs which is enough to get started
  • The Ten Rules of Schema Growth
    2 projects | news.ycombinator.com | 31 Oct 2023
    I've been keeping an eye on https://github.com/cozodb/cozo which is pretty close to something I've wanted, a sqlite version of datalog/datomic.
  • Fast Analytics and Graph Traversals with Datalog
    1 project | news.ycombinator.com | 5 Sep 2023
  • These new vector databases are only slightly better than outright scams
    1 project | /r/Database | 24 Jun 2023
    Finally, the one product I was extremely impressed with and felt was genuinely impressive as a database in general was cozodb.
  • An embedded NoSQL database on rust.
    1 project | /r/rust | 17 May 2023
    Take a look at cozodb. It meets most of your goals and I've been really enjoying using it. It might give you some inspiration or something to contribute to.
  • Hyper – A fast and correct HTTP implementation for Rust
    14 projects | news.ycombinator.com | 12 May 2023
    Sure. They're called 'partials' sometimes. Useful if you want to rerender just part of a page. This is a pattern used by HTMX, a 'js framework' that accepts fragments of html in an http response and injects it into the page. This is good because it avoids the flash and state loss of a whole page reload. See the HTMX essay on template fragments for a more complete argument [0].

    This is a go template for an interactive todos app [1] that I'm experimenting with. The html content of the entire page is present in one template definition which is split into 6 inline {{block}} definitions / "fragments". The page supports 5 interactions indicated by {{define}} definitions, each of which reuse various block fragments relevant to that interaction. I'm in the process of converting it to use embedded cozodb [2] queries which act as a server side data store. The idea here is that the entire 'app', including all html fragments, styles, http requests and responses, db schema, and queries are embedded into this single 100-line file.

    [0]: https://htmx.org/essays/template-fragments/

    [1]: https://github.com/infogulch/go-htmx/blob/master/templates/t...

    [2]: https://github.com/cozodb/cozo

  • What Is a Vector Database
    22 projects | news.ycombinator.com | 5 May 2023
    If anyone wants to try a FOSS vector-relational-graph hybrid database for more complicated workloads than simple vector search, here it is: https://github.com/cozodb/cozo/

    About the integrated vector search: https://docs.cozodb.org/en/latest/releases/v0.6.html

    It also does duplicate detection (Minhash-LSH) and full-text search within the query language itself: https://docs.cozodb.org/en/latest/releases/v0.7.html

    HN discussion a few days ago: https://news.ycombinator.com/item?id=35641164

    Disclaimer: I wrote it.

  • Calling Rust folks: please liberate Dart from SQL
    2 projects | /r/FlutterDev | 28 Apr 2023
    You are probably talking about this cozo.

differential-datalog

Posts with mentions or reviews of differential-datalog. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-10-02.
  • DDlog: A programming language for incremental computation
    1 project | news.ycombinator.com | 13 Feb 2024
  • Feldera – a more performant streaming database based on Z-sets
    2 projects | news.ycombinator.com | 2 Oct 2023
    Hi,

    > I wonder if it lives up to the hype.

    We do think so! (disclaimer: I'm a co-founder at Feldera)

    To give some more background: We are co-designing/trialing feldera with several industry/enterprise partners from different domains. Our core team also built differential datalog (https://github.com/vmware/differential-datalog) in the past. And while ddlog is used quite successfully in products today, we believe the many lessons we learned with ddlog will help us to build an even better continuous analytics platform. FYI our code is open-source at https://github.com/feldera/feldera if you'd like to try it out.

    Also feel free to join our community slack channel (https://www.feldera.com/slack/) if you have more questions.

  • Why Are There No Relational DBMSs? [pdf]
    3 projects | news.ycombinator.com | 13 Mar 2023
    The relational model (and generally working at the level of sets/collections, instead of the level of individual values/objects) actually makes it easier to have this kind of incremental computation in a consistent way, I think.

    There's a bunch of work being done on making relational systems work this way. Some interesting reading:

    - https://www.scattered-thoughts.net/writing/an-opinionated-ma...

    - https://materialize.com/ which is built on https://timelydataflow.github.io/differential-dataflow/, which has a lot of research behind it

    - Which also can be a compilation target for Datalog: https://github.com/vmware/differential-datalog

    - Some prototype work on building UI systems in exactly the way you describe using a relational approach: https://riffle.systems/essays/prelude/ (and HN discussion: https://news.ycombinator.com/item?id=30530120)

    (There's a lot more too -- I have a hobby interest in this space, so I have a small collection of links)

  • Differential Datalog: a programming language for incremental computation
    1 project | /r/hypeurls | 8 Nov 2022
    8 projects | news.ycombinator.com | 8 Nov 2022
    Tutorial which I didn’t see linked in the README: https://github.com/vmware/differential-datalog/blob/master/d...
  • Show HN: Cozo – new Graph DB with Datalog, embedded like SQLite, written in Rust
    8 projects | news.ycombinator.com | 8 Nov 2022
    This is amazing!

    Have you looked at differential-datalog? It's rust-based, maintained by VMWare, and has a very rich, well-typed Datalog language. differential-datalog is in-memory only right now, but could be ideal to integrate your graph as a datastore or disk spill cache.

    https://github.com/vmware/differential-datalog

  • Help wanted!
    1 project | /r/ProgrammingLanguages | 24 May 2022
    Sort of related, in my mind at least, is differential dataflow, e.g. https://github.com/vmware/differential-datalog
  • Datalog in JavaScript
    5 projects | news.ycombinator.com | 27 Apr 2022
    It’s fascinating to see so many different parties converging on Datalog for reactive apps & UI.

    - There are several such talks at https://www.hytradboi.com/ (happening this Friday)

    - Roam Research and its clones Athens, Logseq, use Datascript / ClojureScript https://github.com/tonsky/datascript

    - differential-datalog isn’t an end-to-end system, but is highly optimized for quick reactivity https://github.com/vmware/differential-datalog

    - Datalog UI is a Typescript port of some of differential-datalog’s ideas https://datalogui.dev/

  • Call for Help - Open Source Datom/EAV/Fact database in Rust.
    8 projects | /r/rust | 1 Apr 2022
    Rust related https://github.com/vmware/differential-datalog
  • Anything like Svelte/Jetpack Compose for Haskell?
    4 projects | /r/haskell | 4 Dec 2021
    Actually, that makes me wonder whether or not differential datalog falls under that umbrella, and if it could be applied in the same way Compose is.

What are some alternatives?

When comparing cozo and differential-datalog you can also consider the following projects:

slashbase - In-browser database IDE for dev/data workflows. Supports PostgreSQL & MongoDB.

scryer-prolog - A modern Prolog implementation written mostly in Rust.

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.

timely-dataflow - A modular implementation of timely dataflow in Rust

abcl - Armed Bear Common Lisp <git+https://github.com/armedbear/abcl/> <--> <svn+https://abcl.org/svn> Bridge

materialize - The data warehouse for operational workloads.

TCLisp - Truffle Common Lisp

differential-dataflow - An implementation of differential dataflow using timely dataflow on Rust.

QuestDB - An open source time-series database for fast ingest and SQL queries

datalevin - A simple, fast and versatile Datalog database

asami - A flexible graph store, written in Clojure

logica - Logica is a logic programming language that compiles to SQL. It runs on Google BigQuery, PostgreSQL and SQLite.