Skip to content

feat(csharp): Add driver manager#4075

Open
davidhcoe wants to merge 5 commits intoapache:mainfrom
davidhcoe:dev/csharp-drivermanager
Open

feat(csharp): Add driver manager#4075
davidhcoe wants to merge 5 commits intoapache:mainfrom
davidhcoe:dev/csharp-drivermanager

Conversation

@davidhcoe
Copy link
Contributor

Implements C# driver manager matching adbc_driver_manager.h spec:

Core APIs:
• LoadDriver() / FindLoadDriver() - Load native/managed drivers
• OpenDatabaseFromProfile() - TOML profile support
• AdbcLoadFlags - Search control (env/user/system paths)

Features:
• Native + managed (.NET) driver loading
• TOML manifests with env_var() expansion
• Uses a custom TOML parser vs Tomlyn because a strong name is required for dependencies
• Cross-platform driver discovery
• Option merging (profile + explicit)
• Co-located manifest detection

Tests: 40+ unit tests + sample BigQuery/Snowflake implementations (attached, not checked in)

BigQueryDriverManagerTests.txt
SnowflakeDriverManagerTests.txt

@davidhcoe
Copy link
Contributor Author

I debated whether to put this in its own assembly or as a subfolder under the shared Adbc project. I decided on a subfolder approach to reduce the number of dependencies required (especially since the AdbcDrivers are still using submodules and any tests there would require an additional submodule to be managed).

@davidhcoe davidhcoe marked this pull request as ready for review March 13, 2026 03:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant