353solutions / carrow

Go wrapper for Apache Arrow C++
https://arrow.apache.org/
BSD 3-Clause "New" or "Revised" License
15 stars 0 forks source link
analytics apache arrow cpp dataframe golang

carrow - Go bindings to Apache Arrow via C++-API

CircleCI godoc

THIS PROJECT IS NO LONGER MAINTAINED, HAVE A LOOK HERE

Access to Arrow C++ from Go.

FAQ

Why Not Apache Arrow for Go?

We'd like to share memory between Go & Python and the current arrow bindings don't have that option. Since pyarrow uses the C++ Arrow under the hood, we can just pass a s a pointer.

Also, the C++ Arrow library is more maintained than the Go one and have more features.

Development

Debugging

We have Go, C++ & Python code working together. See the Dockerfile on how we get dependencies and set environment for development.

Example using gdb

$ PKG_CONFIG_PATH=/opt/miniconda/lib/pkgconfig LD_LIBRARY_PATH=/opt/miniconda/lib  go build ./_misc/wtr.go
$ LD_LIBRARY_PATH=/opt/miniconda/lib gdb wtr
(gdb) break carrow.cc:write_table
(gdb) run -db /tmp/plasma.db -id 800