From GNUstepWiki
Jump to navigation Jump to search

GNUstep Database Library 2 (GDL2) is a set of libraries to map Objective-C objects to rows of relational database management systems (RDBMS). It aims to be compatible with Enterprise Objects Framework (EOF) as released with WebObjects 4.5 from Apple Inc and is used in conjuction with GNUstepWeb.

Current Version: 0.12.0

  • Released February 20, 2009


GDL2 consists of the following components:

  • EOControl
The fundamental abstraction library which includes many non RDBMS related extensions such as KeyValueCoding extensions and other categories. Most importantly it contains the classes which handle the coordination of object graphs namely EOEditingContext.
  • EOAccess
This library implements the underlying mechanism to retrieve and store data in RDBMS. It defines the abstract classes like EOAdaptor which are subclassed to interface with concrete RDBMS implementations.
  • EOInterface
This library implements classes used to synchronize UI components such as NSTextFields, NSButtons and NSTableViews with the state of objects which an EOEditingContext contains.
  • EOAdaptors
This is a collection of concrete EOAdaptor projects needed to connect to specific databases. GDL2 currently supplies an Adaptor for PostgreSQL and SQLite.
  • DBModeler
GDL2 offers an alpha version of DBModeler to create and maintain .eomodel(d) files.
  • EOModeler
This framework is used by DBModeler can be used to write bundles for DBModeler to interface with the application.
  • GDL2Palette
Both Gorm and InterfaceBuilder can be used to create nib files which contain display groups an EOEditingContext. The palette provides those applications with the necessary code to hook up UI components with the model objects.
  • Examples/Trading
The Trading framework, provides an example model, and some routines to create a database from the model, and populate the database with data, while not an example itself it is intended for use by example applications using GDL2 alone, EOInterface or GSWeb, and for higher level tests.
  • Using GDL2 in other Projects
Typically you would want to use EOControl and EOAccess for tools and

EOInterface additionally for applications.

GDL2 based Palettes / DBModeler Bundles:
ADDITIONAL_NATIVE_LIBS += EOControl EOAccess EOInterface EOModeler


Currently GDL2 is meant for developers who can help test and contribute to the current code or are willing to test the interface. It is not ready for general purpose production code. Having said that, it should be mentioned that GDL2 is being used in production environments and has been much tested in those contexts.

Expect the current interface to change especially with respect to functions and methods not documented in EOF 4.5. Even the library names themselves may change.

If you identify something that you need, please let us know at or even better get copyright assignment for the FSF and post a patch.