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.
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 is forthcoming.
The core API definitions can be read in adbc.h
.
For detailed instructions, see CONTRIBUTING.md.