ianmcook commented on code in PR #4525: URL: https://github.com/apache/arrow-adbc/pull/4525#discussion_r3599539220
########## docs/source/driver/authoring.rst: ########## @@ -19,26 +19,100 @@ Writing New Drivers =================== -Currently, new drivers can be written in C#, C/C++, Go, and Java. A driver -written in C/C++ or Go can be used from either of those languages, as well as -C#, Python, R, and Ruby. (C# can experimentally export drivers to the same -set of languages as well.) The Rust API definitions for ADBC are still under -development, but we plan for them to be on par with C#, C/C++, and Go in this -respect. - -It is so far preferable to write new drivers in Go. C/C++ have had issues -with dependencies and in particular some not uncommon dependencies in that -ecosystem tend to cause conflicts when loaded into Python processes and -elsewhere. (For example, the ADBC Flight SQL driver was originally written in -C++ but would have conflicted with the grpcio and pyarrow Python packages.) -It also tends to be easier for us to package and distribute additional Go -libraries than it is for C/C++. - -In Go, some frameworks are available for driver -authors. `go/adbc/driver/internal/driverbase`_ manages much of the boilerplate -and basic state management for drivers. `go/adbc/pkg`_ can template out a C -ABI wrapper around the Go driver. Especially if the driver is planned to go -upstream, we recommend driver authors consider using these frameworks. - -.. _go/adbc/driver/internal/driverbase: https://github.com/apache/arrow-adbc/tree/main/go/adbc/driver/internal/driverbase -.. _go/adbc/pkg: https://github.com/apache/arrow-adbc/tree/main/go/adbc/pkg +Interested in building an ADBC driver? The best place to start is the **ADBC +Driver Foundry**, a community project that hosts most ADBC drivers and provides +the frameworks, templates, testing tools, and distribution infrastructure for +building and shipping them. + +.. button-link:: https://docs.adbc-drivers.org/building-drivers/ + :color: primary + + Building Drivers guide (ADBC Driver Foundry) :octicon:`link-external` + +The rest of this page gives a brief orientation. For anything beyond +that—project templates, frameworks, validation tests, packaging, and +distribution—follow the guide above. + +.. note:: + + The ADBC project itself focuses on the :doc:`ADBC standard + <../format/specification>` and :doc:`client libraries <../client_libraries>`, + not on building and distributing drivers. In most cases, new drivers should + be developed in the ADBC Driver Foundry, not in the ``apache/arrow-adbc`` + repository. + + The ADBC Driver Foundry is an independent community project, separate from Review Comment: Not necessarily, but nor do I think it's the most informative word to describe the relationship between the Foundry and the ADBC project. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
