Simple in-memory database using ActiveModel. Primarily developed for Bowline applications. http://github.com/maccman/bowline Supports: * Serialisation * Validations * Callbacks * Observers * Dirty (Changes) * Ruby Marshalling to disk * Redis Examples: require "supermodel" class Test < SuperModel::Base end t = Test.new t.name = "foo" t.save #=> true Test.all Test.first Test.last Test.find_by_name('foo) You can use a random ID rather than the object ID: class Test < SuperModel::Base include SuperModel::RandomID end t = Test.create(:name => "test") t.id #=> "7ee935377bb4aecc54ad4f9126" You can marshal objects to disk on startup/shutdown class Test < SuperModel::Base include SuperModel::Marshal::Model end SuperModel::Marshal.path = "dump.db" SuperModel::Marshal.load at_exit { SuperModel::Marshal.dump } You can use Redis, you need the Redis gem installed: require "redis" class Test < SuperModel::Base include SuperModel::Redis::Model attributes :name indexes :name end Test.find_or_create_by_name("foo")