Fedify: an ActivityPub server framework's avatar

Fedify: an ActivityPub server framework

@fedify@hollo.social · 8 following · 628 followers

:fedify: Fedify is a TypeScript library for building federated server apps powered by ActivityPub and other standards, so-called fediverse. It aims to eliminate the complexity and redundant boilerplate code when building a federated server app, so that you can focus on your business logic and user experience.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

🎉 Excited to announce that is now on Open Collective! Support the project's development starting at:

  • Backer (from $5/mo)
  • Supporter (from $25/mo)
  • Sponsor (from $100/mo)
  • Corporate Sponsor (from $500/mo)
  • Custom donations welcome

Your support will help us maintain and improve Fedify. Check it out here:

https://opencollective.com/fedify

:fedify:

Fedify's Open Collective page showing the project logo, description as “A TypeScript library for building federated server apps powered by ActivityPub and other standards”, and five contribution tiers starting from $5/month Backer to $500/month Corporate Sponsor, with custom contribution options available.
ALT text detailsFedify's Open Collective page showing the project logo, description as “A TypeScript library for building federated server apps powered by ActivityPub and other standards”, and five contribution tiers starting from $5/month Backer to $500/month Corporate Sponsor, with custom contribution options available.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Fedify is an server framework in & . It aims to eliminate the complexity and redundant boilerplate code when building a federated server app, so that you can focus on your business logic and user experience.

The key features it provides currently are:

If you're curious, take a look at the website! There's comprehensive docs, a demo, a tutorial, example code, and more:

https://fedify.dev/

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Hello, ! It's the official fedi account of the Fedify, an server framework!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to かんたん定款送信 :salmon:ρουμη𑀭𑀼𑀫𑀺འརུ་མི་ᚱᚢるみ㌨Да!ሩሚ‮אخ's post

@Rumisan 私はChatGPTではなくClaudeを使っていますが、Claudeのプロジェクト機能を活用して、プロジェクトにFedifyのドキュメントを全て入れて質問しています。実際にチュートリアルやサンプルコードをそうやって生成した事も有ります!

Claudeを使ってFedifyとHonoを連動させた簡単なActivityPubアプリを作った様子
ALT text detailsClaudeを使ってFedifyとHonoを連動させた簡単なActivityPubアプリを作った様子
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Since 1.4.0, our next release, the fedify lookup command will have the -t/--traverse option! It takes a URL of the collection, and traverse its items from the beginning to the end. Here's a demo:

The demo session of the -t/--traverse option which will be introduced to the fedify lookup command since Fedify 1.4.0.
ALT text detailsThe demo session of the -t/--traverse option which will be introduced to the fedify lookup command since Fedify 1.4.0.
S.H.@Haloはいいぞ's avatar
S.H.@Haloはいいぞ

@S_H_@gamelinks007.net

とりあえず、最近fedifyでDevContainer経由で建てたローカルのリレーサーバとMastodonでリレーの処理が確認できそうなことがわかったんで動作確認手順まとめてます

S.H.@Haloはいいぞ's avatar
S.H.@Haloはいいぞ

@S_H_@gamelinks007.net

そういやリレーサーバの疎通確認、fedify tunnel使ってできたよ

S.H.@Haloはいいぞ's avatar
S.H.@Haloはいいぞ

@S_H_@gamelinks007.net · Reply to 洪 民憙 (Hong Minhee)'s post

@hongminhee
Yay!

발리스네리아's avatar
발리스네리아

@vallis_neria@bakedbean.xyz

fedify 튜토리얼 읽어봐야지..

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

「Fedifyの長所:Denoで動くけど、DenoはRustコードに埋め込みやすい(??)」

https://mitir.social/notes/a1loh2gwn3

Chris​‌​‬ Hayes‌​​​'s avatar
Chris​‌​‬ Hayes‌​​​

@chris_hayes@fosstodon.org

I made a thing. You can put a Mastodon post URL in the search box and it will show the post.

fediverse.hayes.software

