Skip to content

doogle/shittydb

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ShittyDB

ShittyDB is a fast, scalable key-value store written in lightweight, asynchronous, embeddable, distributed Python. The library exposes a very simple, easy-to-use API that is easily callable from Python and Ruby (wrappers for other languages are forthcoming).

In Python:

import shittydb
shittydb.set('foo', 'this is really fast')
shittydb.get('foo')

In Ruby:

require 'shittydb'

ShittyDB.set('foo', 'this is really fast')
ShittyDB.get('foo')

ShittyDB is certified 100% robust and failsafe with ACID and BASE transactions.

The current release is version 0.0. Please have a look at the source code. We are accepting all improvements and additions from the open-source community.

FAQ

Are there performance benchmarks?

Those are forthcoming as soon as I can find some that make it look really good.

What is ShittyDB's story regarding consistency?

ShittyDB is strongly consistent and changes are written to disk on each call to shittydb.set.

Are ShittyDB clients available in other languages?

Those are forthcoming.

Can you change ShittyDB's name? It's offensive and HR won't let me use it for that reason.

No, it's named after my grandfather.

Does ShittyDB support SQL?

No, but you can write an extension to ShittyDB that handles SQL. For example:

import re
def shitty_sql(sql):
    match = re.match("SELECT \\* FROM ([a-z])", sql).group(1)
    return shittydb.get(match)

Usage:

shittydb.set("foo", "abc")
shitty_sql("SELECT * FROM foo")

How do you distribute ShittyDB?

What?

You said up there it was a distributed key-value store.

Sorry, I must have misspoken.

About

A confoundingly fast key-value store

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 83.5%
  • Ruby 16.5%