Elephant is a persistent object protocol and database for Common Lisp. The persistent protocol component of elephant overrides class creation and standard slot accesses using the Meta Object Protocol (MOP) to render slot values persistent. Database functionality includes the ability to persistently index and retrieve ordered sets of class instances and ordinary lisp values.
Values are stored persistently on disk by one or more 'data stores', which currently consist of Berkeley DB and SQL servers via CL-SQL. A pure-lisp data store is under development. Elephant inherits the ACID properties of these stores, and by design is transactional, multi-threaded, and in the case of Berkeley DB, process safe.