Perst is McObject's open source, dual license, object-oriented embedded database system (ODBMS). It is available in one edition developed as an all-Java embedded database, and another implemented in C# (for Microsoft .NET Framework applications).
Perst gives developers the ability to sort, store and retrieve objects in their applications with maximum speed and with low memory and storage overhead, while leveraging the object-oriented paradigm of Java and C#.
Perst Features and Benefits
Perst Lite for Java ME (J2ME)
Overview: Perst Embedded Database Specification
In-Depth Information: Perst Introduction and Tutorial (PDF / 38 pages)
Performance Benchmarks: PolePosition and TestIndex
Perst and the Android platform
Perst software (includes complete source code)
Perst documentation
Whether you’re developing open source software or a proprietary, commercial product, McObject has Perst licensing options that fit. Users can redistribute and/or modify Perst under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. For projects that don't fit under the GPL, a commercial license for Perst may be purchased from McObject. McObject also offers Perst product support.
Object-oriented. Perst stores data directly in Java objects, eliminating the translation required for storage in relational and object-relational databases. This boosts run-time performance.
Compact. Perst’s core consists of only five thousand lines of code. The small footprint imposes minimal demands on system resources.
Fast. In the TestIndex [link to page offering TestIndex download] and PolePosition [link to page offering PolePosition download] benchmarks, Perst displays one of its strongest features: its significant performance advantage over Java and .NET embedded database alternatives.
Reliable. Perst supports transactions with the ACID (Atomic, Consistent, Isolated and Durable) properties, and requires no end-user administration.
Rich in development tools. The Perst API is flexible and easy-to-use. The breadth of Perst’s specialized collection classes is unparalleled. These include a classic B-Tree implementation; R-tree indexes for spatial data representation; database containers optimized for memory-only access, and much more.
Transparent persistence. Perst is distinguished by its ease in working with Java and C# objects, and suitability for aspect-oriented programming with tools such as AspectJ and JAssist. The result is greater efficiency in coding.
Source code available. With free, available source code, nothing in Perst is hidden, and the developer gains complete control of the application and its interaction with the database.
Advanced capabilities. Perst’s extras include garbage collection, schema evolution, a “wrapper” that provides a SQL-like database interface (SubSQL), XML import/export, database replication, support for large databases, and more. >top of page
Perst's goal is to provide developers in Java and C# with a convenient and powerful mechanism to deal with large volumes of data. Perst's design principles include the following:
Persistent objects should be accessed in almost the same way as transient objects (transparent persistence)
A database engine should be able to efficiently manage much more data than can fit in main memory
No specialized preprocessors, enhancers, compilers, virtual machines or other tools should be required to use the database or develop applications with it >top of page
“A few years ago who would have thought we'd have object-oriented persistence on mass-market phones? Clearly, Java ME is growing up.”
--Terrence Barr, senior technologist and Java ME evangelist, Sun Microsystems
Perst Lite is McObject’s version of the Perst open source, object-oriented embedded database for mobile and embedded applications on the Java ME platform (also know as Java 2 Platform, Micro Edition or J2ME).
The Perst Lite Java ME database upholds Perst’s well-deserved reputation for simplicity of design and high performance, and also achieves a code size that is about 30% smaller than standard Perst, well within the resource constraints of most mobile devices
Perst Lite retains nearly all the features that have been popular with users of the standard Perst open source Java database. These include B-tree, Patricia Trie, Bit index, T-Tree and R-Tree indexes as well as List, Relation, and Set collections, all protected by transactions supporting the ACID properties (Atomicity, Consistency, Isolation and Durability). Perst Lite also offers multithreaded access, data encryption and asynchronous replication. >top of page
Download Perst Lite. The Perst Lite Java ME database is included in the standard edition Perst embedded database package, with complete source code
ProScout Example Midlet. ProScout is a sample Java ME MIDlet incorporating Perst Lite that has been tested in the phoneME, Nokia S40 and S60, and Blackberry environments. These ProScout pages on Java.Net’s Mobile & Embedded Community provide links to ProScout source code (with commentary to explain database functions within the demo), Getting Started file, JAD and JAR files, and more.
"Porting a Java ME Midlet Between Blackberry and Nokia S40 and S60 Devices", published on Embedded.com, discusses the ProScout midlet and its deployment in several device environments
"Developing an object-oriented database for J2ME-based embedded devices", also on Embedded.com, describes how Perst Lite’s developers met the challenges of providing an object-oriented database in the Java ME environment >top of page
With Perst, McObject offers an all-Java, open source, object-oriented embedded database for Android, the new mobile device platform backed by Google and the Open Handset Alliance.
Click here to download the Android-ready, all-Java Perst embedded database, with complete source code.
Learn more about Perst
McObject also provides TestIndex, an Android-ready embedded database benchmark application that measures performance using both Perst on Android, as well as Android’s bundled SQLite database system. You can download the TestIndex application with complete source code, no registration required; click here for a report on TestIndex benchmark results from both the Android emulator and T-Mobile's G1 smartphone.
Why use Perst in software for Android? Because Perst helps developers create small-footprint embedded Java applications that are fast, reliable, and cost-effective to develop and maintain. Perst can do this because it is
Object-oriented. Perst stores data directly in Java objects, eliminating the translation required for storage in relational and object-relational databases. This boosts run-time performance
Compact. Perst’s core consists of only five thousand lines of code. The small footprint imposes minimal demands on system resources.
Fast. In McObject’s TestIndex benchmark, Perst displays one of its strongest features: its significant performance advantage over Android database alternatives.
Reliable. Perst supports transactions with the ACID (Atomic, Consistent, Isolated and Durable) properties, and requires no end-user administration.
Rich in development tools. The Perst API is flexible and easy-to-use. The breadth of Perst’s specialized collection classes is unparalleled. These include a classic B-Tree implementation; R-tree indexes for spatial data representation; database containers optimized for memory-only access, and much more.
Perst’s exceptional ‘transparent persistence’ simplifies working with Java objects. And Perst’s complete source is available for free download, providing complete developer control over the database system