lidavidm commented on PR #1717: URL: https://github.com/apache/arrow-adbc/pull/1717#issuecomment-2051293841
Cool. Yes, there's reusable support for exposing a C ABI (just like C++ drivers) from Go. This is used for 2 drivers (Snowflake, Flight SQL) and a testing driver: https://github.com/apache/arrow-adbc/tree/main/go/adbc/pkg The C# bindings use this already. > Do you think it is worth writing/documenting this somewhere if it isn't yet? Maybe guidelines for adding new drivers? Because that's a question we had early on (and in hindsight we should have asked!). :) Yes, sorry, I feel bad about this because it is more of a learned experience having worked with gRPC and packaging for a while. Basically, it's gRPC that's the issue: it has global state and only one copy of it can be in a process at a time. But Python wheels require all libraries to be bundled. Hence every Python package that uses gRPC must individually bundle gRPC, which runs into the first problem. That said I can't guarantee that it will fail, it really depends on how exactly everything was built and whether gRPC manages to stomp over itself. The other issue is Protobuf, which uses a global registry, and so you can't have two packages that both use the same Protobuf definitions. (They _may_ have fixed this in the past year or so when they changed the internal implementation? Not sure.) -- 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]
