Skip to content

jmao-denver/arrow-adbc

 
 

Repository files navigation

ADBC: Arrow Database Connectivity

License

ADBC is an API standard (version 1.0.0) for database access libraries ("drivers") in C, Go, and Java that uses Arrow for result sets and query parameters. Instead of writing code for each individual database, applications can build against the ADBC APIs, and link against drivers that implement the standard. Additionally, a JDBC/ODBC-style driver manager is provided. This also implements the ADBC APIs, but dynamically loads drivers and dispatches calls to them.

Like JDBC/ODBC, the goal is to provide a generic API for multiple databases, but ADBC is focused on Arrow-based data access for analytics use cases (bulk data retrieval/ingestion), and not the full spectrum of use cases that JDBC/ODBC drivers handle. Hence, ADBC is complementary to those existing standards.

Like Arrow Flight SQL, ADBC is an Arrow-based database access API. But Flight SQL also specifies the wire format and network transport (Flight RPC), while ADBC lets drivers make their own decisions. Together, ADBC and Flight SQL offer a fully Arrow-native solution for clients and database vendors. For context, see the mailing list discussion and the original proposal.

Installation

A release has not yet been made. (The standard is version 1.0.0, but packages themselves are still under development.) Packages can currently be built and installed from source.

Documentation

Documentation is forthcoming. The core API definitions can be read in adbc.h.

Building

For detailed instructions, see CONTRIBUTING.md.

Releases

No releases published

Packages

No packages published

Languages

  • C++ 21.9%
  • C 18.7%
  • Java 18.6%
  • Shell 11.5%
  • Python 8.9%
  • CMake 6.4%
  • Other 14.0%