Awesome
<p align="center"><img width="250" height="250" src="rsql_cli/resources/rsql.png"></p>rsql
rsql
is a command line interface for databases. rsql
is a modern, feature-rich, and user-friendly database client,
that has been designed to be easy to use, and to provide a consistent experience across all supported databases. The
project aims to provide reusable components for building other database clients.
Getting Started
rsql
can be installed using the following methods:
Linux / MacOS
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/theseus-rs/rsql/releases/latest/download/rsql_cli-installer.sh | sh
Windows
irm https://github.com/theseus-rs/rsql/releases/latest/download/rsql_cli-installer.ps1 | iex
For more information, and additional installations instructions (cargo, homebrew, msi), visit the rsql site.
Features
Feature | |
---|---|
Databases | DuckDB, LibSQL (Turso), MariaDB, MySQL, PostgreSQL, Redshift, Snowflake, SQLite3, SQL Server |
Syntax Highlighting | ✅ |
Result Highlighting | ✅ |
Query Auto-completion | ✅ |
History | ✅ |
SQL File Execution | ✅ |
Embedded PostgreSQL | ✅ |
Output Formats | ascii, csv, expanded, html, json, jsonl, markdown, plain, psql, sqlite, tsv, unicode, xml, yaml |
Localized Interface | 40+ languages¹ |
Key Bindings | emacs, vi |
¹ Computer translations; human translations welcome
Usage
Interactive Mode
rsql --url "<url>"
Running a single Query
rsql --url "<url>" -- "<query>"
Driver | URL |
---|---|
duckdb | duckdb://?<memory=true>[&file=<database_file>] |
libsql¹ | libsql://<host>?[<memory=true>][&file=<database_file>][&auth_token=<token>] |
mariadb (sqlx) | mariadb://<user>[:<password>]@<host>[:<port>]/<database> |
mysql (sqlx) | mysql://<user>[:<password>]@<host>[:<port>]/<database> |
postgres | postgres://<user>[:<password>]@<host>[:<port>]/<database>?<embedded=true> |
postgresql (sqlx) | postgresql://<user>[:<password>]@<host>[:<port>]/<database>?<embedded=true> |
redshift (sqlx) | redshift://<user[:password>]@<host>[:<port>]/<database> |
rusqlite | rusqlite://?<memory=true>[&file=<database_file>] |
snowflake | snowflake://<user>[:<token>]@<account>.snowflakecomputing.com/[?private_key_file=pkey_file&public_key_file=pubkey_file] |
sqlite (sqlx) | sqlite://?<memory=true>[&file=<database_file>] |
sqlserver | sqlserver://<user>[:<password>]@<host>[:<port>]/<database> |
¹ libsql
needs to be enabled with the libsql
feature flag; it is disabled by default as it conflicts
with rusqlite
.
Safety
These crates use #![forbid(unsafe_code)]
to ensure everything is implemented in 100% safe Rust.
License
Licensed under either of:
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
<a href="https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/theseus-rs/rsql"> <img src="https://img.shields.io/static/v1?label=VSCode%20Development%20Container&logo=visualstudiocode&message=Open&color=orange" alt="VSCode Development Container" /> </a> <br/> <a href="https://github.dev/theseus-rs/rsql"> <img src="https://img.shields.io/static/v1?label=GitHub%20Codespaces&logo=github&message=Open&color=orange" alt="GitHub Codespaces" /> </a>