Skip to content

Wire-protocol ADBC driver

Microsoft SQL Serverv0.5.25

Native MS-TDS 7.4 over TCP/TLS

Back to all drivers
Database
Microsoft SQL Server
Protocol
MS-TDS 7.4
Load name
"arrowtds"
Version
v0.5.25
Platforms
Linux (x64) · Windows (x64)

Overview

This driver talks to Microsoft SQL Server the way SQL Server itself expects: MS-TDS 7.4 over TCP/TLS, implemented natively. It covers SQL Server 2012 through 2025, Azure SQL and Microsoft Fabric Warehouse, and it delivers Apache Arrow RecordBatches end to end without ODBC or any SQL Server client library.

What it does differently

TDS 7.4, implemented natively

The full protocol including encryption negotiation, so the driver connects the way SQL Server expects — with OpenSSL as its only runtime dependency.

VECTOR and geospatial types

SQL Server 2025 VECTOR(n) maps to Arrow fixed-size lists, and geometry / geography convert to GeoArrow WKB.

Straight into Arrow buffers

Result rows decode directly into Arrow column buffers — no intermediate row objects between the socket and your table.

Cloud services covered

The same driver, the same connection string shape, for Azure SQL and Microsoft Fabric Warehouse.

Authentication

  • SQL Server logins (username / password)
  • Trusted / integrated authentication — Windows SSPI
  • Kerberos via GSSAPI / SPNEGO on POSIX
  • Microsoft Entra ID

Connect from your language

The driver loads by name across every ADBC client. Pick your language:

query.py
import adbc_driver_manager.dbapi as dbapi

with dbapi.connect(driver="arrowtds",
                   db_kwargs={"uri": "sqlserver://dbuser:<password>@host:1433/?database=appdb&encrypt=true"}) as conn:
    cur = conn.cursor()
    cur.execute("SELECT * FROM dbo.orders")
    table = cur.fetch_arrow_table()   # ready as Arrow

Install the Microsoft SQL Server driver

install.sh
curl -fsSL https://raw.githubusercontent.com/arpe-io/adbc-drivers/main/install.sh \
  | sh -s -- arrowtds --license /path/to/your.lic
Full installation guide

Reference documentation

Every option, every type mapping and the full troubleshooting guide live in the docs.