Hey Yuri, you can use the Arrow IPC mechanism to do this:
- https://github.com/apache/arrow/blob/master/format/IPC.md - Python: https://arrow.apache.org/docs/python/ipc.html - C++: https://arrow.apache.org/docs/cpp/namespacearrow_1_1ipc.html - For Java, see the org.apache.arrow.vector.ipc namespace On the C++ side, you can for example use a RecordBatchStreamWriter to write the IPC message, and then on the Java side you could use the ArrowStreamReader to read it. There are some tests here: https://github.com/apache/arrow/blob/master/cpp/src/arrow/ipc/ipc-read-write-test.cc https://github.com/apache/arrow/tree/master/java/vector/src/test/java/org/apache/arrow/vector/ipc There is also integration tests here, although I'm not really familiar with them: https://github.com/apache/arrow/tree/master/integration If you could write a little tutorial/into on how to do this (maybe using Plasma for exchanging the data) and contribute it to the documentation, that would be amazing! Best, Philipp. On Mon, Jul 16, 2018 at 4:14 AM, 周宇睿(闻拙) <yurui....@alibaba-inc.com> wrote: > Hi guys: > > I might miss something quite obviously. But how does Arrow passing objects > across language? Let’s say I have a java program that invoke a c++ function > via JNI, how does the c++ function pass an Arrow RecordBack object back to > Java runtime without memory copy? > > Any advise would be appreciated. > Thanks > Yurui > > from Alimail macOS