- Object-oriented. Perst stores data directly in Java and .NET 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 and PolePosition 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.
Perst Design Principles
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.