Fedify,一个 ActivityPub 服务器框架,已达到 v0

fedify,一个 activitypub 服务器框架,已达到 v0

activitypub 框架 fedify 终于发布了第一个稳定版本 1.0.0!

什么是 fedify?

fedify 是一个 typescript 库,可以轻松创建基于 activitypub 协议的联合服务器应用程序。 activitypub 是一种开放标准协议,允许社交网络服务相互通信,使用户能够在名为 fediverse 的去中心化社交网络中跨各种服务进行交互。

使用 fedify,开发人员可以通过高级 api 轻松构建联合服务器应用程序,而无需自行实现 activitypub 协议的复杂细节。 fedify 提供了许多开箱即用的 activitypub 实现所需的功能,包括 activitypub 对象的类型安全接口、webfinger、http 签名、链接数据签名和对象完整性证明。

此外,fedify 还包括与流行的 fediverse 软件(如 mastodon 或 meta 的 threads)的互操作性的特殊处理,允许开发人员创建可以轻松与现有 fediverse 生态系统集成的应用程序。此外,它还支持与各种web框架集成,并提供cli工具,使开发和调试过程更加方便。

主要变化

弃用术语 handle

从此版本开始,fedify 中的术语 handle 将仅用于指代 fediverse 句柄(例如,@hongminhee@fosstodon.org)。参与者的内部唯一 id(例如 b379dbdc-3b4f-4ef4-88c2-fc25632d1c22)被称为 标识符,webfinger 名称(例如 hongminhee)被称为 用户名.

api 中的术语 handle 将保留一段时间以实现向后兼容性,但将记录弃用警告,并计划在将来删除它。

更多详细信息,请参阅相关文档。

关联数据签名

链接数据签名是一个过时的标准,但它仍然被 mastodon 等主要联邦实现所依赖。

除了 http 签名和对象完整性证明之外,fedify 现在还支持此版本中的链接数据签名,从而支持 fediverse 中使用的所有类型的签名方法。这使得 fedify 成为具有最佳互操作性的 activitypub 实现。

但是,fedify 用户不需要执行任何特殊操作即可使用链接数据签名。如果传入活动具有链接数据签名,它会自动验证签名,并且所有传出活动都将具有三种格式的签名:http 签名、链接数据签名和对象完整性证明。

更多详细信息,请参阅相关文档。

活动转发

从此版本开始,您可以使用 inboxcontext.forwardactivity() 方法将收件箱中收到的活动转发给其他参与者。

一键职达 一键职达

AI全自动批量代投简历软件,自动浏览招聘网站从海量职位中用AI匹配职位并完成投递的全自动操作,真正实现’一键职达’的便捷体验。

一键职达 79 查看详情 一键职达

乍一看,您可能认为可以使用 context.sendactivity() 方法重新发送收件箱中收到的活动。但是,如果您这样做,则在将活动传递到收件箱之前,原始签名会被删除,并且在发送活动时,会附加转发参与者的签名,从而导致转发活动的接收方不信任它。

另一方面,当使用 inboxcontext.forwardactivity() 方法时,活动将在保留原始签名的情况下转发,从而避免了此问题。 (当然,原始活动本身必须使用链接数据签名或对象完整性证明进行签名。)

更多详细信息,请参阅相关文档。

在 fedify 收件箱终止时发送删除(应用程序)

从此版本开始,fedify 收件箱将向终止时遇到的所有对等服务器发送删除(应用程序)活动。这通常是删除帐户时发送的活动,这将有助于防止与临时参与者相关的残留数据保留在其他服务器上。

postgresql 驱动程序

@fedify/postgres 包实现了 kvstore 和 messagequeue 接口的 postgresql 驱动程序,已与此版本一起发布。

postgresql 驱动程序是一个可以在生产中充分使用的后端,特别推荐给已经使用 postgresql 的项目。

此外,fedify init 命令中还添加了选择 postgresql 驱动程序的选项。

庆祝 fedify 1.0.0

随着 1.0.0 版本的发布,fedify 现在将尽可能保持 api 向后兼容性。 (当然,从长远来看,可能会出现破坏向后兼容性的 2.0.0。)这对于那些因为目前还没有稳定版本而一直犹豫是否使用 fedify 的人来说应该是个好消息!

fedify 1.0.0 现已在 jsr 和 npm 上提供:

deno add jsr:@fedify/fedifynpm  add     @fedify/fedify

所以,希望以后有更多的服务支持activitypub,我就结束这篇文章了!

