databow: a Rust CLI to query any database with an ADBC driver
databow introduces a Rust-built CLI tool designed to unify database interactions. Leveraging ADBC, it provides a single, fast interface for querying over 30 databases, from PostgreSQL to Snowflake. This innovative approach to data management is popular on HN for addressing a common pain point for developers and data engineers: juggling multiple database clients.
The Lowdown
Columnar.tech has launched databow, a new open-source command-line interface tool built in Rust. Its primary goal is to streamline the often-fragmented process of querying various databases, providing a single, modern interface powered by the Arrow Database Connectivity (ADBC) standard.
- Unified Database Access: databow connects to over 30 different databases, including transactional (e.g., PostgreSQL, MySQL), analytical (e.g., Snowflake, BigQuery), lakehouse (e.g., Trino, Dremio), and time-series databases (e.g., InfluxDB), all through a consistent interface.
- Modern Interactive Shell: It offers an interactive SQL REPL with features like syntax highlighting, multiline input, well-formatted tabular output, and command history, enhancing the user experience compared to traditional database-specific CLIs.
- Flexible Data Export & Automation: Users can export query results directly to formats like CSV, JSON, and Arrow IPC. The tool is also designed for automation, allowing direct query execution, file-based queries, and piping from stdin, making it suitable for scripts and pipelines.
- Leverages ADBC for Efficiency: Built upon the ADBC standard, databow benefits from efficient, columnar data transfer (Apache Arrow format), ensuring consistent API behavior across diverse databases and automatic support for new ADBC drivers as they emerge.
- Simple Installation & Roadmap: databow can be easily installed via
uvorcargo, with ADBC drivers managed throughdbc. Future plans include dot commands, more export formats, result set truncation, and improved data type display.
By centralizing database interactions through ADBC and offering a robust, Rust-powered CLI, databow aims to eliminate the complexities of switching between various database clients, promising a more efficient and consistent workflow for data professionals.