CLI-Tool
achristmascarl/rainfrog avatar
achristmascarl/rainfrog

rainfrog: Datenbank-Browser fürs Terminal mit abgestufter Treiberpflege

ein Datenbanktool für das Terminal. Theoretisch sollte der MySQL-Treiber in der Lage sein, dasselbe für Datenbanken zu tun, die das MySQL-Protokoll unterstützen.

5.332 Sterne95 ForksRustMIT

Auf einen Blick

Was ist das?
rainfrog ist ein in Rust geschriebener TUI-Client für Postgres, MySQL, SQLite und weitere Datenbanken. Das README teilt die Treiber in vier Pflegestufen ein und rät von Schreibzugriff auf Produktionsdaten ab.
Für wen ist es gedacht?
rainfrog passt zu Personen, die vor allem lesen, browsen und Abfragen ausprobieren, auf Postgres, MySQL oder SQLite und mit vim-ähnlicher Bedienung. Es passt nicht als Standardwerkzeug für Schreibzugriffe auf Produktionsdaten, wovon das README selbst abrät, und nicht für Oracle, das nur auf Stufe 4 liegt.
Darf ich es kommerziell nutzen?
Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
Wird es noch gepflegt?
Ja. Die letzten Commits kamen vor 22 Tagen.
In welcher Sprache ist es geschrieben?
Hauptsächlich Rust, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 15. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

Wofür rainfrog gedacht ist: Datenbankarbeit, ohne die Shell zu verlassen

rainfrog richtet sich an jemanden, der kurz eine Tabelle ansehen, eine Abfrage ausprobieren oder das Schema wechseln will und dafür kein Browserfenster öffnen möchte. Die Beschreibung im Repository nennt ein Datenbankwerkzeug für das Terminal. Geschrieben ist es in Rust, die Oberfläche baut auf Ratatui auf.

Der Funktionsumfang ist auf das Durchsuchen zugeschnitten. Das README nennt vim-ähnliche Tastenkürzel plus Mausbedienung, einen Abfrageeditor mit Schlüsselworthervorhebung, Sitzungsverlauf und Favoriten, dazu das Kopieren von Daten, das Filtern von Tabellen, den Wechsel zwischen Schemata und Abkürzungen für Metadaten.

Als Plattformen listet das README macOS, Linux, Windows und Android über Termux. Für die Symbole wird ein Nerd Font gebraucht, ohne ihn fehlen Zeichen in der Oberfläche.

Vier Pflegestufen bei rainfrog: Postgres auf Stufe 1, Oracle auf Stufe 4

Die Datenbankunterstützung ist in vier Stufen gegliedert, und diese Einteilung ist die ehrlichste Stelle im README. Stufe 1 heißt am häufigsten getestet, Fehler werden schnellstmöglich behoben. Stufe 2 heißt oft getestet, Reparaturen erfolgen bei Bedarf. Stufe 3 wird von der Gemeinschaft getragen. Stufe 4 gilt als instabil.

Postgres steht auf Stufe 1. MySQL, SQLite und Redshift liegen auf Stufe 2, wobei Redshift über das Postgres-Wire-Protokoll angebunden wird. DuckDB ist Stufe 3, mit dem Hinweis, dass vorgefertigte DuckDB- und musl-Binärdateien diesen Treiber nicht enthalten. Oracle ist Stufe 4 und verlangt über ODPI-C die Oracle-Client-Bibliotheken.

Zusätzlich weist das README darauf hin, dass der Postgres-Treiber theoretisch jede Datenbank mit Postgres-Protokoll erreicht, diese Funktion aber kaum getestet ist. Für den MySQL-Treiber wird dieselbe Möglichkeit nur als Vermutung geäußert.

cargo install rainfrog --locked: zehn dokumentierte Installationswege

Das README führt zehn Wege auf. Aus den Quellen bauen: `cargo install rainfrog --locked` nach einer Rust-Installation über rustup. Wer cargo-binstall hat, nimmt `cargo binstall rainfrog`. Unter macOS genügt `brew install rainfrog`, unter Arch Linux kommt das Paket mit `pacman -S rainfrog` aus den offiziellen Quellen.

Dazu kommen `nix-env -iA nixos.rainfrog`, `conda install -c conda-forge rainfrog` und `pixi global install rainfrog`. Unter Termux verlangt das Projekt einen Sonderweg: erst `pkg install rust`, dann `cargo install rainfrog --no-default-features`, weil die Standardfunktionen dort nicht passen.

Das Installationsskript holt eine Binärdatei von der Release-Seite und packt sie nach `~/.local/bin/`: `curl -LSsf https://raw.githubusercontent.com/achristmascarl/rainfrog/main/install.sh | bash`. Es setzt jq und fzf voraus. Wer Skripte aus dem Netz nicht mag, lädt die passende Binärdatei selbst; `rustc -vV` zeigt das Zielsystem an.

--driver, --ssl-required und DATABASE_URL: der Weg zur Verbindung

Verbindungen nimmt rainfrog auf vier Wegen an: als Kommandozeilenoptionen, als Verbindungs-URL, über Umgebungsvariablen oder als benannter Eintrag in der Konfigurationsdatei. Fehlen Angaben, fragt das Programm nach.

Dokumentiert sind unter anderem `--driver`, `--username`, `--host`, `--port`, `--database` und `--ssl-required`. Eine Verbindungs-URL hat Vorrang vor einzelnen Optionen. Wird zusätzlich `--ssl-required` gesetzt, überschreibt es die Transporteinstellung der URL und wählt bei Postgres den Modus require, bei MySQL required und bei Oracle das Protokoll tcps. SQLite und DuckDB unterstützen laut README keine TLS-Verbindungen.

