主要观点:
- 被联邦宇宙(fediverse)吸引,想构建联邦应用,但自行实现 ActivityPub 困难且易出错。
- Fedify 是 TypeScript 框架,可处理 ActivityPub 开发的复杂部分,让开发者专注于应用特色。
关键信息:
- ActivityPub 依赖 ActivityStreams 2.0 和 JSON-LD,手动处理复杂且易出错。
- Fedify 的 type-safe Activity Vocabulary API 能处理数据建模挑战。
- Fedify 简化了发现与身份识别(WebFinger 协议)、核心 ActivityPub 机制(处理请求和集合等)、可靠交付与异步处理、安全、互操作性与维护、开发者体验等方面的问题。
- Fedify 提供良好的开发者体验,如 TypeScript 支持、
fedify
CLI 工具(init
、lookup
、inbox
、tunnel
等)。
重要细节:
- 数据建模挑战:需正确理解和使用 ActivityStreams 词汇,处理 JSON-LD 的各种规则,如缺失与空数组、单值与数组、对象引用与嵌入对象等,Fedify 可通过其 API 处理。
- 发现与身份识别:Fedify 可自动处理 WebFinger 请求,简化 actor 的可发现性,开发者只需定义 actor,Fedify 负责处理细节。
- 核心 ActivityPub 机制:Fedify 的核心请求处理程序可管理内容协商、处理 inbox、集合等,通过各种调度器简化实现。
- 可靠交付与异步处理:Fedify 的
MessageQueue
抽象可实现可靠的活动发送,支持多种队列后端,处理高流量的扇出。 - 安全:Fedify 自动处理 HTTP 签名、LDS 和 OIP,包含键管理工具和 SSRF 保护。
- 互操作性与维护:Fedify 追求广泛的互操作性,内置 NodeInfo 支持和
ActivityTransformer
。 - 开发者体验:
fedify
CLI 工具方便项目创建、调试、测试等,如init
创建项目,lookup
查看远程对象,inbox
测试发送活动,tunnel
暴露本地开发服务器。
结论:自行实现 ActivityPub 复杂且耗时,Fedify 提供基础架构,让开发者专注于应用特色,快速可靠地构建联邦应用,安装 Fedify CLI 即可开始使用,可参考教程和手册。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。