Anardb provides persistent classes, which can have slots indexed in hash-tables, and the ability to perform ACID transactions on them from multiple processes simultaneously.
It requires UN*X filesystem semantics and has been tested on Allegro x86 but should be portable to SBCL, etc.
Anardb has not been deployed in production and it is likely that there are bugs.
Email John Fremlin at MSI. His address is jf@[the domain without www].
View or edit the Cliki entry.
Start Lisp. Get asdf-install.
CL-USER> (asdf-install:install 'anardb)
CL-USER> (asdf:operate 'asdf:load-op 'anardb)
CL-USER> (anardb:defdbclass lisp-company () ((name :index t) (location :index t))) #<STANDARD-CLASS LISP-COMPANY> CL-USER> (make-instance 'lisp-company :name "MSI" :location "Tokyo") #<#<LISP-COMPANY @ #x1001160112> NAME: "MSI" LOCATION: "Tokyo"> CL-USER> (find-lisp-company :location "Tokyo") (#<#<LISP-COMPANY @ #x1001160112> NAME: "MSI" LOCATION: "Tokyo">) T CL-USER> (find-lisp-company :location "Osaka") NIL NIL
The API is documented.
git clone http://cl-www.msi.co.jp/projects/anardb/anardb.git