Fedify: an ActivityPub server framework's avatar

Fedify: an ActivityPub server framework

@fedify@hollo.social · 8 following · 724 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/

Emelia 👸🏻's avatar
Emelia 👸🏻

@thisismissem@hachyderm.io

Fixed a rather gnarly bug in @fedify last night where schema.org's @context wasn't being resolved correctly because schema.org doesn't do content-neg and instead using link alternate headers to point to the JSON-LD context document. However, instead of using a fully qualified URL, it used a relative URL to the initial request, which caused Fedify to fail to fetch that context.

github.com/dahlia/fedify/pull/

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

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

今日Fedify/Holloのブースに訪問してくれた皆様、本当にありがとうございました‼️機会があれば是非またお会いましょう!

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

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

FedifyとHolloのブースです!

NTSK's avatar
NTSK

@nt776@sv1.in-deep.blue

初手Holloさん!!

モナコ広告 :fedibird1: @技術・雑談's avatar
モナコ広告 :fedibird1: @技術・雑談

@monaco_koukoku@fedibird.com

でFedify本を入手した!​ :ablobattention:

明日の飛行機の中で読もうかな。
朝が早いので爆睡の可能性もあるが…

『自分だけのフェディバースマイクロブログを作ろう!』(洪民憙著)表紙
ALT text details『自分だけのフェディバースマイクロブログを作ろう!』(洪民憙著)表紙
Evan Prodromou's avatar
Evan Prodromou

@evanprodromou@threads.net · Reply to Anil Dash's post

The main way to do that is to use a library that implements ActivityPub for you, like Fedify. https://fedify.dev/

Pablo Berganza (he/him)'s avatar
Pablo Berganza (he/him)

@pablo@sivar.cafe

As someone who works mainly in the front-end, ActivityPup (and related) always felt quite overwhelming and complicated to understand. I’ve been playing around with for the past week or so and the documentation is so good it all just clicked for me! (I think so, at least :p)

Really excited to see what people build as ActivityPub becomes more approachable!

fedify.dev

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

@fedify@hollo.social

10月26日(土)に開催されるOSC 2024 Tokyo/FallにFedify/Hollo合同で出展します!可愛いFedifyのロゴのシールと『自分だけのフェディバースのマイクロブログを作ろう!』日本語版の紙の本を持って行く予定です。よろしくお願いします。

https://event.ospn.jp/osc2024-fall/

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

@hongminhee@fosstodon.org · Reply to 洪 民憙 (Hong Minhee)'s post

I'm bringing along the Japanese version of the tutorial, Creating your own federated microblog.

github.com/dahlia/fedify-micro

The cover of the Japanese version of the Fedify tutorial, Creating your own federated microblog.
ALT text detailsThe cover of the Japanese version of the Fedify tutorial, Creating your own federated microblog.
A page of the Japanese version of the Fedify tutorial, Creating your own federated microblog.
ALT text detailsA page of the Japanese version of the Fedify tutorial, Creating your own federated microblog.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@fosstodon.org

I'm off to Tokyo tomorrow to attend OSC2024 Tokyo/Fall this Saturday!

event.ospn.jp/osc2024-fall/

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

@fedify@hollo.social

Due to the Internet Archive's unavailability, the https://purl.archive.org/socialweb/webfinger context is unable to be loaded, so a patch was made to preload (embed) the JSON-LD context. This patch was applied to versions 0.15.3, 1.0.5, and 1.1.1, so please update if you are experiencing this issue.

internetarchive's avatar
internetarchive

@internetarchive@mastodon.archive.org

Latest update from @brewsterkahle (Oct 17, 5:58pm): blog.archive.org/2024/10/18/in

Last week, along with a DDOS attack and exposure of patron email addresses and encrypted passwords, the Internet Archive’s website javascript was defaced, leading us to bring the site down to access and improve our security. 

The stored data of the Internet Archive is safe and we are working on resuming services safely. This new reality requires heightened attention to cyber security and we are responding. We apologize for the impact of these library services being unavailable.

