Lightpub という ActivityPub 準拠の分散 SNS を開発しています。
特徴は以下の通りです。
- UI がシンプル
- フロントエンドが軽い
- Plain text のほか、Markdown や LaTeX 記法で投稿できる
- サーバーが軽い (たぶん)
とにかくサーバー、クライアント側の要件を小さくすることを目的に開発しています。機能はシンプルでいいから、とにかくよわよわのサーバーやクライアントで動かしたいという私みたいな人がターゲットです。
Mastodon や Misskey, Pleroma と連合できることを確認しています。現在は実験的にインスタンスを立てて運用しています。→ https://exp3.lightpub.tinax.work/client/user/@tinaxd
今年の2月か3月ぐらいに MIT ライセンスでOSSとして公開する予定です。Done is better than perfect ということで、まずは慣れている Node.js でサクサク開発を進めましたが、php とか perl しか使えない共用サーバーのwebホスティングでも動くようにしたいと思っているので、時間のある2月、3月で大幅に rewrite しようと思っています。仕事で perl 使うことになる可能性大なので、練習がてら Perl で rewrite することになりそうです。
フロントエンドは Bootstrap, htmx, alpine.js を使って書いています。HTMX は最近登場したライブラリで、html タグにアトリビュートを追加することで様々な ajax リクエストを飛ばせるようになるライブラリです。js をほとんど書かなくてよくなるので、UI が複雑ではない場合にはかなり便利なライブラリです。おすすめ。
これから ActivityPub の自作実装をするぞという人向けに、役に立つサイトをいくつかリストしておきます。
- https://www.w3.org/TR/activitypub/
まず最初に見ることになるであろう、ActivityPub の仕様書です。 - https://www.w3.org/TR/activitystreams-core/
これも仕様書です。連合する際に必要となる語彙について書かれています。 - https://activitypub.academy
Mastodon のテスト用インスタンスです。Mastodon を開発用に改変していて、送受信した json-ld の中身を見れる機能などが追加されています。Federation のテストに非常に役に立ちました。 - https://www.w3.org/wiki/ActivityPub/Primer
ActivityPub 実装のヒントがいろいろ書かれています。仕様書では定義されていない一般的な慣習 (例えば、投稿範囲を Activity Streams 内でどう表現するかなど) がわかります。
コメントを残す