Pypersyst provides fast, reliable, and flexible object persistence with a small footprint, suitable for embedding in other Python applications.
Fast
Pypersyst is fast because your entire database is stored in-memory, so no file access is required during reads.
During writes, the only file access is when a transaction is logged. Reliable
Pypersyst is reliable because it is transaction-based. All changes to your database are embodied in transactions which are executed atomically; that is, if they fail, partial changes made by the transaction are rolled back.
Pypersyst keeps a backup of your data in two files:
- The snapshot contains the most recent "dump" of your entire database.
- The transaction log contains each transaction committed after the most recent dump occurred.
Flexible
Pypersyst is flexible because it does not restrict the structure or type of data that you store.
When reading data from your database, you use your objects and their relationships within the database directly, with zero impedance mismatch.
The only restrictions are very simple ones for how transactions must be built. Small footprint
Pypersyst has a small footprint because it strives to be a best-in-class implementation of its style of persistence, and leaves higher-level details to other packages.