bridgy-fed/FEDERATION.md

5.0 KiB

Federation

Bridgy Fed is a bridge across decentralized social network protocols. It tries to translate between protocols fully bidirectionally, as completely and with as high fidelity as possible. It uses granary to translate between different protocols' data formats.

Bridgy Fed currently supports the IndieWeb, the Fediverse, and Bluesky. Nostr and Farcaster are on the roadmap for the future.

This document describes, at a high level, how Bridgy Fed supports and translates between the different protocols it suports. It's based on FEP-67ff.

Background

Bridgy Fed's documentation describes much of its details. Here are some relevant sections:

Supported federation protocols and standards

IndieWeb

Bridgy Fed accepts incoming webmentions, fetches remote web pages, parses their HTML for microformats2, and handles the contained data. It also sends outbound webmentions and translates and serves data from other networks into HTML with microformats2. It supports microformats2 profiles (h-cards), posts, replies, likes, reposts, deletes (including both serving and handling HTTP 410), hashtags, mentions.

Atom, RSS

Beyond IndieWeb sites, Bridgy Fed also supports reading posts from web sites via Atom and RSS feeds.

Fediverse

Bridgy Fed tries to be a relatively full featured fediverse implementation, including ActivityPub server-to-server, WebFinger, and HTTP Signatures. It translates ActivityStreams 2 objects and activities to and from other networks' data formats.

Supported AS2 object types: Application, Article, Audio, Event, Flag, Image, Link, Mention, Note, Organization, Person, Place, Service, Video

Supported AS2 object types: Accept, Announce, Block, Create, Delete, Follow, Like, Reject, Undo (of some activities), Update

Bridgy Fed doesn't require authorized fetch, ie signed HTTP GETs for AS2 objects and activities, but it does attach valid HTTP Signatures to its own outbound GETs to other servers.

Supported FEPs

Current:

Planned:

Bluesky / AT Protocol

Bridgy Fed's support for Bluesky is based on arroba, a fully independent implementation of the AT Protocol, and lexrpc, a related independent implementation of XRPC and Lexicon.

Bridgy Fed is a federated AT protocol PDS, ie user data server. It translates data to/from the bsky.app lexicon (data model) and serves it to the main bsky.network relay, which sends it onward to the main AppView and from there to user-facing clients like bsky.app.