VAPOR
=====

Version:        0.81
Released:       Nov 22, 2003 
Available from: http://vapor.rubyforge.org/ 

$Id: README 279 2003-11-22 12:37:31Z bolzer $


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
 * Transactions (ACID) with rollback support
 * Versioning
 * automatic generation of human-readable RDBMS schema
 * metadata specification through separate XML markup
 * concurrent access by multiple users
 * uniqueness constrains

 Planned:

 * Long Transactions (for Workflow-support, as versioning branches)


Requirements
------------

Required:
 * Ruby 1.6 or later
 * PostgreSQL 7.3 or later (7.2 works but has some rare bugs with inheritance)
 * Ruby DBI 0.0.20 or later
 * Racc Runtime 1.4.3 or later
 * REXML 2.4.0 or later (when using vaporadmin)

Optional:
 * Termios (for password hiding in vaporadmin)


Copyright and License
---------------------

(C) 2003, Oliver M. Bolzer <oliver@fakeroot.net>

 VAPOR is copyrighted software by Oliver M. Bolzer <oliver@fakeroot.net>.
 You can redistribute it and/or modify it under either the terms of the GPL
 or the conditions stated in the LICENCE file.

Warranty
--------

 THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
 IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.


Installation
------------

See INSTALL file.


Documentation
-------------

 Documentation about usage and design of Vapor is located in the doc/
 subdirectory.

 example.html          Code examples for using Vapor
 api/                  User-API Reference
 examples/             Simple Applications using Vapor
 vapor.dtd             DTD for metadata XML
 metadata-example.xml  example metadata XML-file using all features
 design.html           incomplete notes about the internal design of Vapor
 
Bug Reports
-----------

 Feel free to send e-mail to oliver@fakeroot.net for any bug reports,
 suggestions, opinions, contributions, etc.


Special Thanks
--------------

I'd like to thank...

Robert Hofer, for supervising the project and keeping me from being distracted
            by other stuff 

Cyril Bitterich, for being the first user and primary input for the
            design goals 

Yukihiro "Matz" Matsumoto, for creating Ruby

