DBXTalk database driver nowadays uses a native library called OpenDBX. This library stands as an adaptor between different database drivers, implemented in C. This native library supposes many problems:
- it should be normally compiled for each different platform (Windows, *nix, macosx) and database vendor
- each of its bugs should be fixed in a C source code base
- OpenDBX do not expose the particular behavior of each database vendor, but their common denominator
difficulty for distribution, and problems to locate libraries.
This project proposes to use NativeBoost bindings to remove the necessity of the native openDBX library, simplifying the deployment of applications using relational databases, and moving all the code base to Smalltalk.
This project supposes the replacement of openDBX old FFI bindings by direct nativeBoost bindings to the database drivers. The new drivers should be completely written in Smalltalk, and take care of platform and library resolution in the image side. These drivers should be polymorphic while also enabling the access to specific API provided by database vendors.
Benefits to the Student
- Use a highly reflective dynamic language
- Learn the basics of foreign function interface (and its exponent NativeBoost)
- Learn how to manage external resources and platform specific native code
- Put into usage its object design skills to transform a structured designed library into an object oriented one
Benefits to the Community
- A more malleable and full smalltalk implementation of relational database drivers
- Easier deploy for applications using relational databases
- Database divers exposing their particular apis, providing access to features not available before.