=head1 NAME

ObjStore - Perl Extension For C<ObjectStore> OODBMS

=head1 SYNOPSIS

Enjoy perl?  Sick of SQL?  Ready to try something new?

=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

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 :-).

=item * osperlserver

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

=back

=head1 PREREQUISITES

You will need:

- ObjectStore OODBMS (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/ !


##################
# RECENT CHAN@ES #
##################


** 04-06-98 RELEASE 1.34

- Another read-only mode is available for ObjStore::Index.  A
distinction is made between exclusive and shared read-only keys.
The default mode has been changed to _exclusive_ read-only.
Also added support for shift and pop.

- Delay object destruction with ObjStore::Mortician.  Also, general
improvements to the serverization modules.

- Optimized typemap slightly.  Also fixed typemap bugs in
ObjStore::Index::seek & ObjStore::Index::configure.  Optimized
reallocation of (persistent) memory in string assignments.

- Overloaded == & != operator tests no longer work if either argument
is non-persistent.  While this breaks backward compatiblility, I
believe the extra strictness is worth it.

- The automatic safe_require code was apparently a bit _TOO_ safe.
Exceptions were been hidden!  Fixed.

- Improved Digital AXP hints.


** 03-28-98 RELEASE 1.33

- Stringification of persistent objects can no longer cause
ObjectStore exceptions.  Error reporting is therefore much more
robust.

- Use ObjStore::NoInit to delay initialization of the ObjectStore
library.  This opens time to modify configuration parameters (or
for forking) before becoming a known OS client.

- First-cut at database job scheduling.  See ObjStore::Job!

- Blessings were not sticking to databases in certain cases.  Fixed.


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:

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

(If you think you've run into a bug, try running your script with
"perl -MObjStore=PANIC" and mail the output to the mailing list.)

-------------------------------------------------------------------------
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)
