Я бы посоветовал вам взглянуть на Киотский кабинет .Я нахожусь в процессе написания некоторых оберток Scala вокруг этого, чтобы вы могли получить к нему доступ как к простой старой ванильной карте Scala.Я еще не сделал тест, но, согласно тестам, он быстрее, чем Berkeley DB.(Однако об этом может быть рано говорить, поскольку нет документации по накладным расходам на интеграцию Java.)
Проверьте API JavaDoc здесь .Я играл с ним в REPL, и он работал нормально.
Вот некоторые доказательства из REPL, что он работает:
$ scala -Djava.library.path=/usr/local/lib
Welcome to Scala version 2.8.0.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_15).
Type in expressions to have them evaluated.
Type :help for more information.
scala> :cp /Users/wilfred/.m2/repository/com/fallabs/kyotocabinet/1.15/kyotocabinet-1.15.jar
Added '/Users/wilfred/.m2/repository/com/fallabs/kyotocabinet/1.15/kyotocabinet-1.15.jar'. Your new classpath is:
.:/Users/wilfred/.m2/repository/com/fallabs/kyotocabinet/1.15/kyotocabinet-1.15.jar
scala> import kyotocabinet._
import kyotocabinet._
scala> val db = new DB()
db: kyotocabinet.DB = (null): -1: -1
scala> db.open("casket.kch", DB.OWRITER | DB.OCREATE)
res0: Boolean = true
scala> db.set("foo", "bar")
res1: Boolean = true
scala> db.get("foo")
res2: java.lang.String = bar