Я программирую в основном в узле и как хранилища документов, но сначала хочу прототипировать вызовы данных между клиентом и сервером. В прошлом я использовал lowdb и da-base, чтобы настроить быстрое хранилище данных Json. Есть что-то подобное для Clojure?Есть ли в памяти хранилище данных Clojure?
ответ
Учитывая, что вы всего лишь прототип, если вам не нужна прочность, простой атом будет делать. Если вы хотите, чтобы прочность с использованием простых файлов взглянула на https://github.com/alandipert/enduro
У вас может быть один атом за стол, или вы можете иметь атом с картой таблиц -> документы, что бы вы ни находили проще. Любой запрос будет просто фильтром.
Например, чтобы добавить документ:
(def my-db (atom {}))
(defn add [table doc] (swap! my-db update-in [table] conj doc))
(defn search-by-name [table name]
(filter #(= name (:name %)) (get @my-db table)))
Datascript кажется, идеальный (хотя плохо имени) подходит для ваших нужд. По сути, это легкий магазин памяти, созданный после Datomic. С помощью подхода «карта-в-атоме» вы очень быстро обнаружите, что пишете необычный код для выбора, управления идентификацией и т. Д. Datascript заботится о таких вещах и позволяет легко писать сложные запросы, все еще будучи почти таким же легким, как карта в атоме.
http://www.h2database.com/html/main.html вложим – danneu
смотри также http://stackoverflow.com/questions/6922340/embedded-pure-java-database-for-clojure – edbond
HTTPS://github.com/mmcgrana/fleetdb – edbond