asami

Asami, the graph database https://github.com/threatgrid/asami
quoll 2021-03-18T03:37:53.017600Z

https://github.com/threatgrid/asami is out. This version now supports transitive attribute queries and lookup refs. Thank you to @mkvlr for this contribution

1🖤1🙏13🎉1⚡
quoll 2021-03-18T03:39:25.018800Z

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.

quoll 2021-03-18T03:40:53.019600Z

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

1
quoll 2021-03-18T17:28:35.027400Z

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.

quoll 2021-03-18T17:28:57.027800Z

If anyone has any insights, then I’d love to hear them please!

mdallastella 2021-03-21T08:45:03.167200Z

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

mdallastella 2021-03-21T08:45:30.167500Z

(performance are quite good)

quoll 2021-03-21T11:21:40.170800Z

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.

quoll 2021-03-21T11:23:58.174200Z

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.

quoll 2021-03-21T11:25:16.176300Z

I saw some comments in #clojure the other day which pointed out where data.json isn’t as good though. They made me hesitant

mdallastella 2021-03-21T11:28:53.176500Z

Yeah, sometimes dependencies are quite hard to figure out... Happy you solved your issue with json.