Parley 是由 James Mills(暱稱 prologic)主導開發的開源專案,目標是打造一套聯邦化、去中心化的聊天系統。它的核心構想是讓每個網域自行架設實例,使用者身分如同電子郵件地址,例如 alice@foo.com,可以跨實例互相通訊,不必依賴單一中央伺服器。
Parley 前端使用標準 IRC 協定,能直接搭配 irssi、WeeChat 等現有客戶端使用,不需額外安裝插件;不同實例之間則透過附帶 Ed25519 簽章的 HTTPS 請求互相聯邦,並以 DNS SRV 記錄(_parley._tcp.<domain>)自動發現對方、建立連線。伺服器端以 Go 語言撰寫(佔 93.9%),資料儲存在 SQLite,並支援 IRCv3 的 server-time、message-tags 等擴充功能。
頻道分為跨實例同步的全域頻道與僅限本機的本地頻道,聊天紀錄可搜尋且能在伺服器重啟後保留,並內建每秒一則的訊息節流機制防止濫用。專案目前版本為 v0.5.0,已加入圖片、表情反應與已讀標記等功能,作者形容目前狀態是『能端對端運作、但尚未強化過的概念驗證』,採用 MIT 授權釋出原始碼。
對正在學程式的孩子來說,Parley 是觀察『聯邦式架構』的好例子,也就是像 Mastodon、Email 那樣讓不同伺服器互相溝通的設計方式,而且它是建立在孩子們可能已經聽過的 IRC 通訊協定之上。有興趣的青少年也可以直接閱讀原始碼,了解一個真實的 Go 語言開源專案是如何組織測試與聯邦通訊邏輯的。
開源聊天軟體網路協定Go