hello,

We have been discussing the creation of a minimalist C-based data
interface for applications to exchange Arrow columnar data structures
with each other. Some notable features of this interface include:

* A small amount of header-only C code can be copied into downstream
applications, no external dependencies are needed (notable, it is not
required to use Flatbuffers, though there are trade-offs resulting
from this)
* Low development investment (in other words: limited-scope use cases
can be accomplished with little code). Enable C libraries to export
Arrow columnar data at C call sites with minimal code

This "C Data Interface" serves different use cases from the
language-independent IPC protocol and trades away a number of features
(such as forward/backward compatibility) in the interest of minimalism
/ simplicity. It is not a replacement for the IPC protocol and will
only be used to interchange in-process data at C call sites.

The PR providing the specification is here

https://github.com/apache/arrow/pull/5442

A fairly comprehensive C++ implementation of this demonstrating its
use is found here

https://github.com/apache/arrow/pull/5608

(note that other applications implementing the interface may choose to
only support a few features and thus have far less code to write)

Please vote to adopt the SPECIFICATION (GitHub PR #5442).

This vote will be open for at least 72 hours

[ ] +1 Adopt C Data Interface specification
[ ] +0
[ ] -1 Do not adopt because...

Thank you

Reply via email to