rainfrog:面向終端的資料庫工具
終端的資料庫工具。理論上,mysql驅動程式應該能夠對支援mysql協定的資料庫做同樣的事情。
秒懂
- 它是什麼?
- 一款處於測試階段的終端資料庫用戶端,支援分級資料庫驅動、vim 風格按鍵綁定和可設定連線。
- 適合誰用?
- achristmascarl/rainfrog 適合能依 README 指定的環境、輸入與權限來操作的人,不適合把未列出的相容性或營運保證當成既定事實。先用官方 README 的入口,在隔離環境記錄命令、設定、輸出與錯誤,再決定是否擴大資料和權限範圍。
- 可以商用嗎?
- 可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
- 還在維護嗎?
- 有在維護。儲存庫最近一次提交在 22 天前。
- 用什麼語言寫的?
- 主要是 Rust(依據 GitHub 的語言統計)。
以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。
開源專案深度解析
處於測試階段的終端資料庫用戶端
rainfrog 是一個面向終端的資料庫工具,使用 Rust 編寫。README 將其描述為輕量級且基於終端,並註明專案目前處於測試階段。README 中陳述的目標是提供一個無需離開終端即可與資料庫互動的工具。README 還警告該軟體正在積極開發中,會有破壞性變更,不建議在生產資料庫上使用寫入權限。倉庫沒有說明目前的發布版本號或具體發布日期。
achristmascarl/rainfrog 的 README 把「a database tool for the terminal. in theory, the mysql driver should be able to do the same for databases that support the mysql protocol.」放在核心位置。這表示讀者首先要確認的是專案實際處理的輸入、執行入口和產物,而不是只根據倉庫星標或宣傳語句推估能力。README 沒有說明的效能、相容性與安全結果,本文不替它補成承諾。
從 achristmascarl/rainfrog 的使用邊界來看,Rust 與 main 分支只是定位線索。把 README 中的命令、檔案名稱和外部服務分開記錄,才能在錯誤發生時分辨是環境、依賴、權限還是專案本身的行為。官方入口是 https://crates.io/crates/rainfrog,但它不等同於倉庫內已實作的功能。
介面提供的內容
介面由 schema 與資料表選單、查詢編輯器、結果檢視,以及查詢歷史和收藏的獨立面板組成。導覽依賴類似 vim 的按鍵綁定和滑鼠事件,但 README 說明滑鼠支援僅限於切換焦點和捲動,編輯器本身不接受滑鼠輸入。查詢編輯器包含關鍵字高亮、工作階段歷史和儲存收藏的功能。其他已記錄的功能包括複製資料、過濾資料表、切換 schema,以及檢視資料表中繼資料和屬性的快速鍵。README 沒有描述具體的渲染或終端需求,只提到圖示需要安裝 Nerd Font。
achristmascarl/rainfrog 的最小檢查應以官方 README 出現的入口開始,保留實際命令與返回訊息,並對照生成檔、日誌或介面結果。若流程涉及憑證、網路或資料庫,先用隔離帳號與非敏感資料;對只在文件中宣稱、卻沒有範例或數據支持的能力,應維持不確定判斷。
資料庫支援分級
支援的資料庫按四個支援層級排列。PostgreSQL 為第 1 級,被描述為最常測試,問題會盡快處理。MySQL、SQLite 和 Redshift 為第 2 級,經常測試,必要時修復。DuckDB 和 Oracle 為第 4 級,屬於新或實驗性,且不穩定。README 還指出,PostgreSQL 驅動程式可以連接使用 PostgreSQL 線路協定的其他資料庫,例如 AWS Redshift,但此功能未經過充分測試。README 指出,預建置的 DuckDB 二進位檔和 musl 二進位檔都不包含該驅動程式,Oracle 則透過 ODPI-C 需要額外的執行期相依。這些層級來自 README 的分類,倉庫沒有公布測試次數或時間表。
授權標示為 MIT。對 achristmascarl/rainfrog 而言,這只回答程式碼如何再散布或修改,沒有替部署支援、資料責任、第三方依賴與安全維護背書。正式導入仍要把倉庫內容與實際環境的權限、備份和升級方式分開核對。
安裝方式
安裝方式在文件中涵蓋多種套件管理器和途徑。Rust 使用者可以執行 `cargo install rainfrog --locked`,也支援 cargo-binstall。Homebrew、Arch Linux 的 pacman、Nix、Conda 和 Pixi 都有列出。Termux 使用者需要先透過 `pkg install rust` 安裝 Rust,再執行 `cargo install rainfrog --no-default-features`。還有一個安裝指令碼,它從發布頁下載二進位檔到 `~/.local/bin/`,指令碼需要 jq 和 fzf。發布頁也提供手動下載的二進位檔。Docker 映像有文件說明可用於 PostgreSQL、MySQL 和 SQLite,並註明帶執行期相依的驅動程式(如 Oracle)在容器中不支援。
連接資料庫
連線資訊可以透過命令列選項、完整的連線 URL、環境變數或設定檔中的條目傳入。如果某些命令列選項未提供,rainfrog 會提示輸入,並回退到環境變數。`DATABASE_URL` 環境變數會先於目前目錄或父目錄中的 `.env` 檔案被檢查。命令列支援 `--driver`、`--username`、`--host`、`--port`、`--database` 和 `--ssl-required` 等選項。README 說明連線 URL 優先於連線選項,`--ssl-required` 會覆寫 URL 中的傳輸設定,分別選擇 PostgreSQL 的 `require` 模式、MySQL 的 `required` 模式或 Oracle 的 `tcps` 協定。SQLite 和 DuckDB 不支援 SSL/TLS 連線。
設定與按鍵綁定
設定透過 `rainfrog_config.toml` 檔案完成,該檔案放在平台特定的設定目錄中,可以用 `RAINFROG_CONFIG` 環境變數覆寫。設定表涵蓋滑鼠擷取、動態欄寬、列間距、自動完成行為和自動成對閉合字元。資料庫連線也可以在設定檔中定義為具名條目,使用連線字串或單獨的欄位。README 列出連線的優先順序:命令列輸入、`DATABASE_URL`,然後是設定檔。如果沒有設定預設連線,會出現提示供選擇。按鍵綁定部分可自訂;預設設定檔列出了可以更改的部分。README 包含選單、查詢編輯器、歷史、收藏和結果檢視的許多預設按鍵綁定。
匯出、收藏與已知限制
查詢結果可以從結果檢視按 `P` 鍵匯出為 CSV。匯出檔案寫入平台的下載目錄,除非設定了 `RAINFROG_EXPORT`。README 警告匯出是阻塞操作,一次匯出太多列會導致應用程式凍結。收藏會儲存為單獨的 `.sql` 檔案,放在應用程式的資料目錄中,可用 `RAINFROG_FAVORITES` 覆寫。已知限制包括不支援幾何型別,X11 和 Wayland 下的 yank 操作只複製到查詢編輯器緩衝區而不是係統剪貼簿,視覺模式下的整行選取行為與 vim 不同,以及編輯器本身不支援滑鼠輸入。
授權條款與儲存庫狀態
該倉庫使用 MIT 授權條款,版權歸 Carl Liu,2024 年。授權條款授予使用、複製、修改、合併、發布、分發、再授權和銷售軟體副本的權利,並包含標準免責聲明,即軟體按原樣提供,不提供任何形式的保證。授權條款文字沒有涉及安全性、支援或維護承諾。README 的藍圖列出了 v0.1.0 alpha 和 v0.2.0 beta 的已完成里程碑,並指向問題追蹤頁了解計畫中的功能。倉庫中繼資料目前顯示 5,244 個星標、94 個 fork 和 19 個開放問題。
編輯結論
achristmascarl/rainfrog 適合能依 README 指定的環境、輸入與權限來操作的人,不適合把未列出的相容性或營運保證當成既定事實。先用官方 README 的入口,在隔離環境記錄命令、設定、輸出與錯誤,再決定是否擴大資料和權限範圍。
社群筆記