Fundamentals

DataCrux incorporates code from a number of different sources. At the lowest level, the SQLite C library is used for database manipulation. Blackhole Media's SQLDatabase wrapper abstracts these low-level C functions. Tree House Ideas has made some enhancements to the SQLDatabase.

At runtime, a property list is loaded into the framework which is used to determine mapping between custom classes and database storage. This property list is loaded and interpreted by THI_Format, which was brought over from another Tree House Ideas project. It's basically a thin layer of logic on top of the raw data structure, and is not tied to SQL conventions.

THI_PipelineController oversees the most complicated parts of deciding which data gets moved to where and in what form, all in order to keep objects and the database in sync. It dispatches instances of THI_Pipeline, which are very unintelligent objects that have a large number of single-task methods to perform grunt work.

Future Directions

This release is very much a beta. At this point, DataCrux will basically do what you ask of it as long as you follow all the rules. If the property list is malformed or the database is inaccessible, results will be unpredictable. In other words, it's functional but not fault tolerant. The priorities are as follows, in order of precendence:

+ Stability/fault tolerance
+ Simplifying and refining the organization of the codebase
+ Easier/more flexible configuration
+ Additional features
+ Deeper Mac OS X 10.3 (Panther) integration