Replies: 8 comments 1 reply
-
If I understand correctly, Looking at the new Node Neo client, I wonder if it makes sense to rely on the C API directly (which should also play nicer with CGO).
It's definitely a monumental undertaking to switch bindings, but I think it would significantly help in the long term. Using the same API as Neo would also mean we have a direct shared point of reference and the C API would get a lot of priority for bug fixes etc. |
Beta Was this translation helpful? Give feedback.
-
I agree. Both with the expected effort and the necessity... We are currently using the C API function calls, but we need to change how we use them in the (not too far) future. I'd love to have go-duckdb run on top of some bindings-only package. I've been experimenting with our recent C API changes here... I also saw this new discussion here: #342. Although I have no experience with purego, and I am not sure how active that project is. |
Beta Was this translation helpful? Give feedback.
-
Is there a smaller than "rewrite the whole thing" solution that's possible here? Such as:
|
Beta Was this translation helpful? Give feedback.
-
If duckdb were to provide these, how would we then pull them into the project with |
Beta Was this translation helpful? Give feedback.
-
I'm not a go expert, but we seem to have hit the limit of what's possible with plain
But given the various conflicting restrictions in play, I don't see how to do this just with A good first step would be getting the build recipe and artifacts for the |
Beta Was this translation helpful? Give feedback.
-
I agree. I've opened a first PR for OSX arm + amd builds here: duckdb/duckdb#15682. Having both
Sounds like a good way forward to me. We should also discuss how people would best |
Beta Was this translation helpful? Give feedback.
-
Hi All, Our use case is to query duckdb from go with a number of extensions pre-loaded. We don't want to download/cache extensions and some of the extensions we are loading are under active development so we don't want to use the official duckdb repo. We have found that:
Our solution in the end was to build everything as a dynamic library and use rpath in the Not sure if this is helpful at all, though we have found it works for us. |
Beta Was this translation helpful? Give feedback.
-
Closing this as we've just moved this project to import the duckdb-go-bindings package. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
While I understand statically linked duckdb
.a
libraries are not included in upstream packages by default & building them is slow, including binary blobs in the source tree smells bad at best and is a supply chain attack vector (by targeting whoever is building them) at worst. Also seems to be the source of a number of other problems, see: #336, #323, #54, #38, #120, #279, #330It should be possible to build Go bindings entirely from source and/or publicly released artifacts from other projects.
Beta Was this translation helpful? Give feedback.
All reactions