> many parts were written without the intention that those APIs would not be used directly
>From the proceeding sentence, I assume you mean that many parts were not intended for direct use? I think my personal take is that I consider all parts of the C++ libraries to be public. Otherwise, I have trouble imagining how a C/C++ project benefits from Arrow or how to use it before "the perfect API" is available. In general, I agree that higher-level APIs should be used where possible, but when that can't be done it seems clear that one would have to use the lower-level APIs, especially while Arrow is still growing. In addition, if I want to contribute to Arrow, I would also need to interact with the lower-level API at some point and I wouldn't necessarily want to start with trying to contribute code before using it in my own project(s). Aldrin Montana Computer Science PhD Student UC Santa Cruz On Thu, Sep 29, 2022 at 11:21 AM Will Jones <will.jones...@gmail.com> wrote: > In a discussion about new additions to C++ docs, someone had a question: > Should we even be documenting this? > > Long-time contributors to Arrow C++ noted that many parts were written > without the intention that those APIs would not be used directly. Instead, > they were intended as an implementation detail of the high-level bindings > (such as Python, R, Ruby, and so on). This made sense early in the project, > as I understand it, because the high level bindings had the most potential > users and more libraries to collaborate with (for example, PyArrow + > Pandas). > > However, we now have several projects that use the C++ libraries, so this > older outlook on C++ as mostly being an internal library no longer makes > sense. > > Which parts of the C++ libraries are considered public? And are we > effectively delineating that for our users? >