If you’re interested in contributing to arrow, this vignette explains our approach, at a high-level. If you’re looking for more detailed content, you may want to look at one of the following links:
Our general philosophy when implementing functionality is to match to existing R function signatures which may be familiar to users, whilst exposing any additional functionality available via Arrow. The intention is to allow users to be able to use their existing code with minimal changes, or new code or approaches to learn.
There are a number of ways in which we do this:
when implementing a function with an R equivalent, support the arguments available in R version as much as possible - use the original parameter names and translate to the arrow parameter name inside the function
if there are arrow parameters which do not exist in the R function, allow the user to pass in those options through too
where necessary add extra arguments to the function signature for features that don’t exist in R but do in Arrow (e.g. passing in a schema when reading a CSV dataset)