An Elixir driver for Microsoft SQL Server, implementing the TDS protocol for database connectivity.
Tds is an open-source database driver for Elixir that enables connectivity to Microsoft SQL Server databases using the TDS protocol. It allows Elixir applications to execute queries, manage transactions, and handle data type conversions between Elixir and MSSQL. The driver solves the problem of integrating Elixir-based systems with SQL Server, providing a native and efficient interface.
Elixir developers building applications that need to interact with Microsoft SQL Server databases, particularly those using Ecto for database operations.
Developers choose Tds because it is the primary Elixir driver for MSSQL, offering robust TDS protocol support, SSL encryption, and seamless integration with Ecto. Its design prioritizes reliability and performance, inspired by established drivers like Postgrex.
TDS Driver for Elixir
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements TDS versions 7.3 and 7.4, ensuring reliable communication with modern MSSQL databases, as stated in the features section.
Encodes and decodes Elixir values to and from MSSQL's binary format automatically, simplifying data handling without manual type casting.
Supports encrypted connections with modes like :required and custom SSL options, enhancing security for sensitive database interactions.
Compatible with ecto_sql since version 3.3.4, making it a solid choice for Elixir applications using Ecto for database operations.
Allows setting session-level parameters like isolation levels and timeouts directly from connection options, providing fine-grained control.
Lacks support for key MSSQL functionalities like Federation Authentication, User-Defined Types, and XML, which may require workarounds or alternative solutions.
Does not support all SSL modes, such as :off and :client_cert, limiting flexibility in certain security configurations, as noted in the SSL/TLS section.
Requires additional dependencies for non-standard codepages (e.g., Excoding) and has nuanced execution mode settings that can impact query performance and planning.
The README includes notes about certain branches not being stable or production-ready, which might raise concerns for teams requiring long-term reliability.