The Wayback Machine, Archive-It, scanning, and national library crawls have resumed, as well as email, blog, helpdesk, and social media communications.  Our team is working around the clock across time zones to bring other services back online. In coming days more services will resume, some starting in read-only mode as full restoration will take more time. 

We’re taking a cautious, deliberate approach to rebuild and strengthen our defenses. Our priority is ensuring the Internet Archive comes online stronger and more secure.

As a library community, we are seeing other cyber attacks—for instance the British Library, Seattle Public Library, Toronto Public Library, and now Calgary Public Library. We hope these attacks are not indicative of a trend.

For the latest updates, please check this blog and our official social media accounts: X/Twitter, Bluesky and Mastodon.

Thank you for your patience and ongoing support.
ALT text detailsLast week, along with a DDOS attack and exposure of patron email addresses and encrypted passwords, the Internet Archive’s website javascript was defaced, leading us to bring the site down to access and improve our security. The stored data of the Internet Archive is safe and we are working on resuming services safely. This new reality requires heightened attention to cyber security and we are responding. We apologize for the impact of these library services being unavailable. The Wayback Machine, Archive-It, scanning, and national library crawls have resumed, as well as email, blog, helpdesk, and social media communications. Our team is working around the clock across time zones to bring other services back online. In coming days more services will resume, some starting in read-only mode as full restoration will take more time. We’re taking a cautious, deliberate approach to rebuild and strengthen our defenses. Our priority is ensuring the Internet Archive comes online stronger and more secure. As a library community, we are seeing other cyber attacks—for instance the British Library, Seattle Public Library, Toronto Public Library, and now Calgary Public Library. We hope these attacks are not indicative of a trend. For the latest updates, please check this blog and our official social media accounts: X/Twitter, Bluesky and Mastodon. Thank you for your patience and ongoing support.
Charles Chin's avatar
Charles Chin

@eallion@e5n.cc

Fedify 越来越强大了,官方甚至还出了一篇教程: fedify.dev/tutorial/microblog

段風桜 Dampuzakura(わかいい)'s avatar
段風桜 Dampuzakura(わかいい)

@dampuzakura@fedibird.com

dahlia/microblog: A simple federated microblog example using Fedify for educational purpose

github.com/dahlia/microblog

Windowsで試してみた

> This program is for educational purposes only. Do not use it for any other purpose, since it has not been tested for security.
だけどこれ普通に使えたら便利そう

fedify.dev/
@fedify

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

@hongminhee@fosstodon.org · Reply to 洪 民憙 (Hong Minhee)'s post

Want to build your own software? Follow the tutorial for , the ActivityPub server framework!

fedify.dev/tutorial/microblog

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

@fedify@hollo.social

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

  • Added uility functions for traversing remote collections. See also the Traversing remote collections section in the docs.

  • Added EmojiReact class to Activity Vocabulary API. [FEP-c0e0]

  • Added successor property to the Actor types in the Activity Vocabulary API.

  • Added DidService class to Activity Vocabulary API. [FEP-9091]

  • Added Export class to Activity Vocabulary API. [FEP-9091]

  • Added service property to the Actor types in the Activity Vocabulary API. [FEP-9091]

  • The default time window for verifying HTTP Signatures of incoming requests is now an hour (was a minute). This new default window is according to the ActivityPub and HTTP Signatures document.

  • In the fedify inbox command's web interface, the Raw Activity tab is added to show the raw JSON object of the received activity.

For details, see the full changelog as well!

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

@fedify@hollo.social

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

  • Added uility functions for traversing remote collections. See also the Traversing remote collections section in the docs.

  • Added EmojiReact class to Activity Vocabulary API. [FEP-c0e0]

  • Added successor property to the Actor types in the Activity Vocabulary API.

  • Added DidService class to Activity Vocabulary API. [FEP-9091]

  • Added Export class to Activity Vocabulary API. [FEP-9091]

  • Added service property to the Actor types in the Activity Vocabulary API. [FEP-9091]

  • The default time window for verifying HTTP Signatures of incoming requests is now an hour (was a minute). This new default window is according to the ActivityPub and HTTP Signatures document.

  • In the fedify inbox command's web interface, the Raw Activity tab is added to show the raw JSON object of the received activity.

