沖の岩

relay 灯台

ja· en· ko
はじめての人へたくさんの島へ手紙をまとめて配ってくれる、中継サーバの仕組みです。

小さな島どうしを、まとめてつなげられます。一軒一軒と文通しなくても、灯台を購読すれば海の噂がまとめて届く。過疎の島の連合体験は、リレーがあるかどうかで大きく変わります——そして、これは自分でその灯台を建てるためのキットです。

沖には二つの流儀(Mastodon流とLitePub流)があって、購読の握手が微妙に違います。だからこの灯台は、二つの顔を両方持っています。

見どころ

  • 購読も解約もFollowの握手(follow.ts)——灯台もまた、ひとりのactor
  • 両方の流儀にテストが併設(mastodon.test.ts / litepub.test.ts)
  • 約2900行。relayサーバを自作したい島のための、灯台キット

経文の一節

export function createRelay(
  type: RelayType,
  options: RelayOptions,
): Relay {
  switch (type) {
    case "mastodon":
      return new MastodonRelay(options, relayBuilder);
    case "litepub":
      return new LitePubRelay(options, relayBuilder);
  }
}
packages/relay/src/factory.ts L26-L36— 二つの流儀の、分かれ道

間取り

packages/relay/src/factory.ts
createRelay()——流儀の分かれ道
packages/relay/src/mastodon.ts
Mastodon流のリレー
packages/relay/src/litepub.ts
LitePub流のリレー
packages/relay/src/follow.ts
Followの握手(購読/解約)

となりの部屋

そとへのリンク