Fedify: an ActivityPub server framework
We've applied Twoslash to the Fedify docs to show type information as tooltips in TypeScript example code—check it out now!
@[email protected] · 7 following · 373 followers
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.
Website | GitHub | JSR | npm |
---|---|---|---|
We've applied Twoslash to the Fedify docs to show type information as tooltips in TypeScript example code—check it out now!
次のバージョンのFedifyはLinked Data Signatures (RsaSignature2017)に対応します。つまり、Mastodonが他のサーバーからフォワードしたアクティビティをFedifyが検証出来る様になります。
また、Context.sendActivity()メソッドで送信するアクティビティは、RSA-PKCS#1-v1.5の鍵ペアが一つでも有る場合、HTTP Signaturesに加え、Linked Data Signaturesが添付されます。
すでに廃止された標準であるLinked Data Signaturesを実装するのは気が進まなかったのですが、この変更がFedifyアプリのより良い互換性と相互運用性の基礎になる事を願っています。
QT: https://hollo.social/@fedify/0191ec91-922b-70d5-b5df-8afc07abbec3 [参照]
The next version of #Fedify will support #LDSignatures (#RsaSignature2017), which means that Fedify will be able to verify activities forwarded by #Mastodon from other servers.
In addition, activities sent with the Context.sendActivity()
method will have Linked Data Signatures attached in addition to HTTP Signatures if any RSA-PKCS#1-v1.5 key pairs are present.
We were not motivated by implementing Linked Data Signatures, which is already an outdated standard, but we hope this change will lead to better compatibility and interoperability of Fedify apps!
The next version of #Fedify will support #LDSignatures (#RsaSignature2017), which means that Fedify will be able to verify activities forwarded by #Mastodon from other servers.
In addition, activities sent with the Context.sendActivity()
method will have Linked Data Signatures attached in addition to HTTP Signatures if any RSA-PKCS#1-v1.5 key pairs are present.
We were not motivated by implementing Linked Data Signatures, which is already an outdated standard, but we hope this change will lead to better compatibility and interoperability of Fedify apps!
Working on @fedify's docs about #LDSignatures… I hope someday #Fedify drop the support for Linked Data Signatures… 😇
@[email protected] · Reply to Fedify: an ActivityPub server framework's post
If you're curious about #Fedify's property hydration, here's the docs for it:
#Fedify has a side effect that when you call the getter method of an Activity Vocabulary object, the property that was internally a URI is populated with the actual ActivityStreams object. Today, someone at Ghost gave us a cool term for this: #hydration.
The `fedify inbox` command, which is shipped with @fedify/cli, is a tool that creates an ephemeral #ActivityPub server so that you can debug and test the activities you send.
Here's a demo of it.
Fedify, an #ActivityPub server framework, has released v0.15.0! The key changes include:
Article
, ChatMessage
, Note
, and Question
classes now have a quoteUrl
property. This property corresponds to three properties at once: as:quoteUrl
, misskey:_misskey_quote
, and fedibird:quoteUri
.Like
to Object | URL
.Context.lookupObject()
method.Link
header or the <link>
/<a>
tag in HTML.-r
/--raw
option to the fedify lookup
command.@[email protected] · Reply to silverpill's post
@silverpill FEP-e232 should be implemented in an application code. @hollo will implement it later!
Today, thanks to @ellemedit, we've added two more example projects to #Fedify!
If you're interested in Fedify and these two frameworks, take a look!
As a trilingual, I've written the #Fedify's tutorial in three languages:
• English: https://unstable.fedify.dev/tutorial/microblog
• Korean: https://hackmd.io/@hongminhee/fedify-tutorial-ko
• Japanese: https://zenn.dev/hongminhee/books/4a38b6358a027b
@[email protected] · Reply to 洪 民憙 (Hong Minhee)'s post
In the next version of #Fedify, it will allow you to decouple actor URIs from WebFinger usernames with the mapHandle()
method. For example, you can use UUIDs for actor URIs but let users use their own username of choice for their fediverse handle.
@[email protected] · Reply to 洪 民憙 (Hong Minhee)'s post
In the next version of #Fedify, it will allow you to decouple actor URIs from WebFinger usernames with the mapHandle()
method. For example, you can use UUIDs for actor URIs but let users use their own username of choice for their fediverse handle.
@[email protected] · Reply to Antolius's post
@antolius Glad you enjoyed reading this!
@[email protected] · Reply to Fedify: an ActivityPub server framework's post
@fedify this is incredibly helpful! I went into it with some beforehand knowledge & it was still useful.
The structure & flow are great, it's telling a story & leading the reader through it. The tips alone make it worth a read. I love how detailed it is, covering everything from database to frontend. On the other hand, every lib/tool is well & succinctly explained which makes it easy to swap out with an alternative. The prompts for improvements at the end are great.
⭐⭐⭐⭐⭐, will read again.
@[email protected] · Reply to kopper [they/them]'s post
Thank you for your advice. As you mentioned, Fedify currently has actor URIs consisting of handles. This limitation is due to the early design of Fedify and will be fixed before we release v1.0!
한국어판 Fedify 튜토리얼 《나만의 연합우주 마이크로블로그 만들기》를 공개합니다! Fedify나 ActivityPub을 몰라도 차근차근 따라할 수 있게 되어 있으니, ActivityPub 구현에 관심이 있으신 분들은 부디 읽어 주시기 바랍니다. (대신, 조금 깁니다. 😅)
日本語版Fedifyチュートリアル『自分だけのフェディバースのマイクロブログを作ろう!』をZennで公開しました!ActivityPubの実装に興味の有る方々は是非ご覧ください!
We just finished drafting a new tutorial for #Fedify! This tutorial will walk you through the steps of creating your own federated #microblog. It's pretty long, though.
Please read it, give us feedback, and have fun!
We just finished drafting a new tutorial for #Fedify! This tutorial will walk you through the steps of creating your own federated #microblog. It's pretty long, though.
Please read it, give us feedback, and have fun!
The next version of #Fedify will add the Context.lookupObject()
method, which is preferred over the global lookupObject()
function.
Are there any features you'd like to see in #Fedify?
Fedifyは、TypeScriptとJavaScriptで書かれたActivityPubサーバーフレームワークです。分散型のソーシャルネットワークを構築するためのサーバーアプリケーションを作る際の複雑さと冗長なコードを排除し、ビジネスロジックとユーザー体験の開発に集中できるようにすることを目指しています。
現在提供している主な機能は以下の通りです:
興味がある方は、Fedifyのウェブサイトをご覧ください!包括的なドキュメント、デモ、チュートリアル、サンプルコードなどが用意されています:
#Fedify #TypeScript #JavaScript #ActivityPub #NodeInfo #Node #Deno #Bun #fedidev
Question for those who have followed the #Fedify tutorial: How long did it take you to follow the tutorial?
Option | Voters |
---|---|
30 minutes or shorter | 1 (33%) |
1 hour or shorter | 1 (33%) |
2 hours or shorter | 1 (33%) |
4 hours or shorter | 0 (0%) |
More than 4 hours | 0 (0%) |
Today, thanks to @ellemedit, we've added two more example projects to #Fedify!
If you're interested in Fedify and these two frameworks, take a look!