Sula:Scryer Prolog 實作的 Gemini 協議伺服器
為何重要
Sula 展示了將 Prolog 語言應用於生產級網路服務的邊界,特別是透過 Rust 和自訂內建函式來最佳化 I/O 效能。對開發者來說,這是一個整合網路安全、系統呼叫與程序管理的高品質範例,證明瞭傳程式語言在特定情境下的不被動規格。
Sula 是一個實作 Gemini 網路通訊協定的伺服器,使用 Scryer Prolog 編寫。此專案建立在特定的修補版 Scryer Prolog 上,以解決串流、管道結束與中斷處理等系統層級的問題。
- 執行機制透過 bash 採用 polyglot 指令碼方式自動呼叫 scryer-prolog 並以
sula:run為進入點,支援 Ctrl+C 觸發優雅關機。 - TLS 安全性透過 Rust 的 rustls 實作,並依賴 OpenSSL 在啟動時驗證憑證主機名稱,支援
.gmi檔案的 MIME 內容協商。 - 人員建議改用 key 和 cert 檔案來代替 P12 格式,並支援從設定檔案載入組態。