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.
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