EntityModel cross-language database abstraction
 my $model = EntityModel->new->load_from(
   JSON => \q({ "entity" : [
       { "name" : "article", "field" : [
         { "name" : "idarticle", "type" : "bigserial" },
         { "name" : "title",     "type" : "varchar" },
         { "name" : "content",   "type" : "text" }
       ], "primary" : { "field" : [ "idarticle" ], "separator" : ":" }
   ] })
 )->apply('PostgreSQL' => { service => 'devserver' }
 )->apply('Perl' => { namespace => 'Entity' });
 my $article = Entity::Article->create(
   title => 'Test article',
   content => 'Article content'
 );
 my ($match) = Entity::Article->find(
   title => 'Test article'
 );
 $match->title('Updated title');
    

Database abstraction across languages

EntityModel provides a data storage abstraction system (in the form of an Object Relational Model) for accessing backend storage from Perl and other languages. The intent is to take a model definition and generate or update database tables, caching layer and the corresponding code (Perl/C++/JS) for accessing data.

Download, Documentation, Login, CPAN, Google+