以上就是Fedify,一个 ActivityPub 服务器框架,已达到 v0的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/450697.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月7日 22:59:52
下一篇 2025年11月7日 23:04:32

相关推荐

  • 新浪微博关注功能:如何用非关系型数据库高效存储海量关注关系?

    新浪微博关注功能数据存储实现方案 如何设计一个既能保证性能又能应对大数据量的社交网络关注功能数据存储方案?这是社交平台开发者面临的一大难题。本文探讨使用非关系型数据库来实现类似新浪微博关注功能的思路和解决方案。 使用关系型数据库虽然简单易行,但随着用户数量的增长,查询性能会急剧下降。因此,选择更适合…

    2025年12月9日
    000
  • 将数组转换为数组

    2022 年。将一维数组转换为二维数组 难度:简单 主题:数组、矩阵、模拟 给你一个0索引一维(1d)整数数组原始,和两个整数,m和n。您的任务是使用原始数据中的所有元素创建一个包含 m 行和 n 列的二维 (2d) 数组。 原始索引从0到n – 1(包括)的元素应该形成构造的二维数组的…

    2025年12月9日
    000
  • 转换后字符串的数字总和

    1945 年。转换后字符串的数字总和 难度:简单 主题:字符串、模拟 给你一个由小写英文字母组成的字符串 s 和一个整数 k。 首先,将 s 转换为整数,方法是将每个字母替换为其在字母表中的位置(即,将 ‘a’ 替换为 1,将 ‘b’ 替换为 2,&#…

    2025年12月9日
    000
  • 找到将更换粉笔的学生

    1894。找到将替换粉笔的学生 难度:中等 主题:数组、二分查找、模拟、前缀和 一个班级有n个学生,编号从0到n – 1。老师会给每个学生一个问题,从学号0开始,然后是学号1,以此类推,直到老师达到学号n – 1. 之后,老师将重新开始该过程,再次从学号0开始。 给你一个0索…

    2025年12月9日
    000
  • 连接两组点的最低成本

    1595。连接两组点的最低成本 难度:难 主题:数组、动态规划、位操作、矩阵、位掩码 给你两组点,第一组有大小1点,第二组有大小2点,大小1 >=尺寸2. 任意两点之间的连接成本以大小 1 x size2 矩阵给出,其中 cost[i][j] 是连接点 i 的成本第一组和第二组的 j 点。如果…

    2025年12月9日
    000
  • 修改图边权重

    2699。修改图边权重 难度:难 主题:图、堆(优先级队列)、最短路径 给你一个无向加权连通图,其中包含标记为0到n – 1的n个节点,以及一个整数数组edges,其中edges[i] = [ai, b i, wi] 表示节点 ai 和 bi 之间有一条边,权重为 wi. 某些边的权重为…

    2025年12月9日
    000
  • 计数子岛

    1905 年。计算子岛屿 难度:中等 主题:数组、深度优先搜索、广度优先搜索、并集查找、矩阵 给定两个 m x n 二进制矩阵 grid1 和 grid2,其中仅包含 0(代表水)和 1(代表土地)。 岛屿是一组由1连接的4向(水平或垂直)。网格之外的任何细胞都被视为水细胞。 如果 grid1 中的…

    2025年12月9日
    000
  • 同一行或同一列移除的大部分石头

    947。同一行或同一列移除的大部分石头 难度:中等 主题:哈希表、深度优先搜索、并集查找、图 在 2d 平面上,我们将 n 个石头放置在一些整数坐标点处。每个坐标点最多可以有一颗石头。 如果一块石头与另一块尚未移除的石头同一行或同一列,则可以将其移除。 给定一个长度为 n 的石头数组,其中stone…

    2025年12月9日
    000
  • 具有最大概率的路径

    1514。具有最大概率的路径 难度:中等 主题:数组、图、堆(优先队列)、最短路径 给定一个由 n 个节点(0 索引)组成的无向加权图,由边列表表示,其中edges[i] = [a, b] 是连接节点 a 和 b 的无向边,具有遍历成功的概率该边 succprob[i]. 给定两个节点的起点和终点,…

    2025年12月9日
    000
  • 二叉树后序遍历

    145。二叉树后序遍历 难度:简单 主题: 堆栈、树、深度优先搜索、二叉树 给定二叉树的根,返回其节点值的后序遍历. 示例1: 输入: root = [1,null,2,3]输出: [3,2,1] 示例2: 输入: root = []输出: [] 示例3: 输入: root = [1]输出: [1]…

    2025年12月9日
    000
  • N 叉树邮购遍历

    590。 n 叉树后序遍历 难度:简单 主题: 堆栈、树、深度优先搜索 给定n叉树的根,返回其节点值的后序遍历. nary-tree 输入序列化以其级别顺序遍历来表示。每组孩子都由空值分隔(参见示例) 示例1: 输入: root = [1,null,3,2,4,null,5,6]输出: [5,6,3…

    2025年12月9日
    000
  • 分数加法和减法

    592。分数加法和减法 难度:中等 主题:数学、字符串、模拟 给定一个表示分数加减表达式的字符串表达式,以字符串格式返回计算结果。 最终结果应该是一个不可约分数。如果您的最终结果 是整数,请将其更改为分母为 1 的分数格式。所以在这种情况下,2应该转换为2/1。 示例1: 输入:表达式 = &#82…

    2025年12月9日
    000
  • 找到最近的回文

    564。找到最近的回文 难度: 难 主题:数学、字符串 给定一个表示整数的字符串 n,返回_最接近的整数(不包括其自身),这是一个回文-。如果有平局,则返回较小的。 最接近的定义为两个整数之间的绝对差最小化。 示例1: 输入: n = “123”输出:“121” 示例2: 输…

    2025年12月9日
    000
  • 数补码

    476。数补码 难度:简单 主题: 位操作 整数的补码是将其二进制表示形式中的所有 0 翻转为 1 以及将所有 1 翻转为 0 时得到的整数。 例如,整数5的二进制是“101”,它的补码是“010”,即整数2。 给定一个整数 num,返回 其补码. 示例1: 输入: num = 5输出: 2说明: …

    2025年12月9日
    000
  • 奇怪的打印机

    664。奇怪的打印机 难度: 难 主题: 字符串、动态规划 有一种奇怪的打印机,具有以下两个特殊属性: 打印机每次只能打印一系列相同的字符。打印机每次都可以打印从任意位置开始和结束的新字符,并且会覆盖原来存在的字符。 给定一个字符串 s,返回打印机打印它所需的最小转数. 示例1: 输入: s = &…

    2025年12月9日
    000
  • 石头游戏II

    1140。石头游戏ii 难度:中等 主题: 数组、数学、动态规划、前缀和、博弈论 爱丽丝和鲍勃继续玩石头堆游戏。 有许多堆排成一排,每堆有正整数个石子piles[i]。 游戏的目标是以最多的石子结束。 爱丽丝和鲍勃轮流,爱丽丝先开始。 最初,m = 1. 在每个玩家的回合中,该玩家可以拿走第一个剩余…

    2025年12月9日
    000
  • 眼睛键盘

    650。 2键键盘 难度:中等 主题:数学,动态规划 记事本的屏幕上只有一个字符“a”。每一步您都可以在此记事本上执行以下两个操作之一: 全部复制:您可以复制屏幕上出现的所有字符(不允许部分复制)。粘贴:可以粘贴上次复制的字符。 给定一个整数n,返回在屏幕上精确出现n次字符“a”的最少操作次数. 示…

    2025年12月9日
    000
  • 最大点数与成本

    1937 年。最大积分数量与成本 难度:中等 主题: 数组、动态规划 给你一个 m x n 整数矩阵点(0 索引)。从 0 点开始,您希望最大化可以从矩阵中获得的点数。 要获得积分,您必须在每一行中选择一个单元格。选择坐标 (r, c) 处的单元格将为您的分数添加 分 [r][c]。 但是,如果您选…

    2025年12月9日
    000
  • 阵列中的最大距离

    624。数组中的最大距离 难度:中等 主题:数组,贪心 给你m个数组,每个数组按照升序. 你可以从两个不同的数组中选取两个整数(每个数组选取一个)并计算距离。我们将两个整数 a 和 b 之间的距离定义为它们的绝对差 |a – b|。 返回最大距离. 示例1: 输入:数组 = [[1,2,…

    2025年12月9日
    000
  • 什么是 PHP?为什么要学习它?

    如果您刚开始涉足 Web 开发领域,您很可能已经听说过 PHP。但 PHP 到底是什么?为什么它被如此广泛地使用?在这篇文章中,我们将探讨 PHP 成为开发人员的热门选择的原因、它的主要应用程序,以及为什么您应该考虑学习这种语言。 什么是 PHP? PHP最初代表“个人主页”,现在被称为“超文本预处…

    2025年12月9日
    000

发表回复

登录后才能评论
关注微信