snakelog
cozo
snakelog | cozo | |
---|---|---|
2 | 30 | |
9 | 3,129 | |
- | 3.0% | |
0.0 | 8.0 | |
about 1 year ago | 17 days ago | |
Python | Rust | |
- | Mozilla Public License 2.0 |
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.
snakelog
-
The "missing" graph datatype already exists. It was invented in the '70s
You can without too much work transpile datalog to SQL. SQL does have such strong support that it is useful https://github.com/philzook58/snakelog or perhaps just do it manually https://www.philipzucker.com/tiny-sqlite-datalog/
-
Show HN: Cozo – new Graph DB with Datalog, embedded like SQLite, written in Rust
Very cool! I love the sqlite install everywhere model.
Could you compare use case with Souffle? https://souffle-lang.github.io/
I'd suggest putting the link to the docs more prominently on the github page
Is the "traditional" datalog `path(x,z) :- edge(x,y), path(y,z).` syntax not pleasant to the modern eye? I've grown to rather like it. Or is there something that syntax can't do?
I've been building a Datalog shim layer in python to bridge across a couple different datalog systems https://github.com/philzook58/snakelog (including a datalog built on top of the python sqlite bindings), so I should look into including yours
cozo
-
I'm writing a new vector search SQLite Extension
Any thoughts on how your project will compare to CozoDB?
https://github.com/cozodb/cozo
- Transactional, relational-graph-vector database that uses Datalog for query
- Learn Datalog Today
-
Documentation for Rust interface
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
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
-
These new vector databases are only slightly better than outright scams
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.
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
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
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.
What are some alternatives?
pycozo - The Python client and Jupyter helper for CozoDB
slashbase - In-browser database IDE for dev/data workflows. Supports PostgreSQL & MongoDB.
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.
abcl - Armed Bear Common Lisp <git+https://github.com/armedbear/abcl/> <--> <svn+https://abcl.org/svn> Bridge
TCLisp - Truffle Common Lisp
asami - A flexible graph store, written in Clojure
QuestDB - An open source time-series database for fast ingest and SQL queries
mentat - UNMAINTAINED A persistent, relational store inspired by Datomic and DataScript.
datascript - Immutable database and Datalog query engine for Clojure, ClojureScript and JS
Victor - What's our vector, Victor? Victor is a toy vector database written in Go.
qdrant - Qdrant - High-performance, massive-scale Vector Database for the next generation of AI. Also available in the cloud https://cloud.qdrant.io/