kuzudb / kuzu

Embeddable property graph database management system built for query speed and scalability. Implements Cypher.
https://kuzudb.com/
MIT License
1.14k stars 81 forks source link

golang client library? #2003

Open jkanche opened 9 months ago

jkanche commented 9 months ago

Just wondering if you have any plans to develop a golang client?

semihsalihoglu-uw commented 9 months ago

Hi @jkanche,

Sorry for the late reply. This must have escaped our attention when you posted. The answer is no, we don't yet have plans to develop a go client, primarily because no one in the core team knows go well, so we are hesitant to take the responsibility of maintaining it. We hope that as our community grows, people in community can implement and maintain some of these extensions, as done for example in other open-source systems: https://github.com/marcboeker/go-duckdb.

Best,

Semih

dezren39 commented 7 months ago

Hello do you have any recommendations or guidelines regarding how to build an appropriate kuzu client?

mewim commented 7 months ago

Hi @dezren39,

For implmenting a language binding for Go, we suggest you to start with our C API wrapper: https://github.com/kuzudb/kuzu/blob/master/src/include/c_api/kuzu.h and use cgo to create a binding for each function. I think there is not a easy way to directly invoke C++ functions from go, so this seems to be the easist way to get started. Since no one in our team is very familiar with Go, we cannot provide suggestions regarding the API design, etc. of a Go client, but go-duckdb might be a good reference.