Perst was launched in 2003, in Russia. It was designed to achieve high-performance by tightly integrating the database with the programming language: Perst directly stores data in the language objects. In 2006 McObject LLC, based in Issaquah, WA took over the development of Perst. It continues to offer free downloads and has added commercial license options. Perst was first written in Java, and ported to C#. Although originally designed for desktop- and server-based software, Perst has also found usage in providing database management for mobile applications running on devices such as smartphones. These mobile devices typically have hardware constraints, with limited RAM and few CPU cycles available and non-standard operating requirements.
Versions
Currently available versions of Perst are Perst for.NET, Perst for Java and Perst Lite. Perst for Java and Perst Lite are bundled in a single software distribution. Perst for.NET supports C# versions 1.0 and 2.0 with the same source code. Support for specific C# 2.0 features is provided at compile time. It is compatible with both standard and compact.NET frameworks, as well as Silverlight, and can operate on both Microsoft Windows Phone 7 and Windows Embedded Compact. Perst for Java supports J2SE/ J2EE versions 1.3 and 1.4, as well as J2SE/J2EE version 5. It is compatible with the Android smartphone environment. Perst Lite is the Perst for Java implementation that runs on devices based on the Java ME mobile device platform. It has a memory footprint approximately 30 percent smaller than standard Perst.
In detail
Size
The Perst engine’s size is 5,000 lines of source code, and its run timerandom-access memory needs range from 30K to 300K.]
Perst provides a subset of SQL for filtering elements of a container class. For access to stored objects, Perst implements specialized collection classes including:
Time series class to deal efficiently with small fixed-size objects, such as stock quotes
Specialized versions of collections for thick indexes and bit indexes
Schema evolution
To facilitate changes to an existing database design, Perst implements “lazy” database schema evolution. When an object instance is loaded from the database, its class descriptor is compared with the format of the class in the application. If they are not identical, and the object is to be changed, then the object is converted and stored in the new format. With an “eager” schema evolution format changes would sweep through the database all at once.
ProScout is a demo midlet for using Perst Lite in the Java ME environment. The demonstration is of a discrete note-taking facility for a sports recruiter. Originally implemented for the Blackberry, it has also been deployed on the Nokia S60. McObject provides a demo app of a CRM system using Perst for.NET, including a fully text-searchable contact database that runs in the desktop browser in Silverlight. Andy Wigley, of appamundi, ported this demo app to Windows Phone and described the project in a series of blog postings.
Licensing
Users can redistribute and/or modify Perst under the terms of the GNU General Public License as published by the Free Software Foundation. For individuals or organizations that cannot or do not wish to comply with the GPL, a commercial license is available from McObject.