cozo VS mangle

Compare cozo vs mangle and see what are their differences.

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
cozo mangle
29 9
3,099 1,036
4.3% 1.0%
8.0 6.7
about 1 month ago 11 days ago
Rust Go
Mozilla Public License 2.0 Apache License 2.0
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.

mangle

Posts with mentions or reviews of mangle. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-21.
  • Learn Datalog Today
    8 projects | news.ycombinator.com | 21 Jan 2024
    Mangle https://github.com/google/mangle is an open-source implementation in golang, it was an explicit goal to make it easy to learn. Meaning: it is easy to recognize the pure datalog part, the syntax is following the good old course material.

    It was discussed here: https://news.ycombinator.com/item?id=33756800

  • Prolog for Data Science
    4 projects | news.ycombinator.com | 7 May 2023
    Logic programming offers a good foundation for anything that people call "rule engines." Within logic programming, there is some variation on the degree of declarativeness.

    Datalog is arguably the minimal core logic programming, similar to what the lambda calculus achieves for functional programming. Unfortunately, it has been forgotten outside of database and query processing realm. A resurgence has happened in recent years, as PL researchers and also industry have discovered the virtues of datalog (e.g. Flix, DataFun). My own attempt at making this more widely known is here https://github.com/google/mangle, a language from the datalog family and its implementation as a go library.

    As the example shows: plain "rules" (or: plain datalog) is rarely enough to capture everything that one wants to express: the question then is, how to combine a pure declarative "kernel" with more general purpose programming (e.g. mapping a list).

    PROLOG offered one answer, already in the 1980s, but I fully reject it: the fact that the writing a program in the wrong order with negation and recursion makes it non-terminating is not something we'd want everyone to deal with. Datalog with stratified recursion is somewhat better, as "layers of rules" is a concept that is easy to understand.

    In mainstream programming languages, the possibility of writing non-terminating programs also exists, but is rarely an issue. That is why I believe a good combination of declarative and general-purpose has to make it really easy to recognize which parts of a program are in the declarative, terminating, safe kernel and which parts require more attention from the programmer.

  • Maps and structs in Mangle datalog
    1 project | /r/datalog | 6 Dec 2022
  • Mangle, a programming language for deductive database programming
    1 project | /r/patient_hackernews | 26 Nov 2022
    1 project | /r/hackernews | 26 Nov 2022
    1 project | /r/hypeurls | 26 Nov 2022
    12 projects | news.ycombinator.com | 26 Nov 2022
  • Mangle: Programming language for deductive database programming
    1 project | news.ycombinator.com | 26 Nov 2022

What are some alternatives?

When comparing cozo and mangle you can also consider the following projects:

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

biscuit-go

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.

pengine - pengines (SWI Prolog) client for Go

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

go - Trealla Prolog embedded in Go using WASM

TCLisp - Truffle Common Lisp

OPA (Open Policy Agent) - Open Policy Agent (OPA) is an open source, general-purpose policy engine.

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

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

asami - A flexible graph store, written in Clojure

dex-lang - Research language for array processing in the Haskell/ML family