Skip to content

Commit 4be337c

Browse files
Update text to provide a broader overview
1 parent 82119f7 commit 4be337c

8 files changed

Lines changed: 276 additions & 11 deletions

File tree

PyPI_Description.md

Lines changed: 38 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,46 @@
11
# mssql-python
22

3-
This is a new Python driver for Microsoft SQL Server currently in Public Preview phase.
3+
mssql-python is a new first-party SQL Server driver for Python that has all of the benefits of a fresh start while preserving a familiar experience for developers.
4+
5+
## What makes mssql-python different?
6+
7+
### Powered by DDBC – Direct Database Connectivity
8+
9+
Most Python SQL Server drivers, including pyodbc, route calls through the Driver Manager, which has slightly different implementations across Windows, macOS, and Linux. This results in inconsistent behavior and capabilities across platforms. Additionally, the Driver Manager must be installed separately, creating friction for both new developers and when deploying applications to servers.
10+
11+
At the heart of the driver is DDBC (Direct Database Connectivity) — a lightweight, high-performance C++ layer that replaces the platform’s Driver Manager.
12+
13+
Key Advantages:
14+
15+
- Provides a consistent, cross-platform backend that handles connections, statements, and memory directly.
16+
- Interfaces directly with the native SQL Server drivers.
17+
- Integrates with the same TDS core library that powers the ODBC driver.
18+
19+
### Why is this architecture immportant?
20+
21+
By simplifying the architecture, DDBC delivers:
22+
23+
- Consistency across platforms
24+
- Lower function call overhead
25+
- Zero external dependencies on Windows (`pip install mssql-python` is all you need)
26+
- Full control over connections, memory and statement handling
27+
28+
### Built with PyBind11 + Modern C++ for Performance and Safety
29+
30+
To expose the DDBC engine to Python, mssql-python uses PyBind11 – a modern C++ binding library, instead of ctypes. With ctypes, every call between Python and the ODBC driver involved costly type conversions, manual pointer management, resulting in slow and potentially unsafe code.
31+
32+
PyBind11 provides:
33+
34+
- Native-speed execution with automatic type conversions
35+
- Memory-safe bindings
36+
- Clean and Pythonic API, while performance-critical logic remains in robust, maintainable C++.
437

538
## Public Preview Release
639

7-
We are making progress - The Public Preview of our driver is now available! This marks a significant milestone in our development journey. While we saw a few early adopters of our public preview release, we are introducing the following functionalities to support your applications in a more robust and reliable manner.
40+
We are currently in **Public Preview**. The latest version is v0.10.0, released on September 8, 2025.
841

9-
### What's Included:
42+
## What's new in v0.10.0
1043

11-
- Everything from previous releases
1244
- **SUSE Linux Support:** Added full support for SUSE and openSUSE distributions alongside existing other Linux distros support, broadening enterprise Linux compatibility.
1345
- **Context Manager Support:** Implemented Python `with` statement support for Connection and Cursor classes with automatic transaction management and resource cleanup.
1446
- **Large Text Streaming:** Added Data At Execution (DAE) support for streaming large text parameters (`NVARCHAR(MAX)`, `VARCHAR(MAX)`), eliminating memory constraints for bulk text `execute()` operations.
@@ -26,11 +58,6 @@ For more information, please visit the project link on Github: https://github.co
2658

2759
If you have any feedback, questions or need support please mail us at mssql-python@microsoft.com.
2860

29-
### What's Next:
30-
31-
As we continue to develop and refine the driver, you can expect regular updates that will introduce new features, optimizations, and bug fixes. We encourage you to contribute, provide feedback and report any issues you encounter, as this will help us improve the driver for the final release.
32-
33-
### Stay Tuned:
61+
## What's Next
3462

