Подтвердить что ты не робот

Встроенная (чистая Java) база данных для Clojure

Мне нужна встроенная база данных для приложения Clojure. Возможно, это те же критерии, что и для любого другого приложения Java, но я, скорее всего, получаю мнение других людей. Я не собираю SQLite, потому что это не чистая Java, поэтому распространение отдельного приложения становится намного сложнее. Кажется, это путь Apache Derby. Что-нибудь еще я должен рассмотреть?

4b9b3361

Ответ 1

Без сомнения, H2

Вот настройки,

 (def demo-settings
   {
    :classname   "org.h2.Driver"
    :subprotocol "h2:file"
    :subname     (str (System/getProperty "user.dir") "/" "demo")
    :user        "sa"
    :password    ""
   }
  )

И затем обычный Clojure код SQL:

  (with-connection demo-settings 
    (create-table :DEMO_TABLE
           [:M_LABEL "varchar(120)"]
           [:M_DATE "varchar(120)"]
           [:M_COMMENT "varchar(32)"]))

Ответ 2

Вы посмотрели FleetDB? Это база данных Clojure с протоколом JSON и клиентами на нескольких языках. Я подозреваю, что вы, возможно, запустили его, не слишком усердно работая над ним.

Ответ 4

Я использовал встроенную базу данных H2 внутри clojure и использовал clojureQL для доступа к ней. Будьте осторожны, хотя, поскольку база данных находится в процессе, вы не должны использовать ее для больших объемов записей (более 10000 в одной таблице), так как вы получите огромные проблемы с производительностью, так как база данных и ваш код будут совместно использовать одну и ту же JVM

Ответ 5

Я считаю, что Derby отличная 100% встроенная Java-база данных, и она полезна для самых разных приложений, хорошо поддерживаемых активным сообществом и очень хорошо документирована.

Ответ 6

Если вы не против NOSQL, neo4j - встраиваемый граф db с транзакциями, лицензированный под GPL. Самые последние привязки, которые я нашел, https://github.com/hgavin/borneo

В clojure есть интересный проект db-графика с подключаемыми бэкэндами: https://github.com/flatland/jiraph

Еще довольно молодой, но перспективный смотрящий OrientDB может быть достоин: http://www.orientechnologies.com/orient-db.htm

http://github.com/eduardoejp/clj-orient

Затем http://jdbm.sourceforge.net/

Ответ 8

Еще один вариант, который следует учитывать, - это хранилище с ключевыми значениями Chronicle Map, потому что это чистая Java и предоставляет интерфейс Java Map с ванильным интерфейсом, поэтому работа с ним должна быть очень простой, используя Clojure.