Open4

Fediverse な Web Application を作るための調査

ピン留めされたアイテム
にゃるら / カラクリスタにゃるら / カラクリスタ

この Scrap は何?

  • Fediverse (Mastodon とか missky とか)に類する WebApp を作るための情報まとめです
  • Fediverse の実装関連の情報はあちこちに散逸しているのでそれをまとめようかなと言う魂胆です
  • Fediverse を実現するための技術情報であれば誰でも書き足していって問題なしです

募集している情報

  • Golang と JavaScript 以外のライブラリの情報
    • Golang・JavaScript・TypeScript・Perl 以外はあまり詳しくない……
  • Fediverse Application でサポートしなければならない技術の情報
    • Webfinger とか Salmon とか WebMentionとか色々あるっぽいけど何がどうなっているのか
  • 実際の Fediverse Application で対応しなければならない事案についての情報
    • スパム対策・Federation の可否・各 Fediverse App での独自拡張についての情報など
にゃるら / カラクリスタにゃるら / カラクリスタ

現時点(2021-02)で見付けたライブラリ(順不同)

Golang

https://github.com/go-fed/

  • ActivityPub と ActivityStreams 2.0 を扱うライブラリ集
  • ActivityStreams 2.0 の vocab は自動生成しているっぽい
  • 全体的に自動生成のコードが多めで何がどうなっているのか把握しづらい

https://github.com/go-ap/

  • ActivityPub と ActivityStreams 2.0 を扱うライブラリ集
  • 全体的にコードがスッキリとしているがコード量が多い
  • なお 2021-02 現在でも活発に開発されている

Node.js

https://www.npmjs.com/package/jsonld

  • ActivityPub (と言うか ActivityStreams 2.0)で必要となる JSON Linked Data を扱うライブラリ
  • 実際に ActivityPub でこれを使うとなると json-ld の json を compaction で使う事になりそう
  • 2021-02 時点でも活発に開発されており利用価値は高そう

https://www.npmjs.com/package/activitypub-express

  • Web Application Framework の express に activitypub の API を生やすためのライブラリ
  • express の middleware として実装されているので express にはロックインされている
  • 2021-02 時点でも活発に開発は続いておりその点では安心できそう