【保姆級教程】如何用Rust編寫一個ChatGPT桌面應用

京東雲技術團隊發表於2023-05-15

為什麼我們需要一個桌面應用

原因實在太多,我們需要便捷地匯出記錄,需要在回答長度超長的時候自動加上“繼續”,需要收藏一些很酷很實用的prompt......
(首先我假設你是一名如我一樣習慣用IDEA開發的java仔)

為什麼是用Rust編寫

  1. 效率高、資源佔用量低。
  2. 安全性高:Rust 是一種記憶體安全的語言,其所有操作都經過系統級別的嚴格程式碼檢查,減少了執行期間的崩潰和記憶體洩漏等問題的出現。
  3. 可維護性高:Rust 能夠更好地編寫可維護的程式碼,並且支援物件導向程式設計和函數語言程式設計,這使得開發人員能夠更好地組織程式碼,易於理解和修改。同時,Rust 的模組化設計使得不同的開發人員可以同時在專案中工作,而不會相互干擾。
  4. 跨平臺:Rust 廣泛支援多種作業系統和平臺,包括 Windows,macOS,Linux 和 Android 等,這使得開發人員能夠設計適用於不同平臺和裝置的應用。

如何用Rust編寫一個桌面應用

1.安裝 Rust 語言工具鏈:首先,請確保你已安裝了 Rust 程式語言工具鏈,包括 Rust 編譯器 (rustc) 和包管理工具 (cargo)。可以透過訪問 Rust 官方網站 並遵循說明來安裝。

2.安裝 Rust 外掛:開啟 IntelliJ IDEA,然後轉到 "File" > "Settings" (Windows/Linux) 或 "IntelliJ IDEA" > "Preferences" (macOS)。在設定視窗中,選擇 "Plugins",搜尋 "Rust",然後單擊 "Install"。安裝完成後,重啟 IntelliJ IDEA。

3.建立新的 Rust 專案:在 IntelliJ IDEA 中,選擇 "File" > "New" > "Project",然後在專案型別列表中選擇 "Rust"。按照提示配置專案設定,然後單擊 "Finish" 以建立新專案。

4.新增 GUI 庫:你可以選擇的 GUI 庫(如 GTK 或 Qt),在專案的 Cargo.toml 檔案中新增相應的依賴項。例如,對於 GTK,需要新增如下依賴:

5.[dependencies] gtk = "0.9"

6.編寫程式碼:使用 IntelliJ IDEA 編輯器編寫 Rust 程式碼。Rust 外掛會提供程式碼補全、語法高亮、錯誤提示等功能。

7.構建和執行:使用 IntelliJ IDEA 的內建終端或外部終端執行cargo build和cargo run命令,以構建和執行你的 Rust 桌面應用程式。

保姆教程的試錯與驗證

為了驗證這個流程是否足夠保姆級,我提前發給同事操作了一遍,最後在cargo run這裡報錯沒有glib-2.0。這是因為在 macOS 上執行包含gtk依賴項的 Rust 專案時,需要先在系統上安裝 GTK+ 和相關庫。

可以透過使用 Homebrew 包管理器來解決這個問題。請按照以下步驟操作:

  1. 如果尚未安裝 Homebrew,請訪問 Homebrew 官方網站 並按照說明進行安裝。
  2. 開啟終端並執行以下命令以安裝 GTK+ 及其依賴庫:
  3. brewinstallgtk+3 brewinstalladwaita-icon-theme
  4. 安裝 pkg-config 工具:
  5. brewinstallpkg-config
  6. 設定環境變數,讓 Rust 編譯器和連結器能夠找到 GTK+ 庫。在 shell 配置檔案中(如/.bashrc、/.zshrc、~/.zshrc等),新增以下行:
  7. exportPKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig"
  8. 儲存更改並重新載入 shell 配置檔案,以使更改生效。比如你修改了~/.zshrc,則應執行以下命令:
  9. source~/.zshrc

Rust編寫的桌面應用效果示例

當你看到這個hello world,就已經成功一大半了。因為已經有大佬開源了一套
https://github.com/lencx/ChatGPT 目前star過3w。很可惜的是,由於被盜用和潛在的法務風險,後續更新就不開源了,大家也可以基於這個版本發揮自己的創造力了。下圖就是提供了便捷下載的一個示例。

作者:王夢津

內容來源:京東雲開發者社群

相關文章