https://github.com/threatgrid/asami is out. This version now supports transitive attribute queries and lookup refs. Thank you to @mkvlr for this contribution
Also, https://github.com/threatgrid/asami-loom has also been released. This refers to the latest Asami alpha, and also fixes some problems with example code in the README file.
Asami-Loom will need some updates to be able to work on the durable store, but I don’t see anything that looks difficult there
I hit a weird thing in Asami-Loom yesterday.
Asami-Loom extends some of the Asami types, so it depends on Asami. Asami accepts JSON objects to store in the graph, and to do this is uses Zuko. Zuko manages JSON with Cheshire. And finally Cheshire uses JacksonXML (yuck).
(maybe I should rethink the JSON support)
If you go to Asami, and try lein deps :tree
you’ll see this dependency path. But if you go to Asami-Loom and do lein deps :tree
then the tree looks different.
Asami
[org.clojars.quoll/zuko "0.4.6"]
[cheshire "5.10.0"]
[com.fasterxml.jackson.core/jackson-core "2.10.2"]
[com.fasterxml.jackson.dataformat/jackson-dataformat-cbor "2.10.2"]
[com.fasterxml.jackson.dataformat/jackson-dataformat-smile "2.10.2"]
[tigris "0.1.2"]
Asami-Loom
[org.clojars.quoll/zuko "0.4.6"]
[cheshire "5.10.0"]
[com.fasterxml.jackson.dataformat/jackson-dataformat-cbor "2.10.2"]
[com.fasterxml.jackson.dataformat/jackson-dataformat-smile "2.10.2"]
[tigris "0.1.2"]
For some reason, jackson-core
is missing in Asami-Loom, and was causing a ClassNotFoundException
. I can’t find anything that excludes it, or even mentions it explicitly. I’ve worked around it for now by putting in an explicit dependency, but I’m at a loss as to what’s happening.If anyone has any insights, then I’d love to hear them please!
No insights, but I just read about https://github.com/clojure/data.json on #announcements. It's pure Clojure with no external dependencies, maybe it can help...
(performance are quite good)
I just had another project fail to bring in a transitive dependency as well, this time it was a Clojure one, and not about JSON. I’m starting to wonder if it’s just me.
Also, I looked at it more carefully, and realized that Zuko didn’t need it at all, so JSON is gone from there. Instead, it’s just being pulled in by the CLI app in Naga. I could consider the above though.
I saw some comments in #clojure the other day which pointed out where data.json isn’t as good though. They made me hesitant
Yeah, sometimes dependencies are quite hard to figure out... Happy you solved your issue with json.