撰寫新驅動程式

目前,新的驅動程式可以使用 C#、C/C++、Go 和 Java 撰寫。以 C/C++ 或 Go 撰寫的驅動程式可以從這些語言以及 C#、Python、R 和 Ruby 中使用。(C# 也可以實驗性地將驅動程式匯出到相同的語言集。)ADBC 的 Rust API 定義仍在開發中,但我們計劃讓它們在這方面與 C#、C/C++ 和 Go 並駕齊驅。

到目前為止,最好使用 Go 撰寫新的驅動程式。C/C++ 在依賴性方面遇到了一些問題,特別是該生態系統中一些不常見的依賴性,當載入到 Python 進程和其他地方時,往往會引起衝突。(例如,ADBC Flight SQL 驅動程式最初是用 C++ 撰寫的,但會與 grpcio 和 pyarrow Python 套件衝突。)對於我們來說,封裝和發布額外的 Go 程式庫也往往比 C/C++ 更容易。

在 Go 中,驅動程式作者可以使用一些框架。go/adbc/driver/internal/driverbase 管理了驅動程式的大部分樣板程式碼和基本狀態管理。go/adbc/pkg 可以圍繞 Go 驅動程式範本化 C ABI 包裝器。特別是如果驅動程式計劃向上游發展,我們建議驅動程式作者考慮使用這些框架。