=head1 NAME

ObjStore - Perl Extension For C<ObjectStore> OODBMS

=head1 SYNOPSIS

Like perl?  Sick of SQL?  Ready to try something new?  This extension
implements databases that look exactly like normal perl.  These same
databases can also be easily extended with arbitrary C++ objects.

=head1 DESCRIPTION

ObjectStore is the market leader in object-oriented databases
http://www.odi.com (NASDAQ: ODIS).  They use a unique Cache-Forward
Architecture to make persistent data available in literally the most
efficient manner possible.

Prior to this joining of forces ObjectStore was too radical a design
decision for many applications and perl5 did not have a simple way of
storing complex data persistently.  Now there is an easy way to build
database applications (especially if you are concerned about
preserving your ideals of encapsulation).

=head2 INCLUDED TOOLS

=over 4

=item * ospeek

Prints out databases in Data::Dumper style.

=item * posh & qtposh

Like C<sh>/C<csh>, except that you can I<change directory> B<into>
your database and walk around the data from the inside.  You can also
invoke methods on your objects or write custom reports (in perl, of
course :-).  (Also similar to C<isql>/C<wisql>.)

=item * osperlserver

Provides remote method invokation, database job scheduling, and
server-object collaboration services.  Completely generic!

=back

=head1 PREREQUISITES

You will need:

- ObjectStore 5.X (see http://www.odi.com; evaluations are available!)

- Perl 5.004_04 (or perl 5.005, once released)

- Tree::Fat & Test perl extensions

- ExtUtils::ExCxx (only needed on Digital UNIX, HP (5.x), OS/2 (3.x),
  or MS Windows NT/95; send email)

See http://www.perl.com/CPAN/authors/id/JPRIT/ !


=head1 R!CENT CHANGES


** 07-07-98 RELEASE 1.41

This release will probably be the last release before 2.00.  This
release is important because it is appears to be able to manipulate
2.00 databases without requiring ObjectStore 5.1 and shared libraries.
Release 2.00 and subsequent releases will require ObjectStore 5.1.

- If an object is blessed into a package matching RE m/_fake\:\:/,
then the package will be ignored (on reads).  A script for generic
import of CSV files is now a trival exercise.

- os_transaction::checkpoint has been tested and appears to work as
well as standard transactions.  The performance gain appears
measurable.

- Indices now auto-dereference (just once) in the case that references
are used.

- Deadlocks are no longer automatic retried.  If you still need this,
it is easy enough to cobble it together yourself.


** 05-30-98 RELEASE 1.40

- Scrubbed code with Insure++ (Parasoft).  Insure++ is a product
similar to Purify, except better.  Fixed a bug in the os_Dictionary
hash representation.

- A better effort is made to vivify the @ISA tree when it is
(partially) unloadable.  This change is aimed towards allowing the
creation of databases without any .pm file support (discardible
scaffolding).

- Relaxed restrictions on comparing index keys of differing type.

- & the usual suite of minor bug fixes...

- Edit the Makefile.PL to add -DOSP_SAFE_BRIDGE if you still need it!!


see ./INSTALL for hints on installation
see ./UPGRADE to evolve databases from prior releases
see ./TODO for a list of stuff in the queue
see ./CHANGES for a visionary perspective


Perl-ObjectStore mailing list is waiting for your contribution--

- If you're having trouble or if you've run into a bug.

- Any job postings (as long as they relate to this extension.  FYI, I
am not myself currently looking, but you never know...  :-)

majordomo@parallax.co.uk   "subscribe perl-objectstore you@your.company.com"

-------------------------------------------------------------------------
Copyright © 1997-1998 Joshua Nathaniel Pritikin.  All rights reserved.

This package is free software and is provided "as is" without express
or implied warranty.  It may be used, redistributed and/or modified
under the terms of the Perl Artistic License (see
http://www.perl.com/perl/misc/Artistic.html)
