The arrow package is featureful but can be a little
challenging to install (from source, on Linux, for CI, ...). The
narrow package (also named at earlier times, respectively,
arrowc
, arrowvctrs
, carrow
and sparrow
) provides a very clean and dependency-free interface
for (portable) C interface of Arrow. Our fork of narrow
adds support for C-level access from another package---which is what we test and demonstrate here.
The narrow package, following on its earlier five names, now morphed into the arrow-nanoarrow package which the RcppNanoarrow package tracks.
Because neither narrow nor our fork of
narrow are on CRAN, this package uses the forked version
via Suggests:
which would normally prevent compile-time access---but we use the same approach of
detecting in configure
if narrow
is present and if so enabling the extended build.
So in essence we construct a 'Suggested LinkingTo:' that is optional rather than the hard dependency imposed by an unconditional 'LinkingTo'. (Note that this is not a new trick; RcppRedis has used RcppMsgPack as an optional package-build-time resource in the same way.)
Dirk Eddelbuettel
GPL (>= 2)