Persistent key-value-store for D?

krylon via Digitalmars-d-learn digitalmars-d-learn at
Wed Apr 26 10:06:52 PDT 2017

Hello everyone,

After several unsuccessful attempts over the last couple of 
years, I made a new attempt at learning D last weekend and this 
time ... something clicked. So first of all, let me say that I 
like it very much so far!

Over the years, I have fallen into the habit when learning a new 
programming language to rewrite a certain program I first started 
working on about 12 years ago. It's not so much that this program 
is super-useful (it really isn't), but that it is a good way to 
learn how a given programming language handles things like 
concurrency, data structures, networking, and user interfaces.

One part of this program requires a DBM-like database library, 
preferably one that handles concurrent read-write-access as 
transparently as possible. In prior incarnations of this program 
I have used Berkeley DB and Tokyocabinet.

I looked at the DUB package registry and asked Google quite a bit 
now, but I did not found such a package for D. So my first 
question is - did I not look hard enough? I found a 
reimplentation of QDBM [1] (the spiritual ancestor of 
Tokyocabinet), but it does not seem to handle concurrency at all. 
Are there other options along those lines? (If there was one that 
also provides transactions, that would be awesome!)

If I understand what I have read so far correctly, it is possible 
to access libraries written in C or C++ from D - in that case, I 
could just use Tokyocabinet directly, but I have not found any 
pointers on how to do this. Is this a feasible option, and if so, 
where can I find documentation on how to do this?


Thank you very much for any insights you feel like sharing with 

More information about the Digitalmars-d-learn mailing list