Repository navigation
v1.0.0
pySQLbridge answers SQL Server's wire protocol convincingly enough that
Excel, Power BI and SSMS connect to a CSV file, a JSON file or an HTTP API
and see a database. Read-only, so only the SELECT surface has to hold up.
pip install pysqlbridge
pysqlbridge --config examples/tables.json
Point it at the base URL of an API and it crawls it: against pokeapi.co that
is 27 tables, against dummyjson.com 8. Or name sources one at a time.
What it answers. Joins, GROUP BY with HAVING, DISTINCT, TOP with PERCENT
and WITH TIES, OFFSET/FETCH, CTEs, derived tables, subqueries including
correlated ones, CROSS and OUTER APPLY, UNION, EXCEPT, INTERSECT, window
functions with frames, STRING_AGG, 86 scalar functions and 10 aggregates.
Windows Authentication through SSPI, TLS tunnelled in TDS packets, and the
catalog views a client reads before it will draw a table list.
How the semantics were settled. Not chosen: compared. 882 queries run
against both this and SQL Server 2025 and are checked for the same values,
the same declared column types, and the same error numbers where both
refuse. That is how trailing spaces in a comparison, the sign of a
remainder, what ROUND does with a half, how MAX orders text, and which
direction a window aggregate adds its values in were all settled, each of
them wrong until it was measured.
What it will not do. Nothing writes. An INSERT, UPDATE, DELETE, MERGE,
TRUNCATE, DROP, ALTER, GRANT, REVOKE or DENY is refused and says so, because
passing one over would report that it worked. Anything else it cannot answer
is refused by name rather than answered wrongly.
1949 tests, run on Python 3.10 through 3.14 on Linux and Windows.