KiokuDB

Object Graph storage engine
Download

KiokuDB Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Perl Artistic License
  • Price:
  • FREE
  • Publisher Name:
  • Yuval Kogman
  • Publisher web site:
  • http://search.cpan.org/~nobull/

KiokuDB Tags


KiokuDB Description

Object Graph storage engine The KiokuDB module is a Moose based frontend to various data stores, somewhere in between Tangram and Pixie.Its purpose is to provide persistence for "regular" objects with as little effort as possible, without sacrificing control over how persistence is actually done, especially for harder to serialize objects.KiokuDB is also non-invasive: it does not use ties, AUTOLOAD, proxy objects, sv_magic or any other type of trickery.Many features important for proper Perl space semantics are supported, including shared data, circular structures, weak references, tied structures, etc.KiokuDB is meant to solve two related persistence problems:Transparent persistenceStore arbitrary objects without changing their class definitions or worrying about schema details, and without needing to conform to the limitations of a relational model.Interoperability Persisting arbitrary objects in a way that is compatible with existing data/code (for example interoprating with another app using CouchDB with JSPON semantics).SYNOPSIS use KiokuDB; # use a DSN my $d = KiokuDB->connect( $dsn, %args ); # or manually instantiate a backend my $d = KiokuDB->new( backend => KiokuDB::Backend::Files->new( dir => "/tmp/foo", serializer => "yaml", ), ); # create a scope object my $s = $d->new_scope; # takes a snapshot of $some_object my $uuid = $d->store($some_object); # or with a custom ID: $d->store( $id => $some_object ); # $id can be any string # retrieve by ID my $some_object = $d->lookup($uuid); # some backends (like DBI) support simple searchs $d->search({ name => "foo" }); # others use GIN queries (DBI supports both) $d->search($gin_query); Requirements: · Perl


KiokuDB Related Software