From: "Oliver M. Bolzer" Date: 2003-06-06T19:40:05+09:00 Subject: [ANN] VAPOR 0.06, Transparent Persistence to PostgreSQL Hi! I'm in the process of writing (yet another) persistence framework for Ruby that supports versioning and transactions: Vapor. The base functionality as an Object Repository is roughly done and it has reached a state where it can actually played with, so I'd like to release it to the public to get some feedback. http://www.cip.informatik.uni-muenchen.de/~bolzer/vapor/ Vapor is being developed at the University of Munich's Department for Informatics as storage backend for an ongoing project to better manage network elements (including User and Accounts) of the department network. As such, the missing features will definetly be implemented in the next months. From the README: Description ----------- Vapor is a persistent Object-Repository for Ruby, providing transparent persistence of interrelated Ruby application objects to a PostgreSQL database. It's goal is to provide developers with an easy-to-use framework for persistence, that is consistent with OO design and does not interfere with the code of classes that are to be persistently stored. Vapor does not require any knowledge about relational databases to be used, so that developers can concentrate on the task of writing their application logic. Some of Vapor's general design was inspired by the JDO (Java Data Objects) standard. Features -------- * Object-Oriented API * transparent to persistable classes * support for inheritance * flexible queries for object retrieval * generation of human-readable RDBMS schema * metadata specification through separate XML markup * concurrent access by multiple users * uniqueness constrains Planned: * Transactions (ACID) with rollback support * Versioning with complete audit trail * Long Transactions (for Workflow-support, as branches in versioning) * more backends (other RDBMS, local files,...) ------- It has some dependencies, notably Ruby-DBI from CVS (for Array support in DBD::Pg, patch included in Vapor's tar-ball). Documentation is still only VERY basic, but Code examples on how to use Vapor are linked to from the web page. Any feedback or suggestions will be appreciated. -- Oliver M. Bolzer oliver@gol.com GPG (PGP) Fingerprint = 621B 52F6 2AC1 36DB 8761 018F 8786 87AD EF50 D1FF