Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 data_objects
Octocat-spinner-32 do_derby
Octocat-spinner-32 do_h2
Octocat-spinner-32 do_hsqldb
Octocat-spinner-32 do_jdbc
Octocat-spinner-32 do_mysql
Octocat-spinner-32 do_postgres
Octocat-spinner-32 do_sqlite3
Octocat-spinner-32 jdbc_drivers
Octocat-spinner-32 tasks
Octocat-spinner-32 .gitignore
Octocat-spinner-32 README.markdown
Octocat-spinner-32 Rakefile
Octocat-spinner-32 pom.xml

DataObjects README

DataObjects.rb is an attempt to rewrite existing Ruby database drivers to conform to one, standard interface.

At present, PostgreSQL, MySQL and SQLite drivers are available. More drivers are currently under development. If you feel like living on the edge, install and test drivers directly from this repository.


To connect to and query the database, DataObjects relies on native extensions. Native extensions have been written in both C (for the MRI/Ruby 1.8.6 platform) and Java (for the JRuby platform). Individual drivers may include extensions for both Ruby MRI and JRuby, or one or the other.

C extensions have been written using according to each vendor API. Java drivers use the standard JDBC API. Although there are dialectical differences between the Java drivers, the JDBC API ensures a reasonable amount of commonality. As such, the Java extensions rely on a common do_jdbc gem, which wraps code that is common to all of the Java extensions.


To install a driver from the repository cd into the driver directory and use the provided rake install task to install for the default platform.

Copyright and Licensing

Please see the copyright notices in each individual driver README or LICENSE file. Java-based drivers bundle JDBC driver JAR files, which may be provided under a license that is more restrictive than the MIT License used by the data_objects gem itself.

Something went wrong with that request. Please try again.