Fork me on GitHub

Wow, looks very solid after a first skim. I’ll spend some time doing a lot of newbie trial and error to get data in, I’ll report any huge blind spots in the docs that only the uneducated can find… 😅


It’s tough to provide sufficient info for the various ways people want to bring in data, without also overwhelming people


Tiny detail fwiw, on this page: the link to the “querying” chapter misses and gets you to the index. ( but should be (?)


Ah, thank you. I added numbers to try to put it into some kind of order, and that updated the links

😊 2

Yeah, the whole Clojure world sort of expects people to magically be vets from the start. I think all levels of docs really help, but of course, once you’ve fought your way past it might feel silly (for some) to provide the help that would have been good.


To that point: I’m going on about Clojure syntax and “keywords” without explanation. I felt awkward expecting people to know, but I figured they’re not going to be here if they don’t know Clojure


Hah, well. Even advocating for lowering the bar like I do, I think you’re safe. Finding Asami and being interested does require some knowledge so I’d say you’re all right there 😀


Another question when you are generous with your time - what is the relation to Asami 2? Is it just the next version or is it more dramatic? 🙂


I was debating getting rid of that page entirely. It was important back when it was still in Alpha


Asami 1.x was entirely in-memory. Asami 2.x supports in-memory databases, and on-disk databases


in-memory databases are created with URLs of: asami: or asami: on disk databases are created with URLs of: asami:


Interesting, I’m eager to try that out as well. Is there any info to be found? How are the files found or routed to, etc? 🙂


Current directory of the process. They use the database name to create a directory and then everything is stored in there


So if you start a repl while you’re in /home/me/data then type:

(require '[asami.core :as d])
(def c (d/connect "asami:"))
You now have a directory of /home/me/data/database which contains the files that Asami uses for storage


Very cool, thanks. Can you modify the path via the URL? I just know someone is going to want to specify a path to some persistent volume (running Docker) in my near future… 🙂


Not exactly. I didn’t want people to use URLs like asami:local://../../etc/httpd and do something silly on your system, so I filter .. out from paths. If I wanted to do what you’re saying, then I’d use a symlink, and point the URL to use that


It does handle nested paths though


so asami: will create one/, one/two/, and one/two/three/


Perhaps I should introduce a system property to specify where to open things, and fallback to the pwd when it’s not available


Sounds good, symlinking would take care of it. Keep it simple. 🙂