I was wondering how many people feel this is a priority over any of the ones listed above - given that there's been some questioning of how to increase the adoption of Swift, with discussion moving towards Windows support as a vector for that.
As SQL Server is used largely in enterprise environments, that might affect opinions on the priority of this library.
@Mordil, very excited to see this thread. As you pointed - "SQL Server is used largely in enterprise environments" and currently there is no way to start experiments with Vapor/ Kitura to proof value/benefits for a business/engineers. IMHO support of Microsoft's SQL Server is very important for server-side Swift. I don't know much about driver development but would love to learn or help with by following the process of development.
Im probably gonna create a simple net core CRUD service to interact with a Microsoft SQL server for an application I’m developing right now with Vapor, a native support for it would definitely be better. In my experience is common to interact with mssql either for legacy data or project management software interaction. I don’t mind to use Postgres or MySQL or whatever when I can choose, but more often than not I need to also interact with mssql so that would definitely have an higher priority for me.
I would also like to add. My pitch rightly/wrongly was for ODBC support from Swift. This would maybe more generic than a straight SQL Server implementation.
That's fine - from what I've seen in my preliminary research is that there is a shared wire protocol with SQL Server and at least Oracle: Tabular Data Stream.
I think it'd be a great goal to have a module that handles the wire protocol itself - and then another that consumes the TDS to provide specific SQL Server capabilities.
The Tabular Data Stream, is the lowest level implementation practically possible. The wire protocol would have the benefit of no external dependencies, which I guess would be very much in the Swifty spirit.
Using the Tabular Data Stream and creating packages with support for SQL Server and Oracle wire protocols would be a big step toward supporting large enterprise customers.
While my experience is limited, I studied the TDS protocol about a year back in hopes of creating an implementation in Swift. I didn't end up going anywhere with this, but I am still very interested. The protocol is heavily documented and I second this approach.
Above you mentioned you would be starting an implementation. Is this something that you have already started on?
@spender I would be curious to see what sort of progress you've made up to this point, if any. I've begun an implementation myself and am hoping to get a proof of concept w/ simple connection and query capabilities up and running within a week or so.