For details, see the full changelog as well!

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

@hongminhee@fosstodon.org

Let's create your own implementation using !

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

@hongminhee@fosstodon.org

Even though I am a slow coder, it only took me about a month to create most of 's features in . Having a framework makes a huge difference in productivity.

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

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

https://discord.gg/hGXXxUq2jK

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

@fedify@hollo.social

The Japanese version of the tutorial, Creating your own federated microblog, is now available in paperback!

Note that the AsciiDoc source of the book is fully open source, which is available at this repository!

https://fedibird.com/@hongminhee/113331365440336287

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

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

印刷所に注文した『自分だけのフェディバースのマイクロブログを作ろう!』の紙の本、到着した‼️

Thibault Molleman🇧🇪 🌈🐝's avatar
Thibault Molleman🇧🇪 🌈🐝

@thibaultmol@en.osm.town · Reply to Fedify: an ActivityPub server framework's post

@fedify good to mention: there is also a Matrix space for those who are like "why discord?!"

matrix.to/#/#fedify:matrix.org

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

now has an driver! This means you can use as Fedify's message queue. To use it, first install the @fedify/amqp package, then set it up like below:

import { createFederation } from "@fedify/fedify";
import { AmqpMessageQueue } from "@fedify/amqp";
import { connect } from "amqplib";

const federation = createFederation({
  queue: new AmqpMessageQueue(await connect("amqp://localhost")),
  // ... other configurations
});

Oh, and we've also added results from AmqpMessageQueue to our benchmarks.

The results of the benchmarks for Fedify's outbox queue.
ALT text detailsThe results of the benchmarks for Fedify's outbox queue.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@fosstodon.org

takes 20 minutes for GitHub Actions to finish. What do you think?

OptionVoters
That's too slow. Optimize it now.0 (0%)
Not fast, but tolerable.0 (0%)
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

If you're on the fence about which driver to choose for 's message queue, here's a benchmark that just came out. In addition to no queue, we compare 5 drivers, for a total of 11 setups:

Curious to see the results? Check out the GitHub repository!

https://github.com/dahlia/fedify-queue-benchmarks

https://fosstodon.org/@hongminhee/113247723368865290

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

@hongminhee@fosstodon.org · Reply to 洪 民憙 (Hong Minhee)'s post

@thisismissem Here's the benchmark, and while it contains some questionable results, the overall conclusion is as following:

• Response times are much faster with queues than without.
• Overall throughput is better without queues.
• However, some queue setups can achieve throughput close to that of no queue.

This benchmark assumes communication within a single node, so the effect of queues may be greater in real-world networks.

github.com/dahlia/fedify-queue

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

@fedify@hollo.social

now has an driver! This means you can use as Fedify's message queue. To use it, first install the @fedify/amqp package, then set it up like below:

import { createFederation } from "@fedify/fedify";
import { AmqpMessageQueue } from "@fedify/amqp";
import { connect } from "amqplib";

const federation = createFederation({
  queue: new AmqpMessageQueue(await connect("amqp://localhost")),
  // ... other configurations
});

Oh, and we've also added results from AmqpMessageQueue to our benchmarks.

The results of the benchmarks for Fedify's outbox queue.
ALT text detailsThe results of the benchmarks for Fedify's outbox queue.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

The repository has reached 500 stars! Thank you everyone!

https://github.com/dahlia/fedify

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

@fedify@hollo.social

10月26日(土)に開催されるOSC 2024 Tokyo/FallにFedify/Hollo合同で出展します!可愛いFedifyのロゴのシールと『自分だけのフェディバースのマイクロブログを作ろう!』日本語版の紙の本を持って行く予定です。よろしくお願いします。

https://event.ospn.jp/osc2024-fall/

← Newer
Older →