Skip to content

Commit ea2f52a

Browse files
authored
Merge pull request #13 from microsoft/alphaChanges
Alpha changes
2 parents 842cfb4 + a7a7d25 commit ea2f52a

File tree

2 files changed

+65
-1
lines changed

2 files changed

+65
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
**mssql-python** is a Python driver for Microsoft SQL Server and the Azure SQL family of databases. It leverages Direct Database Connectivity (DDBC) that enables direct connections to SQL Server without requiring an external driver manager. Designed to comply with the [DB API 2.0](https://peps.python.org/pep-0249/) specification, this driver also introduces Pythonic enhancements for improved usability and functionality. It supports a full range of database operations, including connection management, query execution, and transaction handling.
44

5-
[Documentation](https://github.com/microsoft/mssql-python/wiki) | [Release Notes](https://github.com/microsoft/mssql-python/releases)
5+
[Documentation](https://github.com/microsoft/mssql-python/wiki) | [Release Notes](https://github.com/microsoft/mssql-python/releases) | [Roadmap](https://github.com/microsoft/mssql-python/roadmap)
66

77
## Installation
88

ROADMAP.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Roadmap for Python Driver for SQL Server
2+
3+
We are thrilled to introduce our upcoming Python driver for SQL Server – a modern, high performant, and developer-friendly SDK designed to enhance your SQL Server database connectivity experience. This roadmap outlines the key structural improvements, new features and upcoming enhancements that will set our driver apart from existing solutions.
4+
5+
Why a New Driver?
6+
7+
Unlike existing Python SQL Server drivers, we are making substantial improvements to performance, maintainability, and usability by re-architecting the core internals. Our focus is on seamless integration between Python and C++, efficient memory management, better state handling, and advanced DBAPI enhancements.
8+
9+
Here’s what’s coming:
10+
11+
12+
**1. Structural changes for abstraction of C++ and Python codebase**
13+
14+
We are undertaking significant structural changes to provide a clear abstraction between C++ code and Python. This will ensure better maintainability, improved performance, and a cleaner codebase. By leveraging existing pybind11 module, we aim to create a seamless integration between the two languages, allowing for efficient execution and easier debugging.
15+
16+
This will improve:
17+
- Maintainability via simplified modular architecture
18+
- Performance via optimized C++ code
19+
- Debugging, traceability and seamless interaction between C++ and Python via with PyBind11 module integration
20+
21+
**2. Future DBAPI Enhancements**
22+
23+
In future releases, we plan to add several DBAPI enhancements, including:
24+
- `Callproc()` : Support for calling stored procedures.
25+
- `setinputsize()` and `setoutputsize()`
26+
- `Output` and `InputOutput` Parameters: Handling of output and input-output parameters in stored procedures.
27+
- Optional DBAPIs: Additional optional DBAPI features to provide more flexibility and functionality for developers.
28+
29+
**3. Connection Pooling**
30+
31+
Connection pooling will be made available soon, allowing for efficient reuse of database connections. This feature will significantly improve performance by reducing the overhead associated with establishing new connections for each database operation .
32+
- Reduce Connection creation overhead
33+
- Improve scalability via efficient reuse of connections
34+
- Enhance multi-threaded operation performance
35+
36+
**4. Cross-Platform Support: MacOS and Linux Distributions**
37+
38+
We are committed to providing cross-platform support for our Python driver. In the next few months, we will release versions compatible with MacOS and various Linux distributions. This will enable developers to use the driver on their preferred operating systems without any compatibility issues.
39+
Soon, you will be able to:
40+
- Use the driver across multiple environments and OS
41+
- Deploy application on cloud-native platforms
42+
- Avoid compatibility issues with system-dependent code
43+
- Flexibility in choosing development environments
44+
45+
**5. Asynchronous Query Execution**
46+
47+
We are also working on adding support for asynchronous query execution. This feature will allow developers to execute queries without blocking the main thread, enabling more responsive and efficient applications. Asynchronous query execution will be particularly beneficial for applications that require high concurrency and low latency .
48+
- No blocking of the main thread
49+
- Faster parallel processing – ideal for high-concurrency applications
50+
- Better integration with async frameworks like asyncio
51+
52+
53+
We are dedicated to continuously improving the Python driver for SQL Server and welcome feedback from the community. Stay tuned for updates and new features as we work towards delivering a high-quality driver that meets your needs.
54+
Join the Conversation!
55+
56+
We are building this for developers, with developers. Your feedback will shape the future of the driver.
57+
- Follow our [Github Repo](https://github.com/microsoft/mssql-python)>
58+
- Join Discussions – Share your ideas and suggestions
59+
- Try our alpha release – Help us refine and optimize the experience
60+
61+
Stay tuned for more updates, and lets build something amazing together. Watch this space for announcements and release timelines.
62+
63+
64+

0 commit comments

Comments
 (0)