Bei den Umgebungsvariablen gilt eine Reihenfolge: `DATABASE_URL` wird geprüft, bevor eine .env-Datei im aktuellen oder einem übergeordneten Verzeichnis herangezogen wird.

rainfrog_config.toml und RAINFROG_CONFIG: was sich einstellen lässt

Die Einstellungen liegen in `rainfrog_config.toml` im plattformspezifischen Konfigurationsverzeichnis. Wer die Datei an einem anderen Ort ablegen will, setzt `RAINFROG_CONFIG`.

Dokumentierte Einstellungen betreffen die Mauserfassung, dynamische Spaltenbreiten, den Zeilenabstand, das Verhalten der Autovervollständigung und automatisch schließende Zeichenpaare. In derselben Datei lassen sich Datenbankverbindungen als benannte Einträge hinterlegen, entweder als vollständiger Verbindungsstring oder in einzelne Felder zerlegt.

Die Reihenfolge beim Verbinden ist klar geregelt: zuerst die Kommandozeile, dann `DATABASE_URL`, dann die Konfigurationsdatei. Ist keine Standardverbindung festgelegt, erscheint eine Auswahl. Ein Teil der Tastenkürzel lässt sich anpassen; welche das sind, steht in der Standardkonfigurationsdatei und nicht im README.

Taste P für den CSV-Export und die Blockierwarnung bei rainfrog

Ergebnisse lassen sich in der Ergebnisansicht mit der Taste `P` als CSV exportieren. Ohne weitere Einstellung landet die Datei im Download-Verzeichnis der Plattform, `RAINFROG_EXPORT` verschiebt das Ziel.

Das README warnt ausdrücklich vor diesem Vorgang. Der Export arbeitet blockierend, und bei zu vielen Zeilen kann die Anwendung einfrieren. Wer regelmäßig große Ergebnismengen zieht, sollte den Export nicht als Sicherungswerkzeug betrachten und die Zeilenzahl vorher begrenzen.

Favoriten werden als einzelne .sql-Dateien im Datenverzeichnis der Anwendung abgelegt, `RAINFROG_FAVORITES` überschreibt den Pfad. Das hat einen angenehmen Nebeneffekt: Die Favoriten liegen als Klartext und lassen sich mit dem Editor oder über Versionsverwaltung bearbeiten.

Bekannte Einschränkungen: Geometrietypen, Zwischenablage, Maus im Editor

Die Liste bekannter Einschränkungen ist kurz und konkret. Geometrietypen werden nicht unterstützt. Unter X11 und Wayland landet das Kopieren nur im Puffer des Abfrageeditors, nicht in der Systemzwischenablage. Die Zeilenauswahl im visuellen Modus weicht von vim ab. Im Editor selbst wirkt die Maus nicht, sie dient nur dem Wechsel des Fokus und dem Scrollen.

Stärker wiegt der Hinweis zur aktiven Entwicklung. Es sei mit Brüchen zu rechnen, die Nutzung erfolge auf eigenes Risiko, und von Schreibzugriff auf eine Produktionsdatenbank wird abgeraten. Das ist keine Formalie, sondern eine Aussage über den Reifegrad.

Dazu passt der Versionsstand. v0.4.5 erschien am 25. August 2026, v0.4.4 am 17. August, v0.4.3 am 8. August 2026. Eine 0.x-Version im Wochentakt ist ein anderes Risikoprofil als ein ausgereifter Datenbankclient.

MIT bei rainfrog und der Vergleich mit psql im Produktionsbetrieb

rainfrog steht unter MIT, Copyright 2024 Carl Liu. Nutzung, Kopie, Veränderung, Zusammenführung, Veröffentlichung, Verbreitung, Unterlizenzierung und Verkauf sind erlaubt, jede Gewährleistung ist ausgeschlossen. Über Sicherheit und Wartungszusagen sagt die Lizenz nichts.

Als Alternative für produktive Arbeit bleibt der Client des Herstellers, für Postgres also psql. Der Unterschied liegt in der Form. psql ist ein zeilenorientierter Dialog mit Metabefehlen wie \d und lässt sich in Skripte einbinden, bietet aber keinen durchsuchbaren Tabellenbaum. rainfrog liefert genau diesen Baum, verzichtet dafür auf Stabilitätsgarantien.

Beides schließt sich nicht aus. Wer rainfrog zum Ansehen und psql zum Ändern nutzt, umgeht die Warnung des README vor Schreibzugriff und behält die Übersicht, die ein Browser über Schemata gibt.

Redaktionelles Fazit

rainfrog passt zu Personen, die vor allem lesen, browsen und Abfragen ausprobieren, auf Postgres, MySQL oder SQLite und mit vim-ähnlicher Bedienung. Es passt nicht als Standardwerkzeug für Schreibzugriffe auf Produktionsdaten, wovon das README selbst abrät, und nicht für Oracle, das nur auf Stufe 4 liegt. Der erste Prüfschritt besteht aus zwei Handgriffen: `cargo install rainfrog --locked` oder `brew install rainfrog`, danach eine Verbindung als benannten Eintrag in rainfrog_config.toml anlegen, statt Zugangsdaten über die Kommandozeile zu übergeben.

Offizielle Quellen

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community-Notizen

Community-Notizen