Skip to content
/ CurryDB Public

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

License

Notifications You must be signed in to change notification settings

tanakh/CurryDB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published