I was learning and I wanted to make a minimal Next.js example of a "read-only" app that was for consuming the Fediverse and didn't mess with interactions. It started as a boilerplate to benefit other devs, but the act of making it forced me to learn a lot more about Fedify and ActivityPub.

A screenshot showing 2 browser windows, one in landscape format, one in portrait format, to represent desktop and mobile viewports. The design is very yellow and sepia-ish showing a toot and an image next to it. A lot of brush and marker strokes are incorporated into the design. Otherwise the design is minimal.
ALT text detailsA screenshot showing 2 browser windows, one in landscape format, one in portrait format, to represent desktop and mobile viewports. The design is very yellow and sepia-ish showing a toot and an image next to it. A lot of brush and marker strokes are incorporated into the design. Otherwise the design is minimal.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Chris​‌​‬ Hayes‌​​​'s post

@chris_hayes Yes, it corresponds to the misskey:isCat property! According to the docs:

Used on actors to indicate that they in some way identify as a cat, expressed as a boolean value. If this property is set to true, displaying the actor or their notes will have some special effects attached in some clients.

Chris​‌​‬ Hayes‌​​​'s avatar
Chris​‌​‬ Hayes‌​​​

@chris_hayes@fosstodon.org

I was looking at the properties on the Person object implemented by , and wasn't expecting this one, haha!

I'm presuming this is related? The quirks of having to implement many different versions of a spec!

A screenshot of a code editor showing a TypeScript class Person with a property get cat(): boolean | null. The accompanying comment explains that the property is "used on actors to indicate that they in some way identify as a cat, expressed as a boolean value. If this property is set to true, displaying the actor or their notes will have some special effects attached in some clients."
ALT text detailsA screenshot of a code editor showing a TypeScript class Person with a property get cat(): boolean | null. The accompanying comment explains that the property is "used on actors to indicate that they in some way identify as a cat, expressed as a boolean value. If this property is set to true, displaying the actor or their notes will have some special effects attached in some clients."
Chris​‌​‬ Hayes‌​​​'s avatar
Chris​‌​‬ Hayes‌​​​

@chris_hayes@fosstodon.org

- I'm learning ActivityPub for a larger project, but taking a moment to and code a minimal fediverse reader.

I found it tricky learning to make a read-only app with , so wanted to make this example Next.js project available. Got a little carried away with the design.

Mockup in , it's a better prototyping tool than one might expect.

Hopefully @tamami doesn't mind me using her nice post in my mockup :blobcatfingergun:.

A design mockup of a minimalistic "Fediverse Reader" app created in Inkscape, showcasing layouts for desktop and mobile screens. The designs include variations of a homepage and post view with text and images. The interface uses light yellow tones and emphasizes simplicity with modern, clean lines.
ALT text detailsA design mockup of a minimalistic "Fediverse Reader" app created in Inkscape, showcasing layouts for desktop and mobile screens. The designs include variations of a homepage and post view with text and images. The interface uses light yellow tones and emphasizes simplicity with modern, clean lines.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

The repository has reached 600 stars! Thank you everyone!

https://github.com/dahlia/fedify

The Fedify repository has reached 602 stars.
ALT text detailsThe Fedify repository has reached 602 stars.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

Here's the detailed release note of Fedify 1.3.0!

https://dev.to/hongminhee/fedify-130-opentelemetry-support-enhanced-message-queue-42gk

洪 民憙(ホン・ミンヒ)'s avatar
洪 民憙(ホン・ミンヒ)

@hongminhee@fedibird.com

FedifyやHolloの開発を支援したい方は、GitHubでスポンサーになってください!

github.com/sponsors/dahlia
QT: fosstodon.org/@hongminhee/1135
[参照]

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@fosstodon.org

If you'd like to support the development of @fedify or @hollo, you can sponsor me on GitHub!

github.com/sponsors/dahlia

洪 民憙(ホン・ミンヒ)'s avatar
洪 民憙(ホン・ミンヒ)

@hongminhee@fedibird.com · Reply to 洪 民憙(ホン・ミンヒ)'s post

