CoreObject is a version-controlled object database for Objective-C that supports powerful undo, semantic merging, and real-time collaborative editing. It’s part of the Étoilé project.
Some of the features include:
- a DVCS (focusing on personal version control right now) with branching and cheap copying, designed to work with very fine-grained commits (i.e. applications where every UI action creates a commit)
- selective undo, based on diff/merge of object graphs (see http://coreobject.org/technotes/#diffmerge)
- robust real-time collaborative editing, including sharing of revision history, per-user undo, all without operational transform
- powerful undo system that is persistent (survives app restarts), branching, and can record all possible changes to a CoreObject store. You can undo things like reverting to past states, switching branches, deleting branches, deleting documents, etc.
- automatic, metamodel-driven copying of subsets of an object graph
CoreObject is MIT-licensed. It has an extensive test suite which is passing on GNUstep and Mac OS X 10.7+, but our demo applications only work on Mac OS X 10.7+.
The source code, including dependencies, can be downloaded here: http://download.gna.org/etoile/coreobject/CoreObject-0.5.tgz
You can grab the source code directory from Github, but without the dependencies: https://github.com/etoile/CoreObject
For bugs reports, see: https://github.com/etoile/CoreObject/issues