What does HackerNews think of datahike?

A durable Datalog implementation adaptable for distribution.

Language: Clojure

#13 in Clojure
#30 in Database
#10 in React
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

[1]: https://github.com/replikativ/datahike#when-to-choose-datahi...

Oh really interesting. I didn't know about that. I was actually going threw the old Mendat code base and was considering using that.

I would really like a pure Rust version of Datomic for embed use cases.

There is all also Datahike, that is going in that direction too. It is maintained and actively developed.

https://github.com/replikativ/datahike

Having an Datomic like store backed by something like this.

https://github.com/replikativ/datahike

Is an Open Source variant of Datomic.

Lambdaforge wants to eventually have this work with CRDTs.

Using the Matrix ecosystem for this is quite interesting as it solves many problems for you already.

It's not either or as you mentioned! Plan to have user data stored in plain files as well.

Roam's performance suffers mainly on first-load because they are server-first, and they load the entire db into memory at the beginning (such that it's quite fast thereafter).

Once we have true local-first data structures with something like https://github.com/replikativ/datahike, we could still have fast in-memory, but also fast initial load.

Datahike is an immutable Datalog database (like Datomic) powered by the hitchhiker-tree.

As of v0.6.0 it use hitchhiker-tree synchronization for replication.

https://github.com/replikativ/datahike

Disclaimer: Not exactly what you are looking for but very close and might suit your needs or spark your interest anyways.

I've been playing around with datahike[0] a lot recently. It is a Clojure Datalog based DB like Datomic[1] and in fact mimics its API and behavior, but will by default just write to a directory (not a single file last time I checked) and (will?) support other back-ends such as PostgreSQL. Checkout the repo for more information on the differences.

These DBs are not exactly graph DBs (like for example Neo4j) but modelling and (recursively) querying graph data is very much a straight-forward use-case.

Schemas are attribute based rather than record/collection based, so you get the kind of schema flexibility you are used to from graph DBs.

Another interesting fact is that these are 'immutable' or rather value oriented by default. In simple terms: transactions are additions of facts rather than mutations.

Datalog is the primary query language which has really interesting/nice properties. It is worth checking out just for that fact. In Clojure these queries are just normal Clojure data-structures. One of the Clojure linters clj-kondo[2] even ships with static analysis for the soundness of these queries.

[0] https://github.com/replikativ/datahike

[1] https://www.datomic.com/

[2] https://github.com/borkdude/clj-kondo