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 independently into third-party libraries and downstream applications, no dependencies are needed even on Arrow C++ itself (notably, 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), so as to enable C or C++ libraries to export Arrow columnar data with minimal code. * Data lifetime management hooks so as to properly handle non-trivial data sharing (for example passing Arrow columnar data to an async processing consumer). This "C Data Interface" serves different use cases from the language-independent IPC protocol and trades away a number of features 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 or C++ call sites. The PR providing the specification is here: https://github.com/apache/arrow/pull/5442 In particular, you can read the spec document here: https://github.com/pitrou/arrow/blob/doc-c-data-interface2/docs/source/format/CDataInterface.rst 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 Regards Antoine. (PS: yes, this is in large part a copy/paste of Wes's previous vote email :-))