35-
We appreciate your interest and support in this project. Stay tuned for more updates and enhancements as we work towards delivering a robust and fully-featured driver in coming months.
36-
Thank you for being a part of our journey!
63+
As we continue to develop and refine the driver, you can expect regular updates that will introduce new features, optimizations, and bug fixes. We encourage you to contribute, provide feedback and report any issues you encounter, as this will help us improve the driver ahead of General Availability.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"requests":[{"kind":"cache","version":2},{"kind":"codemodel","version":2},{"kind":"toolchains","version":1},{"kind":"cmakeFiles","version":1}]}
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
{
2+
"cmake" :
3+
{
4+
"generator" :
5+
{
6+
"multiConfig" : true,
7+
"name" : "Visual Studio 17 2022",
8+
"platform" : "ARM64"
9+
},
10+
"paths" :
11+
{
12+
"cmake" : "C:/Program Files/CMake/bin/cmake.exe",
13+
"cpack" : "C:/Program Files/CMake/bin/cpack.exe",
14+
"ctest" : "C:/Program Files/CMake/bin/ctest.exe",
15+
"root" : "C:/Program Files/CMake/share/cmake-4.1"
16+
},
17+
"version" :
18+
{
19+
"isDirty" : false,
20+
"major" : 4,
21+
"minor" : 1,
22+
"patch" : 0,
23+
"string" : "4.1.0-rc4",
24+
"suffix" : "rc4"
25+
}
26+
},
27+
"objects" : [],
28+
"reply" :
29+
{
30+
"client-vscode" :
31+
{
32+
"query.json" :
33+
{
34+
"requests" :
35+
[
36+
{
37+
"kind" : "cache",
38+
"version" : 2
39+
},
40+
{
41+
"kind" : "codemodel",
42+
"version" : 2
43+
},
44+
{
45+
"kind" : "toolchains",
46+
"version" : 1
47+
},
48+
{
49+
"kind" : "cmakeFiles",
50+
"version" : 1
51+
}
52+
],
53+
"responses" :
54+
[
55+
{
56+
"error" : "no buildsystem generated"
57+
},
58+
{
59+
"error" : "no buildsystem generated"
60+
},
61+
{
62+
"error" : "no buildsystem generated"
63+
},
64+
{
65+
"error" : "no buildsystem generated"
66+
}
67+
]
68+
}
69+
}
70+
}
71+
}

