If you want to get your hands really dirty, here are some big ideas to contemplate.
After many years developing FreeTDS™, we've learned quite a bit about the protocol and how to write database libraries. Unfortunately, though, one of the things holding us back — and, obviously hampering the project — is the underlying utility library.
This wouldn't be a from-scratch effort; most of the code is already written. What's needed is a more uniform API that better reflects the TDS protocol, and that does not attempt character set conversions immediately on receipt of the data.
This would be a new client library modelled after stdio
, a project to demonstrate what database programming should be like.