Fedify 1.3.0の詳細なリリースノートは以下の記事を参照してください!

zenn.dev/hongminhee/articles/7

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@fosstodon.org

1.3.0이 릴리스되었습니다. 서포트들 비롯해 많은 것이 바뀌었으니, 아래 릴리스 노트에서 살펴보세요!

velog.io/@hongminhee/fedify-1.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

Here's the detailed release note of Fedify 1.3.0!

https://dev.to/hongminhee/fedify-130-opentelemetry-support-enhanced-message-queue-42gk

洪 民憙(ホン・ミンヒ)'s avatar
洪 民憙(ホン・ミンヒ)

@hongminhee@fedibird.com

ActivityPubサーバーフレームワークのFedifyの1.3.0バージョンがリリースされました。主な変更点は以下の通りです。

• OpenTelemetry の計装のスパンが追加されました。殆どの場合、アプリケーションにOpenTelemetry SDKが設定されていれば、自動的に計装されます。
• 今回のバージョンから、受信アクティビティと送信アクティビティに対して異なるMessageQueueを設定する事が出来る様に成りました。
• Activityを手動でインボックスリスナーにルーティングする事が出来る様に成りました。
• Context.sendActivity()とforwardActivity()メソッドは、タスクをキューに入れる事に失敗した場合、エラーを出す様に成りました。
さんのおかげでSvelteKitと連携する為に@fedify/fedify/x/sveltekitモジュールが追加されました。
• 正しいUser-Agentヘッダ(例えば、`User-Agent: Fedify/1.3.0 (Deno/2.1.2)`)を含めてHTTPリクエストを送る様に成りました。

詳細は変更ログをご覧ください!

github.com/dahlia/fedify/relea
QT: hollo.social/@fedify/01937890-
[参照]

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

The version 1.3.0 of , an server framework, released! The key changes include:

For details, see the full changelog as well!

Fedify 1.3.0 is available at JSR and npm.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

The version 1.3.0 of , an server framework, released! The key changes include:

For details, see the full changelog as well!

Fedify 1.3.0 is available at JSR and npm.

robin's avatar
robin

@robin_maki@planet.moe

아스키아트 로고 귀여워...

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@fosstodon.org

I would like to translate 's docs into Korean and Japanese, the languages I can speak, but the amount of the docs is quite much, so I can't even think of doing it. The maintenance costs for updating the docs also cannot be ignored. :blobcatnotlikethis:

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

's @opentelemetry instrumentation works like a charm with @getsentry! :opentelemetry: :sentry:

A trace view on Sentry. Many spans are on the instrumentation timeline.
ALT text detailsA trace view on Sentry. Many spans are on the instrumentation timeline.
A trace view on Sentry. Many spans are on the instrumentation timeline.
ALT text detailsA trace view on Sentry. Many spans are on the instrumentation timeline.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

Many more spans were added today! :opentelemetry:

https://unstable.fedify.dev/manual/opentelemetry#instrumented-spans

Instrumented spans

Fedify automatically instruments the following operations with OpenTelemetry spans:

Span name	Span kind	Description
{method} {template}	Server	Serves the incoming HTTP request.
activitypub.get_actor_handle	Client	Resolves the actor handle.
activitypub.lookup_object	Client	Looks up the Activity Streams object.
http_signatures.sign	Internal	Signs the HTTP request.
http_signatures.verify	Internal	Verifies the HTTP request signature.
ld_signatures.sign	Internal	Makes the Linked Data signature.
ld_signatures.verify	Internal	Verifies the Linked Data signature.
object_integrity_proofs.sign	Internal	Makes the object integrity proof.
object_integrity_proofs.verify	Internal	Verifies the object integrity proof.
webfinger.handle	Server	Handles the WebFinger request.
webfinger.lookup	Client	Looks up the WebFinger resource.

