首頁  >  文章  >  web前端  >  Fedify,一個 ActivityPub 伺服器框架,已達到 v.0

Fedify,一個 ActivityPub 伺服器框架,已達到 v.0

Barbara Streisand
Barbara Streisand原創
2024-09-26 08:16:42663瀏覽

Fedify, an ActivityPub server framework, reached v.0

Fedify, an ActivityPub framework, has finally released its first stable version, 1.0.0!

What is Fedify?

Fedify is a TypeScript library that makes it easy to create federated server applications based on the ActivityPub protocol. ActivityPub is an open standard protocol that allows social networking services to communicate with each other, enabling users to interact across various services in a decentralized social network called the fediverse.

Using Fedify, developers can easily build federated server apps through high-level APIs without having to implement the complex details of the ActivityPub protocol themselves. Fedify provides many features necessary for ActivityPub implementation out of the box, including type-safe interfaces for ActivityPub objects, WebFinger, HTTP Signatures, Linked Data Signatures, and Object Integrity Proofs.

Furthermore, Fedify includes special handling for interoperability with popular fediverse software like Mastodon or Meta's Threads, allowing developers to create applications that can easily integrate with the existing fediverse ecosystem. Additionally, it supports integration with various web frameworks and provides CLI tools, making the development and debugging process even more convenient.

Key changes

Deprecation of the term handle

From this version, the term handle across Fedify will only be used to refer to fediverse handles (e.g., @hongminhee@fosstodon.org). An actor's internal unique ID (e.g., b379dbdc-3b4f-4ef4-88c2-fc25632d1c22) is referred to as an identifier, and the WebFinger name (e.g., hongminhee) is referred to as a username.

The term handle in the API will be maintained for a while for backward compatibility, but deprecation warnings will be logged, and it is planned to be removed in the future.

For more details, please refer to the related documentation.

Linked Data Signatures

Linked Data Signatures is an outdated standard, but it's still relied upon by major fediverse implementations such as Mastodon.

In addition to HTTP Signatures and Object Integrity Proofs, Fedify now supports Linked Data Signatures from this version, thus supporting all types of signature methods used in the fediverse. This makes Fedify an ActivityPub implementation with the best interoperability.

However, Fedify users don't need to do anything special to use Linked Data Signatures. If an incoming activity has Linked Data Signatures, it automatically verifies the signature, and all outgoing activities will have signatures in three formats: HTTP Signatures, Linked Data Signatures, and Object Integrity Proofs.

For more details, please refer to the related documentation.

Activity forwarding

From this version, you can forward activities received in the inbox to other actors using the InboxContext.forwardActivity() method.

At first glance, you might think that you could just resend an activity received in the inbox using the Context.sendActivity() method. However, if you do this, the original signature is removed before the activity is delivered to the inbox, and when sending it, the signature of the forwarding actor is attached instead, causing the receiving side of the forwarded activity to not trust it.

On the other hand, when using the InboxContext.forwardActivity() method, the activity is forwarded with the original signature preserved, avoiding this problem. (Of course, the original activity itself must be signed with Linked Data Signatures or Object Integrity Proofs.)

For more details, please refer to the related documentation.

Sending Delete(Application) on fedify inbox termination

From this version, fedify inbox will send a Delete(Application) activity to all peer servers it encountered when terminated. This is typically an activity sent when deleting an account, which will help prevent residual data related to temporary actors from remaining on other servers.

PostgreSQL drivers

The @fedify/postgres package, which implements PostgreSQL drivers for the KvStore and MessageQueue interfaces, has been released alongside this version.

The PostgreSQL driver is a backend that can be sufficiently used in production, especially recommended for projects already using PostgreSQL.

Additionally, an option to select the PostgreSQL driver has been added to the fedify init command.

慶祝 Fedify 1.0.0

隨著 1.0.0 版本的發布,Fedify 現在將盡可能保持 API 向後相容性。 (當然,從長遠來看,可能會出現破壞向後相容性的 2.0.0。)這對於那些因為目前還沒有穩定版本而一直猶豫是否使用 Fedify 的人來說應該是個好消息!

Fedify 1.0.0 現已在 JSR 和 npm 上提供:

deno add jsr:@fedify/fedify
npm  add     @fedify/fedify

所以,希望以後有更多的服務支援ActivityPub,我就結束這篇文章了!

以上是Fedify,一個 ActivityPub 伺服器框架,已達到 v.0的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn