Skip to content

Latest commit

 

History

History
17 lines (12 loc) · 1.23 KB

README.md

File metadata and controls

17 lines (12 loc) · 1.23 KB

Repo Information

At this stage, this repo (goofy-duck) is a proof of concept for writing Go duckdb extensions using the C API instead of the C++ interface. Without the need to write any C code or cgo. I am not entirely there yet, as seen by the C code here:

void callback(void *info, void *in, void *out);

duckdb-go-api is a lightweight Go wrapper for duckdb's C API functions. In its current state, it is far from any official wrapper, and I mainly use it for the goofy-duck proof of concept.

It differs from go-duckdb because it does not implement Go's SQL driver interface. It only wraps the C API functions in Go functions. Conceptionally, this means that (at some more distant point in time) go-duckdb could use these wrapper functions to replace most of its C code. However, they are not a substitute for each other.

Some copy-pasta for development.

go build --buildmode=c-shared ./
python3 append_extension_metadata.py -l main -n goofy_duck -dv v0.0.1 -ev v0.0.1 -p osx_arm64
../duckdb/build/release/duckdb -unsigned 
 load './goofy_duck.duckdb_extension';

append_extension_metadata.py is copied over from the duckdb repo.