ActivityPub 関連の仕様書まとめ
ActivityPub 実装したいなぁと git init してから5年以上経っても未だに動く実装を書けてないけど、現代(=2026年)の Mastodon などと疎通するのに必要なプロトコルやらなんやらが ActivityPub の W3C 勧告だけでは全然足りないのでまとめておく。
API は client to server を利用する想定のため、実装固有のクライアントAPI は無視する。
Table of Contents
ActivityPub コア仕様
まず読まなければならないもの。エラッタは気にした方が良い。例えば JSON-LD で @id には null が許容されないのだが、勧告の 3.1 Object Identifiers では null を使うよう指示されている箇所がある。エラッタでは当然これを否定していて勧告後の編集者草案ではこの文言は削除されている。
- ActivityPub
- Activity Streams 2.0, Activity Vocabulary
- JSON-LD 1.0
- Activity Streams の文書は JSON-LD 1.0 で処理できる必要がある。
- 実装が JSON-LD を処理する必要は無いが、素の語彙だけでやり取りできる実装はほとんどなく拡張語彙が多く使われるのであった方が扱いやすい。
- JSON-LD 1.1 Processing Algorithms and API, JSON-LD 1.0 Processing Algorithms and API
- 現代では JSON-LD 1.0 をそのまま実装したプロセッサーより JSON-LD 1.1 に準拠したもので
processingModeにjson-ld-1.0を渡すのが良さそう。
- 現代では JSON-LD 1.0 をそのまま実装したプロセッサーより JSON-LD 1.1 に準拠したもので
ActivityPub 拡張仕様
実装による独自の解釈や SocialCG による追加の仕様などがいくつか文書としてまとまっている。
SWICG
SocialCG が主導となっているもの
- Fediverse Enhancement Proposals
- SocialCG によるコミュニティが中心となって、素の ActivityPub では足りない或いは曖昧な表現の解釈を検討しているもの。
- Mastodon で遂に実装された引用と以前から Misskey, Pleroma, Fedibird などで実装されてきた引用の仕様をまとめた FEP-044f などがある。
- ActivityPub Miscellaneous Terms
- Mastodon が AS 名前空間に勝手に増やした語彙を SocialCG がドキュメントにしたもの。
- ActivityPub and WebFinger
acct:username@domainから逆引きするのに必要になる。- Mastodon がリモートフォローに利用している OStatus Subscribe なども WebFinger からリンクが提供されている。
- ActivityPub and HTTP Signatures
- Activity の配送に署名をつけて真正性を保証するもの。
- Mastodon では v4.3 までドラフト時の仕様を利用し続けており
hs2019が必要だった。- v4.4.0 からは RFC 9421 に準拠したものをサポートするようになった。
- ActivityPub Discovery
- Activity Streams 文書と HTML 文書を両方提供する際の指針。
- Data Portability in ActivityPub
Moveを用いたアカウントの引っ越しや、サーバー実装を移行する際に保持しなければならないデータの種類など。- すでに Mastodon などの既存実装を動かしていて、同一のドメインに新規実装を持ってきたいときに軽く確認すると良いだろう。
- Messaging Layer Security in ActivityPub
- E2EE に関する仕様。
- https://purl.archive.org/socialweb/mls の代わりに https://swicg.github.io/activitypub-e2ee/context/0.2.0.jsonld を指定すれば JSON-LD プロセッサーも解釈できる。
特殊用途向け拡張
- ForgeFed
- Forgejo などが実装している、Git などの VCS を利用したプロジェクトホスティングや共同開発のやり取りを非中央集権で扱うための仕様。
実装固有の拡張
- Mastodon による AS 語彙拡張
- 2026-06-11 時点では
Block,Questionを勧告とは異なる目的や型として利用しており、Mentionについても勧告以上に意味を持たせている。
- 2026-06-11 時点では
- GoToSocial による AP 実装
- Interaction Policy などの独自拡張や Mastodon のような
Flagの利用など。
- Interaction Policy などの独自拡張や Mastodon のような
- Pleroma による AP 拡張
- 1対1のチャットや C2S に利用する想定のプロパティに使われる語彙。文書になっていないが絵文字リアクションのための独自語彙などもある。
- LitePub の名前空間を利用している。
- ActivityPub を拡張した上位互換プロトコルとして作ろうとしていた形跡があるが現在はまともに管理されておらず、Pleroma 独自の連合機能に利用されるのみ。