CurryDB

CurryDB: Simple, Polymorphic, Persistent, Transactional, In-memory Key/Value Database


Keywords
database, library, program, Propose Tags, , Last Documentation, CurryDB-0.1.1.0.tar.gz, browse, Package description, Package maintainers, HideyukiTanaka, edit package information
License
BSD-3-Clause
Install
cabal install CurryDB-0.1.1.0

Documentation

CurryDB

CurryDB: Simple, Polymorphic, Persistent, Transactional, In-memory Key/Value Database

Build Status

Install

Pre requirement:

Clone repository or unpack archive, then follow below instructions:

$ cabal update
$ cabal install

Features

CurryDB is a Simple, Polymorphic, Persistent and Transactional in-memory key/value database.

Simple and modern

Very simple implementation by using many modern abstraction techniques. For example, Conduit (a.k.a. Iteratee I/O) for efficient and highly abstract network programming, Lightweight threads and STM for robust concurrent programming. And following features also helping.

Polymorphic

CurryDB is polymorphic DB. This means it can contain any data structure you want to store.

For demonstrating this feature, memcacned and redis protocol support are included.

Persistent

CurryDB uses persistent data structures (a.k.a. purely functional data structures) such as hash array mapped tries (HAMT) and finger trees.

It enables simple concurrent implementation and get rid of any troublesome locks. The code is fully concurrent.

Transactional

CurryDB supports full transactional features (ACID). It uses software transactional memory (STM) for this purpose. This permits to write very concise codes.