事件經過
海外的Fediverse社群「Lemmy c/dach」上,網友針對ActivityPub協定中的「C2S(Client-to-Server,客戶端對伺服器)」API展開了討論。目前分散式社群網路主流仍是伺服器之間互相串聯的S2S通訊,包括Mastodon在內,許多伺服器都沒有實作C2S規格。雖然像GoToSocial、Friendica這類伺服器可以讓多種不同客戶端連接使用,但這究竟是依循正式的C2S規格,還是單純重新實作了Mastodon自家的API,參與討論的網友們意見並不一致。
目前Fediverse內部的通訊,主流是伺服器與伺服器之間(S2S)的API,各平台的伺服器彼此串聯(聯邦化),使用者則透過網頁介面或專用App,使用各自平台特有的API。然而,客戶端與伺服器之間(C2S)的API實作卻幾乎看不到。如果能實現這一點,就能打造出不必背負前端這個包袱的輕量化Fediverse伺服器,進一步推動分散化。當然,如果想維持現狀,也可以照舊把Fediverse伺服器和網頁前端整合在同一台伺服器上運作。
出處: friendica.de / 原文連結請點此
網友怎麼說
2匿名2026-10-10 15:42
ActivityPub的官方規格裡其實有包含簡易版的C2S API,只是Mastodon沒有實作出來而已。
3匿名2026-10-10 16:03
GoToSocial就符合這個條件喔。網頁介面只用來做設定,平常看時間軸、發文、回覆這些操作,都要透過另外的客戶端——不管是App還是額外裝的網頁前端。
10匿名2026-10-10 16:12
重點不只是把伺服器和客戶端/前端分開而已,關鍵在於兩者之間是否有統一的介面。有了這個介面,只要支援它,不管哪個伺服器搭哪個客戶端/前端都能通用。
5匿名2026-10-10 17:00
問題在於規格留下了相當大的自由度。如果想知道各個專案目前實作到什麼程度,可以透過手機App「AndStatus」確認看看。
18匿名2026-10-10 17:51
我覺得ActivityPub的問題之一,就是規格的自由度太大了。正因如此,長久以來各專案都沒有考慮整個Fediverse生態,只顧著按自己喜歡的方式去開發。這樣固然誕生了不少創新的東西,但同時也埋下了不少問題。
7匿名2026-10-10 15:46
Lemmy是用ActivityPub的C2S機制嗎?還是自己搞一套?
16匿名2026-10-10 21:38
就我所知是自己搞的一套。老實說我根本不知道ActivityPub還規定了C2S API這回事。
9匿名2026-10-10 15:50
其實就算沒有ActivityPub的C2S API,實質上現在也已經是類似的狀況了,只是由重新實作的Mastodon C2S API來扮演這個角色而已。例如GoToSocial在Raspberry Pi 3/4/5上跑得很順,而且幾乎所有Mastodon App都能拿來當它的後端使用。
11匿名2026-10-10 20:39
謝謝資訊,我馬上去看看。現有的專案會變怎樣我還不確定,不過目前大致上都是一體化(monolithic)的架構,如果C2S API真的做出來,應該正好能把這種結構拆解開來。
21匿名2026-10-10 20:23
順便一提,Evan Prodromou從幾個月前開始,就以『ActivityPub API』為名,試圖讓C2S重新復活。很期待看看這能在各專案裡普及到什麼程度。
12匿名2026-10-10 19:36
我是說AndStatus那個App啦。
13匿名2026-10-10 19:39
啊,原來剛才那則留言是這個意思。我還以為AndStatus只是用來掌握各專案進度的工具呢。那我馬上來裝一下試試。😀
24匿名2026-10-10 19:34
嗨Michael,好久沒聽到你的「聲音」(文字)了,真開心。其實你的回覆剛好顯示在我被提及(mention)的留言後面,讓我有點困惑,不過這可能是這個討論串版面設計的問題吧。——話說你提到『Friendica支援C2S』,那現在已經有使用C2S的客戶端存在了嗎?
14匿名2026-10-10 19:29
Friendica是支援C2S的喔。
15匿名2026-10-10 17:51
我在這邊找到一篇講C2S實現方式的部落格文章,讀完的感覺是,導入C2S得到的結果不外乎兩種:『什麼都沒改變』,或者如果想保留多用戶實例、審核(moderation)之類的功能,就會變成『把所有東西複雜化5倍』……這是不是說,就算伺服器端沒有明確支援,也能讓使用者加上emoji反應之類的功能?
17匿名2026-10-10 21:53
我自己的GtS(GoToSocial)實例,實際測試過至少6種以上不同的客戶端都能連上去用。所以看起來某種『標準化的介面』其實已經存在了。
19匿名2026-10-10 17:58
我猜這背後大概摻雜著一邊在尋求共同標準,另一邊卻有某種「自我」在從中作梗的情況。heluecht應該能講得更詳細,畢竟他當年有參與那份規格的制定。
22匿名2026-10-10 19:14
聽起來有點像是在重新發明Usenet耶,差別只在於可以訂閱封鎖清單(blocklist)。不過那個封鎖清單本身,我覺得確實挺有用的。
23匿名2026-10-10 19:20
畢竟分散化本來就是Fediverse的目標之一嘛。C2S可以讓這一點大幅往前推進,但相對地也會帶來根本性的變化。封鎖清單確實很有用,應該還會衍生出其他不少東西。
本話題的背景與討論焦點
ActivityPub是W3C於2018年標準化的分散式社群網路協定,規格中同時涵蓋了伺服器間通訊(S2S)與客戶端對伺服器通訊(C2S)兩種機制。但實際上普及使用的只有S2S,包括Mastodon在內,許多伺服器都未實作C2S。雖然GoToSocial、Friendica這類伺服器可供多種App連接使用,但大多並非依循正式的C2S規格,而是重新實作了Mastodon自家API,討論串中也有人指出,「能讓客戶端分離」和「作為統一介面的C2S」其實是兩件不同的事。規格自由度過高、各專案長期各自為政、未考量整個生態系而各行擴充,也被視為C2S遲遲無法普及的原因之一。Identi.ca前開發者Evan Prodromou近年以「ActivityPub API」為名,重新推動C2S整備的動向,若不了解技術背景,很容易被忽略。
※本文摘錄自海外論壇 Lemmy c/dach 的討論串「Fediverse | Wie steht es eigentlich in Sachen ActivityPub C2S (Client-to-Server) Schnittstelle?」,並由編輯部意譯為日文。譯文內容之責任由本網站承擔。
發佈留言