mssql_python/CMakeCache.txt

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
# This is the CMakeCache file.
2+
# For build in directory: c:/github/mssql-python/mssql_python
3+
# It was generated by CMake: C:/Program Files/CMake/bin/cmake.exe
4+
# You can edit this file to change values found and used by cmake.
5+
# If you do not want to change any of the values, simply exit the editor.
6+
# If you do want to change a value, simply edit, save, and exit the editor.
7+
# The syntax for the file is as follows:
8+
# KEY:TYPE=VALUE
9+
# KEY is the name of a variable in the cache.
10+
# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
11+
# VALUE is the current value for the KEY.
12+
13+
########################
14+
# EXTERNAL cache entries
15+
########################
16+
17+
//No help, variable specified on the command line.
18+
CMAKE_BUILD_TYPE:STRING=Debug
19+
20+
//Semicolon separated list of supported configuration types, only
21+
// supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything
22+
// else will be ignored.
23+
CMAKE_CONFIGURATION_TYPES:STRING=Debug;Release;MinSizeRel;RelWithDebInfo
24+
25+
//No help, variable specified on the command line.
26+
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE
27+
28+
//Value Computed by CMake.
29+
CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=C:/github/mssql-python/mssql_python/CMakeFiles/pkgRedirects
30+
31+
//Value Computed by CMake
32+
CMAKE_PROJECT_COMPAT_VERSION:STATIC=
33+
34+
//Value Computed by CMake
35+
CMAKE_PROJECT_DESCRIPTION:STATIC=
36+
37+
//Value Computed by CMake
38+
CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
39+
40+
//Value Computed by CMake
41+
CMAKE_PROJECT_NAME:STATIC=ddbc_bindings
42+
43+
//Value Computed by CMake
44+
CMAKE_PROJECT_VERSION:STATIC=
45+
46+
//Value Computed by CMake
47+
CMAKE_PROJECT_VERSION_MAJOR:STATIC=
48+
49+
//Value Computed by CMake
50+
CMAKE_PROJECT_VERSION_MINOR:STATIC=
51+
52+
//Value Computed by CMake
53+
CMAKE_PROJECT_VERSION_PATCH:STATIC=
54+
55+
//Value Computed by CMake
56+
CMAKE_PROJECT_VERSION_TWEAK:STATIC=
57+
58+
//Value Computed by CMake
59+
ddbc_bindings_BINARY_DIR:STATIC=C:/github/mssql-python/mssql_python
60+
61+
//Value Computed by CMake
62+
ddbc_bindings_IS_TOP_LEVEL:STATIC=ON
63+
64+
//Value Computed by CMake
65+
ddbc_bindings_SOURCE_DIR:STATIC=C:/github/mssql-python/mssql_python/pybind
66+
67+
68+
########################
69+
# INTERNAL cache entries
70+
########################
71+
72+
//This is the directory where this CMakeCache.txt was created
73+
CMAKE_CACHEFILE_DIR:INTERNAL=c:/github/mssql-python/mssql_python
74+
//Major version of cmake used to create the current loaded cache
75+
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=4
76+
//Minor version of cmake used to create the current loaded cache
77+
CMAKE_CACHE_MINOR_VERSION:INTERNAL=1
78+
//Patch version of cmake used to create the current loaded cache
79+
CMAKE_CACHE_PATCH_VERSION:INTERNAL=0
80+
//Path to CMake executable.
81+
CMAKE_COMMAND:INTERNAL=C:/Program Files/CMake/bin/cmake.exe
82+
//Path to cpack program executable.
83+
CMAKE_CPACK_COMMAND:INTERNAL=C:/Program Files/CMake/bin/cpack.exe
84+
//Path to ctest program executable.
85+
CMAKE_CTEST_COMMAND:INTERNAL=C:/Program Files/CMake/bin/ctest.exe
86+
//Name of external makefile project generator.
87+
CMAKE_EXTRA_GENERATOR:INTERNAL=
88+
//Name of generator.
89+
CMAKE_GENERATOR:INTERNAL=Visual Studio 17 2022
90+
//Generator instance identifier.
91+
CMAKE_GENERATOR_INSTANCE:INTERNAL=C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools
92+
//Name of generator platform.
93+
CMAKE_GENERATOR_PLATFORM:INTERNAL=
94+
//Name of generator toolset.
95+
CMAKE_GENERATOR_TOOLSET:INTERNAL=
96+
//Source directory with the top level CMakeLists.txt file for this
97+
// project
98+
CMAKE_HOME_DIRECTORY:INTERNAL=C:/github/mssql-python/mssql_python/pybind
99+
//Name of CMakeLists files to read
100+
CMAKE_LIST_FILE_NAME:INTERNAL=CMakeLists.txt
101+
//number of local generators
102+
CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
103+
//Platform information initialized
104+
CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
105+
//Path to CMake installation.
106+
CMAKE_ROOT:INTERNAL=C:/Program Files/CMake/share/cmake-4.1
107+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
set(CMAKE_HOST_SYSTEM "Windows-10.0.26100")
2+
set(CMAKE_HOST_SYSTEM_NAME "Windows")
3+
set(CMAKE_HOST_SYSTEM_VERSION "10.0.26100")
4+
set(CMAKE_HOST_SYSTEM_PROCESSOR "ARM64")
5+
6+
7+
8+
set(CMAKE_SYSTEM "Windows-10.0.26100")
9+
set(CMAKE_SYSTEM_NAME "Windows")
10+
set(CMAKE_SYSTEM_VERSION "10.0.26100")
11+
set(CMAKE_SYSTEM_PROCESSOR "ARM64")
12+
13+
set(CMAKE_CROSSCOMPILING "FALSE")
14+
15+
set(CMAKE_SYSTEM_LOADED 1)
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<ItemGroup Label="ProjectConfigurations">
4+
<ProjectConfiguration Include="Debug|ARM64">
5+
<Configuration>Debug</Configuration>
6+
<Platform>ARM64</Platform>
7+
</ProjectConfiguration>
8+
</ItemGroup>
9+
<PropertyGroup Label="Globals">
10+
<ProjectGuid>{F3FC6D86-508D-3FB1-96D2-995F08B142EC}</ProjectGuid>
11+
<Keyword>Win32Proj</Keyword>
12+
<Platform>ARM64</Platform>
13+
<WindowsTargetPlatformVersion>10.0.26100.0</WindowsTargetPlatformVersion>
14+
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
15+
</PropertyGroup>
16+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props"/>
17+
<PropertyGroup>
18+
<PreferredToolArchitecture>ARM64</PreferredToolArchitecture>
19+
</PropertyGroup>
20+
<PropertyGroup Label="Configuration">
21+
<ConfigurationType>Utility</ConfigurationType>
22+
<CharacterSet>MultiByte</CharacterSet>
23+
<PlatformToolset>v143</PlatformToolset>
24+
</PropertyGroup>
25+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props"/>
26+
<ItemDefinitionGroup>
27+
<PostBuildEvent>
28+
<Command>echo VCTargetsPath=$(VCTargetsPath)</Command>
29+
</PostBuildEvent>
30+
</ItemDefinitionGroup>
31+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/>
32+
</Project>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
2+
---
3+
events:
4+
-
5+
kind: "message-v1"
6+
backtrace:
7+
- "C:/Program Files/CMake/share/cmake-4.1/Modules/CMakeDetermineSystem.cmake:212 (message)"
8+
- "CMakeLists.txt:2 (project)"
9+
message: |
10+
The system is: Windows - 10.0.26100 - ARM64
11+
...
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# This file is generated by cmake for dependency checking of the CMakeCache.txt file

0 commit comments

Comments
 (0)