DuckDB is an in-process database system and offers client APIs for several languages. These clients support the same DuckDB file format and SQL syntax. Note: DuckDB database files are portable between different clients.
| Client API | Maintainer | Support tier |
|---|---|---|
| C | DuckDB team | Primary |
| Command Line Interface (CLI) | DuckDB team | Primary |
| Java | DuckDB team | Primary |
| Go | DuckDB team and Marc Boeker | Primary |
| Node.js (deprecated) | DuckDB team | Primary |
| Node.js (node-neo) | Jeff Raymakers and Antony Courtney (MotherDuck) | Primary |
| Python | DuckDB team | Primary |
| R | DuckDB team and Kirill Müller | Primary |
| WebAssembly (Wasm) | DuckDB team | Primary |
| ADBC (Arrow) | DuckDB team | Secondary |
| C++ | DuckDB team | Secondary |
| C# (.NET) | Giorgi | Secondary |
| Dart | TigerEye | Secondary |
| ODBC | DuckDB team | Secondary |
| Rust | DuckDB team | Secondary |
| Julia | DuckDB team | Secondary |
| Swift | DuckDB team | Secondary |
| Common Lisp | ak-coram | Tertiary |
| Crystal | amauryt | Tertiary |
| Elixir | AlexR2D2 | Tertiary |
| Erlang | MM Zeeman | Tertiary |
| Ruby | suketa | Tertiary |
| Zig | karlseguin | Tertiary |
Support Tiers
Since there is such a wide variety of clients, the DuckDB team focuses their development effort on the most popular clients. To reflect this, we distinguish three tiers of support for clients. Primary clients are the first to receive new features and are covered by community support. Secondary clients receive new features but are not covered by community support. Finally, all tertiary clients are maintained by third parties, so there are no feature or support guarantees for them.
The DuckDB clients listed above are open-source and we welcome community contributions to these libraries. All primary and secondary clients are available for the MIT license. For tertiary clients, please consult the repository for the license.