Fedify: an ActivityPub server framework
#Fedify 소개: #연합우주 (#fediverse) 상에 #ActivityPub 서버 앱을 만들기 위한 강력한 #TypeScript 라이브러리! 🚀
Fedify는 연합형 앱의 복잡함을 단순화하여 개발자가 가장 중요한 것—고유한 기능과 사용자 경험—에 집중할 수 있게 해줍니다. Fedify의 특징을 살펴볼까요? 🧵
@[email protected] · 7 following · 375 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 |
---|---|---|---|
#Fedify 소개: #연합우주 (#fediverse) 상에 #ActivityPub 서버 앱을 만들기 위한 강력한 #TypeScript 라이브러리! 🚀
Fedify는 연합형 앱의 복잡함을 단순화하여 개발자가 가장 중요한 것—고유한 기능과 사용자 경험—에 집중할 수 있게 해줍니다. Fedify의 특징을 살펴볼까요? 🧵
#Fedify offers robust logging capabilities through integration with LogTape. This feature allows you to easily debug and monitor your Fedify app!
To enable #logging, simply install the @logtape/logtape
package and configure it in your app's entry point:
import { configure, getConsoleSink } from "@logtape/logtape";
await configure({
sinks: { console: getConsoleSink() },
filters: {},
loggers: [
{ category: "your-app", sinks: ["console"], level: "debug" },
{ category: "fedify", sinks: ["console"], level: "info" },
],
});
Fedify uses hierarchical categories for fine-grained control over log output. Key categories include ["fedify", "federation", "http"]
for HTTP requests/responses and ["fedify", "federation", "inbox"]
/["fedify", "federation", "outbox"]
for incoming/outgoing activities. (There are more categories.)
With #LogTape integration, you gain valuable insights into your Fedify app's behavior, making troubleshooting and optimization much more straightforward!
As a potential #Fedify user, which of the following technologies are you familiar with?
Option | Voters |
---|---|
JavaScript | 17 (14%) |
TypeScript | 13 (11%) |
HTML & CSS | 18 (15%) |
JSX (JavaScript XML) or TSX (TypeScript XML) | 10 (8%) |
HTTP | 14 (11%) |
ActivityPub | 8 (7%) |
Node.js | 13 (11%) |
Unix shell | 12 (10%) |
SQL & relational databases | 14 (11%) |
Digital signatures | 4 (3%) |
If you read a #Fedify #tutorial, what #ActivityPub software would you like to see as an #example in the tutorial?
Option | Voters |
---|---|
Microblog (like Mastodon) | 21 (32%) |
Long-form blog (like WordPress) | 10 (15%) |
Photo blog (like Pixelfed) | 7 (11%) |
Forum (like NodeBB) | 6 (9%) |
Link aggregator (like Lemmy) | 9 (14%) |
Much simpler one! | 13 (20%) |
If you read a #Fedify #tutorial, what #ActivityPub software would you like to see as an #example in the tutorial?
Option | Voters |
---|---|
Microblog (like Mastodon) | 21 (32%) |
Long-form blog (like WordPress) | 10 (15%) |
Photo blog (like Pixelfed) | 7 (11%) |
Forum (like NodeBB) | 6 (9%) |
Link aggregator (like Lemmy) | 9 (14%) |
Much simpler one! | 13 (20%) |
A good issue to contribute to #Fedify for the first time. Anybody interested?
#Fedify, an #ActivityPub server framework, has released v0.12.0. It's a minor release in about a month, so there's quite a few changes:
fedify
command can now also be installed with npm. It can be installed with npm i -g @fedify/cli
in Node.js and bun i -g @fedify/cli
in Bun.fedify init
command to help set up a new Fedify project.ChatMessage
, Move
, Read
, Travel
, View
, TentativeAccept
, and TentativeReject
classes. (Thanks to @moreal!)hostname
, host
, and origin
properties of the Context
.It's available on JSR and npm now, and you can upgrade it using the deno add
command on Deno:
deno add @fedify/fedify@^0.12.0
Or using the bun add
command on Bun:
bun add @fedify/fedify@^0.12.0
Or using the npm add
command on Bun:
npm add @fedify/fedify@^0.12.0
I'm very excited to be successfully following our Ghost newsletter about building ActivityPub support, on Mastodon!
@[email protected] · Reply to Matthias Bohlen's post
@admin Now fixed the stable docs too!
#Fedify, an #ActivityPub server framework, has released v0.12.0. It's a minor release in about a month, so there's quite a few changes:
fedify
command can now also be installed with npm. It can be installed with npm i -g @fedify/cli
in Node.js and bun i -g @fedify/cli
in Bun.fedify init
command to help set up a new Fedify project.ChatMessage
, Move
, Read
, Travel
, View
, TentativeAccept
, and TentativeReject
classes. (Thanks to @moreal!)hostname
, host
, and origin
properties of the Context
.It's available on JSR and npm now, and you can upgrade it using the deno add
command on Deno:
deno add @fedify/fedify@^0.12.0
Or using the bun add
command on Bun:
bun add @fedify/fedify@^0.12.0
Or using the npm add
command on Bun:
npm add @fedify/fedify@^0.12.0
@[email protected] · Reply to Fedify: an ActivityPub server framework's post
The Astro integration code has been reverted. It will come back in at some point once the blockers are resolved.
Since #Fedify v0.12.0, when verifying HTTP Signatures or Object Integrity Proofs, it will cache the public keys once fetched. It is okay even if a cached key becomes outdated because a verification failure due to a cached key will invalidate the cache and force a verification retry.
This feature is available for preview in v0.12.0-dev.307+235629d5 (JSR or npm).
@[email protected] · Reply to Fedify: an ActivityPub server framework's post
Due to the details of the behavior of Astro's middleware, it looks like the next #Fedify release (v0.12.0) may not be able to ship with the #Astro integration. 😅
The fedify
command is now available on #npm! You can install it using the following command:
npm install -g @fedify/cli
Or if you use #Bun:
bun install -g @fedify/cli
@[email protected] · Reply to Matthias Bohlen's post
@admin They are fixed in the unstable docs. For now, could you please use them instead? The stable docs will be fixed in the next release. Thanks!
I wrote a laravel package to add federation support to various internal @pixelfed projects like FediDB and PubKit
I might just polish this up and ship it, so laravel devs can add federation support with a few lines of code
the fedify of php ✨
finally getting to the #fedify part of my deno-fedify experiment, first thing working is the nodeinfo support
#Fedify offers robust logging capabilities through integration with LogTape. This feature allows you to easily debug and monitor your Fedify app!
To enable #logging, simply install the @logtape/logtape
package and configure it in your app's entry point:
import { configure, getConsoleSink } from "@logtape/logtape";
await configure({
sinks: { console: getConsoleSink() },
filters: {},
loggers: [
{ category: "your-app", sinks: ["console"], level: "debug" },
{ category: "fedify", sinks: ["console"], level: "info" },
],
});
Fedify uses hierarchical categories for fine-grained control over log output. Key categories include ["fedify", "federation", "http"]
for HTTP requests/responses and ["fedify", "federation", "inbox"]
/["fedify", "federation", "outbox"]
for incoming/outgoing activities. (There are more categories.)
With #LogTape integration, you gain valuable insights into your Fedify app's behavior, making troubleshooting and optimization much more straightforward!
@[email protected] · Reply to 洪 民憙 (Hong Minhee)'s post
#Fedify's security policy is just written!
I want to create good first issues for @fedify, but I don't have a good idea of appropriate tasks for first-time contributors. Any ideas?
@[email protected] · Reply to Fedify: an ActivityPub server framework's post
Ready to simplify your #fedidev? Check out #Fedify!
Join us in building a more connected and decentralized web! 🌐 #ActivityPub
@[email protected] · Reply to Fedify: an ActivityPub server framework's post
#Fedify also focuses on the practical side of #ActivityPub. Its docs includes guidance on using the vocabulary API in line with de facto norms set by popular implementations like #Mastodon. Build more interoperable apps with less headache! 🤝
@[email protected] · Reply to Fedify: an ActivityPub server framework's post
Debugging #ActivityPub interactions can be tricky, but #Fedify's got your back! It includes a CLI toolchain for testing and debugging, making development and troubleshooting a breeze. Spend less time scratching your head and more time building awesome features! 🔍
@[email protected] · Reply to Fedify: an ActivityPub server framework's post
Out of the box, #Fedify comes packed with features crucial for #fediverse development:
@[email protected] · Reply to Fedify: an ActivityPub server framework's post
Flexibility is key! #Fedify isn't a full-stack solution—it's designed to work alongside your favorite web frameworks. Whether you're using #Astro, #Hono, #Fresh, or others, Fedify has got you covered with easy integration options. Build your #fediverse app, your way! 🛠️
@[email protected] · Reply to Fedify: an ActivityPub server framework's post
One of #Fedify's strongest features is its type-safe vocabulary objects. These represent the Activity Vocabulary and vendor-specific extensions, ensuring robust and safe code when working with ActivityPub objects and activities. Say goodbye to runtime errors and hello to confident coding! 💪🏼
Introducing #Fedify: A powerful #TypeScript library for building #ActivityPub server apps in the #fediverse! 🚀
Fedify aims to simplify the complex world of federated apps, allowing developers to focus on what matters most—their unique features and user experience. Let's explore what makes Fedify stand out! 🧵
In #Fedify's next release, v0.12.0, we'll be adding support for integration with Astro, a web framework for content-driven websites.