This is a rough rendering of a page from the old Prevayler wiki. Please see the new wiki for current documentation.

Other PrevalenceLayer implementations:

Name | Language | Author
Bamboo | .NET (C#) | RodrigoOliveira
Florypa | Smalltalk (VisualWorks) | KentBeck, RobMee, HumbertoSoares and KlausWuestefeld
Madeleine | Ruby | AndersBengtsson
Mnemonic | Ruby | LeslieHensley
PyPerSyst | Python | PatrickOBrien
| Smalltalk (Squeak) | JoshFlowers
SPrevayler | Smalltalk (Squeak) | Marco Paga (
SPrevayler | Smalltalk (VisualWorks) | RonieUliana
VTNPrevayler | Objective-C | VictorNg

See: DoesPrevalenceOnlyWorkInJava? and OpenSourcePrevaylerProjects
Is anyone keen to try porting to PHP?

PHP does support object serialization through the serialize() and unserialize() functions. So, there seems to be possible to implement it. To my knowledge, there's nobody trying to port it yet. Who'll be first? :)

-- CarlosVillela

See: Prevayler for the PalmPilot?

A fundamental problem with PHP is the lack of a global object space. Objects generally live for the duration of a single script execution. To my knowledge, the only exception to this rule concerns session objects. These face severe restrictions though: If some object with a class C is held in a session, ALL pages must define class C; otherwise, the object is discarded.

Even if you could make this work somehow, how do you manage concurrency or synchronization? PHP has no multithreading support at all. --StefanReich

What about prevalence in C or CPP? Is it possible, is there anyone trying to port it?

I am pretty sure it is possible to adapt prevayer to C++ but I don't know about the details. I would be glad to join such a project.

What about Common Lisp!?

And what about an Objective CAML (ocaml) implementation ? Its high security at runtime (strong typing and more) and high performance generated native code should make it a language of choice for implementing robust speed devils...

Objective CAML is already cool enough! It does not need this. No ... move along now, nothing for Objective CAML to see here ;)

I would like to join the PHP port ... I am willing to try it through a persistent PHP session. Adam Prall ( ... I NEED this software NOW!

PHP port: I've written a piece of code based on Prevayler today (2003-03-08). Works reasonably fast but with no support for concurrency. Apparently something can be done by locking files...
Real issue tho is the overhead when the system initializes (load data that is). 13 MB test snapshot file was loading in something like 2.5 sec. considering a short execution time of PHP script only rather small data files can be used effectively.
I'm planning to rewrite the code so that it's closer to the original Java implementation. Feel free to contact me if you're interested (