You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@arrow.apache.org by GitBox <gi...@apache.org> on 2022/07/08 17:26:03 UTC

[GitHub] [arrow-nanoarrow] lidavidm commented on a diff in pull request #1: Add files from paleolimbot/nanoarrow

lidavidm commented on code in PR #1:
URL: https://github.com/apache/arrow-nanoarrow/pull/1#discussion_r917010603


##########
.github/workflows/build-and-test.yaml:
##########
@@ -0,0 +1,104 @@
+on:

Review Comment:
   Add the Apache license here?



##########
.gitignore:
##########
@@ -0,0 +1,6 @@
+build

Review Comment:
   Add the Apache license here?



##########
README.md:
##########
@@ -1 +1,65 @@
-# arrow-nanoarrow
+

Review Comment:
   Add the Apache license in a comment block?



##########
README.md:
##########
@@ -1 +1,65 @@
-# arrow-nanoarrow
+
+# nanoarrow
+
+[![Codecov test coverage](https://codecov.io/gh/paleolimbot/nanoarrow/branch/main/graph/badge.svg)](https://app.codecov.io/gh/paleolimbot/nanoarrow?branch=main)
+
+The nanoarrow library is a set of helper functions to interpret and generate
+[Arrow C Data Interface](https://arrow.apache.org/docs/format/CDataInterface.html)
+and [Arrow C Stream Interface](https://arrow.apache.org/docs/format/CStreamInterface.html)
+structures. The library is in active development and should currently be used only
+for entertainment purposes. Everything from the name of the project to the variable
+names are up for grabs (i.e., suggest/pull request literally any ideas you may
+have!).
+
+Whereas the current suite of Arrow implementations provide the basis for a
+comprehensive data analysis toolkit, this library is intended to support clients
+that wish to produce or interpret Arrow C Data and/or Arrow C Stream structures.
+The library will:
+
+- Create, copy, parse, and validate struct ArrowSchema objects (all types mentioned
+  in the C Data interface specification)
+- Create and validate struct ArrowArray/struct ArrowSchema pairs for (all types
+  mentioned in the C Data interface specification)
+- Iterate over struct ArrowArrays element-wise (non-nested types) (i.e., is the
+  ith element null; get the ith element).
+- Build Arrays element-wise (non-nested types) (i.e., basic Array Builder logic).
+
+While it will not provide full support for nested types, it should provide enough
+infrastructure that an extension library with a similar format could implement such
+support.
+
+## Usage
+
+You can use nanoarrow in your project in two ways:
+
+1. Copy contents of the `src/nanoarrow/` into your favourite include directory and
+   `#include <nanoarrow/nanoarrow.c>` somewhere in your project exactly once.
+2. Clone and use `cmake`, `cmake --build`, and `cmake --install` to build/install
+   the static library and add `-L/path/to/nanoarrow/lib -lnanoarrow` to your favourite
+   linker flag configuration.
+
+All public functions and types are declared in `nanoarrow/nanoarrow.h`.
+
+In all cases you will want to copy this project or pin your build to a specific commit
+since it will change rapidly and regularly. The nanoarrow library does not and will
+not provide ABI stability (i.e., you must vendor or link to a private version of
+the static library).
+
+## Background
+
+The design of nanoarrow reflects the needs of a few previous libraries/prototypes
+requiring a library with a similar scope:
+
+- DuckDB’s Arrow wrappers, the details of which are in a few places
+  (e.g., [here](https://github.com/duckdb/duckdb/blob/master/src/common/arrow_wrapper.cpp),
+  [here](https://github.com/duckdb/duckdb/blob/master/src/main/query_result.cpp),
+  and a few other places)
+- An [R wrapper around the C Data interface](https://github.com/paleolimbot/narrow),
+  along which a [C-only library](https://github.com/paleolimbot/narrow/tree/master/src/narrow)
+  was prototyped.
+- An [R implementation of the draft GeoArrow specification](https://github.com/paleolimbot/geoarrow),
+  along which a [mostly header-only C++ library](https://github.com/paleolimbot/geonanoarrowpp/tree/main/src/geoarrow/internal/arrow-hpp)
+  was prototyped.
+- The [Arrow Database Connector](https://github.com/apache/arrow-adbc) C API, for which drivers

Review Comment:
   ```suggestion
   - The [Arrow Database Connectivity](https://github.com/apache/arrow-adbc) C API, for which drivers
   ```



##########
README.md:
##########
@@ -1 +1,65 @@
-# arrow-nanoarrow
+
+# nanoarrow
+
+[![Codecov test coverage](https://codecov.io/gh/paleolimbot/nanoarrow/branch/main/graph/badge.svg)](https://app.codecov.io/gh/paleolimbot/nanoarrow?branch=main)

Review Comment:
   URI needs updating (though: is Codecov still enabled?)



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org