IRC対応の分散型チャット「Parley」
원제: Parley: Federated, decentralised chat that speaks plain IRC
왜 중요한가
IRCという枯れた標準を連合型アーキテクチャに組み合わせた試みは、既存クライアント資産を活かしたまま分散SNS的な運用を実現できる可能性を示す。
Go言語で開発されたオープンソースプロジェクト「Parley」は、IRCプロトコルを話す連合型・分散型チャットシステムだ。ユーザーはuser@domain形式でアドレスを持ち、irssiなど既存のIRCクライアントからそのまま利用できる。最新コミットでは複数インスタンスにまたがる同名ユーザーへの誤通知バグが修正された。
「Parley」はJames Mills(prologic)が開発する連合型チャットシステムで、Gitリポジトリは現在5つのリリース・192コミットを数える。最大の特徴は、ActivityPubではなくIRCプロトコルを共通言語として採用した点だ。各ユーザーは`user@domain`形式の識別子を持ち、irssiやその他の既存IRCクライアントで接続できる。
最新PR #39では、フェデレーション環境での通知バグが修正された。問題の本質は「同じニックネームを持つユーザーが複数インスタンスに存在する場合、特定の一人に向けたメンション(例: `bob:bar.com: lunch?`)が全インスタンスのbobに通知されてしまう」というものだった。修正後は、送信者がどのインスタンスにいるかに応じてメンション対象を解釈する仕様に変更。`bob:bar.com`はbar.com上のbobのみ、裸の`bob`は送信者のインスタンス上のbobのみを指すと定義された。
テストは`-race`フラグ付きで通過し、新たな統合テスト`TestOnlyTheBobThatWasMeantIsPushed`が10回連続で成功したことも確認済み。なお、今回のコミットはClaude Codeの支援を受けて生成されており、David Collantesとの共同作業として記録されている。