| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
This README provides instructions to build the DDBC Bindings for your system and documents the platform-specific dependencies.
Architecture Normalization (from mssql_python/ddbc_bindings.py):
Build System Support:
Runtime Loading:
Supporting Windows x64 & ARM64 only
PyBind11: Install PyBind11 using pip.
pip install pybind11Visual Studio Build Tools:
Start Developer Command Prompt for VS 2022.
Inside the Developer Command Prompt window, navigate to the pybind folder and run:
build.batSupporting Apple Silicon Chip M Series (ARM64) as well as Intel based processors (x86_64)
Install CMake & PyBind11
brew install cmake
pip install pybind11Install Microsoft ODBC Driver (msodbcsql18)
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
ACCEPT_EULA=Y brew install msodbcsql18✅ Why this step is important: This package provides development headers (sql.h, sqlext.h) and the dynamic library (libmsodbcsql.18.dylib) required for building ddbc_bindings.
In future versions, we plan to bundle these headers as a developer SDK inside the mssql-python package itself. This will allow full cross-platform compatibility and remove the need for system-level ODBC driver installations during development builds.
Navigate to the pybind directory & run the build script:
./build.shmssql_python/
├── libs/
│ ├── windows/
│ │ ├── x64/
│ │ ├── x86/
│ │ └── arm64/
│ ├── macos/
│ │ ├── arm64/lib/
│ │ └── x86_64/lib/
│ └── linux/
│ ├── debian_ubuntu/
│ │ ├── x86_64/lib/
│ │ └── arm64/lib/
│ ├── rhel/
│ │ ├── x86_64/lib/
│ │ └── arm64/lib/
│ ├── suse/
│ │ └── x86_64/lib/ # ARM64 not supported by Microsoft
│ └── alpine/
│ ├── x86_64/lib/
│ └── arm64/lib/
└── ddbc_bindings.cp{python_version}-{architecture}.{extension}
Windows builds depend on these DLLs for different architectures:
x64 (amd64):
x86 (win32):
ARM64:
macOS builds use universal2 binaries and depend on:
Packaged Dependencies (arm64 & x86_64):
Linux builds support multiple distributions:
Debian/Ubuntu x86_64:
Debian/Ubuntu ARM64:
RHEL/CentOS x86_64:
RHEL/CentOS ARM64:
SUSE/openSUSE x86_64:
Note: SUSE/openSUSE ARM64 is not supported by Microsoft ODBC Driver 18
Alpine x86_64:
Alpine ARM64:
Your build system generates architecture-specific Python extension modules:
Naming Convention: ddbc_bindings.cp{python_version}-{architecture}.{extension}
Examples:
Use std::u16string or the Python C-API when converting between SQLWCHAR data and Python strings. Use simdutf for any pure c++ UTF transcoding. Do not introduce std::wstring in the C++ bindings.
| Back | FazBrowse Home | New Git URL |