More operations will be instrumented in the future releases.
ALT text detailsInstrumented spans Fedify automatically instruments the following operations with OpenTelemetry spans: Span name Span kind Description {method} {template} Server Serves the incoming HTTP request. activitypub.get_actor_handle Client Resolves the actor handle. activitypub.lookup_object Client Looks up the Activity Streams object. http_signatures.sign Internal Signs the HTTP request. http_signatures.verify Internal Verifies the HTTP request signature. ld_signatures.sign Internal Makes the Linked Data signature. ld_signatures.verify Internal Verifies the Linked Data signature. object_integrity_proofs.sign Internal Makes the object integrity proof. object_integrity_proofs.verify Internal Verifies the object integrity proof. webfinger.handle Server Handles the WebFinger request. webfinger.lookup Client Looks up the WebFinger resource. More operations will be instrumented in the future releases.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Emelia 👸🏻's post

@thisismissem Sure thing! We're adding more spans in next few days, including document loaders!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

's @opentelemetry instrumentation works like a charm with @getsentry! :opentelemetry: :sentry:

A trace view on Sentry. Many spans are on the instrumentation timeline.
ALT text detailsA trace view on Sentry. Many spans are on the instrumentation timeline.
A trace view on Sentry. Many spans are on the instrumentation timeline.
ALT text detailsA trace view on Sentry. Many spans are on the instrumentation timeline.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

Many more spans were added today! :opentelemetry:

https://unstable.fedify.dev/manual/opentelemetry#instrumented-spans

Instrumented spans

Fedify automatically instruments the following operations with OpenTelemetry spans:

Span name	Span kind	Description
{method} {template}	Server	Serves the incoming HTTP request.
activitypub.get_actor_handle	Client	Resolves the actor handle.
activitypub.lookup_object	Client	Looks up the Activity Streams object.
http_signatures.sign	Internal	Signs the HTTP request.
http_signatures.verify	Internal	Verifies the HTTP request signature.
ld_signatures.sign	Internal	Makes the Linked Data signature.
ld_signatures.verify	Internal	Verifies the Linked Data signature.
object_integrity_proofs.sign	Internal	Makes the object integrity proof.
object_integrity_proofs.verify	Internal	Verifies the object integrity proof.
webfinger.handle	Server	Handles the WebFinger request.
webfinger.lookup	Client	Looks up the WebFinger resource.

More operations will be instrumented in the future releases.
ALT text detailsInstrumented spans Fedify automatically instruments the following operations with OpenTelemetry spans: Span name Span kind Description {method} {template} Server Serves the incoming HTTP request. activitypub.get_actor_handle Client Resolves the actor handle. activitypub.lookup_object Client Looks up the Activity Streams object. http_signatures.sign Internal Signs the HTTP request. http_signatures.verify Internal Verifies the HTTP request signature. ld_signatures.sign Internal Makes the Linked Data signature. ld_signatures.verify Internal Verifies the Linked Data signature. object_integrity_proofs.sign Internal Makes the object integrity proof. object_integrity_proofs.verify Internal Verifies the object integrity proof. webfinger.handle Server Handles the WebFinger request. webfinger.lookup Client Looks up the WebFinger resource. More operations will be instrumented in the future releases.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We now have and 's official server! Join us now!

https://discord.gg/bhtwpzURwd

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

:opentelemetry: @opentelemetry instruments are being added one by one to …!

Instrumented spans

Fedify automatically instruments the following operations with OpenTelemetry spans:

Operation	Span type	Description
Federation.fetch()	Server	Serves the incoming HTTP request.
lookupObject()	Client	Looks up the Activity Streams object.
lookupWebFinger()	Client	Looks up the WebFinger resource.
handleWebFinger()	Server	Handles the WebFinger request.

More operations will be instrumented in the future releases.
ALT text detailsInstrumented spans Fedify automatically instruments the following operations with OpenTelemetry spans: Operation Span type Description Federation.fetch() Server Serves the incoming HTTP request. lookupObject() Client Looks up the Activity Streams object. lookupWebFinger() Client Looks up the WebFinger resource. handleWebFinger() Server Handles the WebFinger request. More operations will be instrumented in the future releases.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to silverpill's post

@silverpill Thanks!

← Newer
Older →