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

洪 民憙 (Hong Minhee) :nonbinary:

@hongminhee@hollo.social

1,107 following1,897 followers

An intersectionalist, feminist, and socialist living in Seoul (UTC+09:00). @tokolovesme's spouse. Who's behind @fedify, @hollo, and @botkit. Write some free software in , , , & . They/them.

서울에 사는 交叉女性主義者이자 社會主義者. 金剛兔(@tokolovesme)의 配偶者. @fedify, @hollo, @botkit 메인테이너. , , , 等으로 自由 소프트웨어 만듦.

()

Pinned

@hongminhee@hollo.social

Hello! I'm Hong Minhee (洪 民憙), an open source software engineer in my late 30s, living in Seoul, Korea. I'm bisexual and non-binary (they/them), and an enthusiastic advocate of free/open source software and the fediverse.

I work full-time on @fedify, an ActivityPub server framework in TypeScript, funded by @sovtechfund. I'm also the creator of @hollo, a single-user ActivityPub microblog; @botkit, an ActivityPub bot framework; Hackers' Pub, a fediverse platform for software developers; and LogTape, a logging library for JavaScript and TypeScript.

I have a long interest in East Asian languages (CJK) and Unicode. I post mostly in English here, though occasionally in Japanese or in mixed-script Korean (國漢文混用體), a traditional writing style that interleaves Chinese characters with the native Korean alphabet. Wanting to write in that style was actually one of the reasons I joined the fediverse. Feel free to talk to me in English, Korean, Japanese, or even Literary Chinese!

en.wikipedia.org

Korean mixed script - Wikipedia

Pinned

はじめまして!ソウル在住の30代後半のオープンソースソフトウェアエンジニア、洪 民憙ホン・ミンヒと申します。バイセクシュアル(bisexual)・ノンバイナリー(non-binary)で、自由・オープンソースソフトウェア(F/OSS)とフェディバース(fediverse)の熱烈な支持者です。

STF(@sovtechfund)の支援を受け、TypeScript用ActivityPubサーバーフレームワーク「@fedify」の開発に専念しています。他にも、おひとり様向けのActivityPubマイクロブログ「@hollo」、ActivityPubボットフレームワーク「@botkit」、ソフトウェア開発者向けフェディバースプラットフォームHackers' Pub、JavaScript・TypeScript用ロギングライブラリLogTapeなどの制作者でもあります。

東アジア言語(いわゆるCJK)とUnicodeにも興味があります。このアカウントでは主に英語で投稿していますが、時々日本語や国漢文混用体(漢字ハングル混じり文)の韓国語でも書いています。実はこの文体で書きたくてフェディバースを始めた、という経緯もあります。日本語、英語、韓国語、漢文でも気軽に話しかけてください!

speakerdeck.com

国漢文混用体からHolloまで

本発表では、韓国語の「国漢文混用体」(漢字ハングル混じり文)を自分のフェディバース投稿に実装したいという小さな目標から始まった旅路を共有します。 この目標を達成するために、ActivityPubのJSON-LDの複雑さやHTTP Signatures、WebFingerなどの仕様を理解する必要性に…

Pinned

安寧(안녕)하세요! 저는 서울에 살고 있는 30() 後半(후반)의 오픈 소스 소프트웨어 엔지니어 洪民憙(홍민희)입니다. 兩性愛者(양성애자)(bisexual)이자 논바이너리(non-binary)이며, 自由(자유)·오픈 소스 소프트웨어(F/OSS)와 聯合宇宙(연합우주)(fediverse)의 熱烈(열렬)支持者(지지자)이기도 합니다.

STF(@sovtechfund)의 支援(지원)을 받아 TypeScript() ActivityPub 서버 프레임워크 @fedify 開發(개발)專業(전업)으로 ()하고 있습니다. 그 ()에도 싱글 유저() ActivityPub 마이크로블로그 @hollo, ActivityPub 봇 프레임워크 @botkit, 소프트웨어 開發者(개발자)를 위한 聯合宇宙(연합우주) 플랫폼 Hackers' Pub, JavaScript·TypeScript() 로깅 라이브러리 LogTape ()製作者(제작자)이기도 합니다.

()아시아 言語(언어)(이른바 CJK)와 Unicode에도 關心(관심)이 많습니다. 이 計定(계정)에서는 ()英語(영어)로 포스팅하지만, 때때로 日本語(일본어)國漢文混用體(국한문 혼용체) 韓國語(한국어)로도 씁니다. 聯合宇宙(연합우주)에 오게 된 動機(동기) () 하나가 바로 國漢文混用體(국한문 혼용체)로 글을 쓰고 싶었기 때문이기도 하고요. 韓國語(한국어), 英語(영어), 日本語(일본어), 아니면 漢文(한문)으로도 말을 걸어주세요!

logtape.org

LogTape

Unobtrusive logging library with zero dependencies—library-first design for Deno, Node.js, Bun, browsers, and edge functions

@femiwiki@hackers.pub

안녕하세요, 페미위키 개발팀입니다. 개발팀 활성화를 위해 이리저리 둘러보다 해커스펍에 대해 알게 되었습니다. 여건이 되면 페미위키 개발에 대해서 얘기할 수 있는 기회를 만들어보려 합니다!

더불어 페미위키 개발팀에서 오픈소스 컨트리뷰터 & 개발팀을 모집합니다! 페미니스트시라면 정체성 불문, 거주국 불문하고 모시고 있습니다. 함께 페미니즘 정보집합체 만들어가요!

페미위키 오픈소스 컨트리뷰터 & 개발팀 모집
ALT text

페미위키 오픈소스 컨트리뷰터 & 개발팀 모집

1. 우대 사항:

페미위키 편집 경험이 한 번 이상 있으신 분
AWS 경험이 필요하신 분
사실상 표준이 아닌 기술/서비스에 거부감이 덜 하신 분 (예: Vue.js, Less.js, GitLab, Nomad, PHP)
기억 나는 리눅스 명령어가 세 개 이상인 분
ARM 서버 운영 경험이 있으신 분
JS를 TS로 변환하면 개운하신 분
GitHub Actions 사용 경험이 있으신 분
PHP 문법을 기억하시는 분
git rebase를 쳐본 적 있으신 분
오픈소스를 사랑하시는 분
ALT text

1. 우대 사항: 페미위키 편집 경험이 한 번 이상 있으신 분 AWS 경험이 필요하신 분 사실상 표준이 아닌 기술/서비스에 거부감이 덜 하신 분 (예: Vue.js, Less.js, GitLab, Nomad, PHP) 기억 나는 리눅스 명령어가 세 개 이상인 분 ARM 서버 운영 경험이 있으신 분 JS를 TS로 변환하면 개운하신 분 GitHub Actions 사용 경험이 있으신 분 PHP 문법을 기억하시는 분 git rebase를 쳐본 적 있으신 분 오픈소스를 사랑하시는 분

2. 업무 내용

신규 프로젝트
* 레벨 제도
* 프로필 페이지
* 게이미피케이션 / 도전과제
* HA 구성

상시 업무
* 서비스 모니터링
* 버그 수정
* 기술 지원
* 소프트웨어 업그레이드
ALT text

2. 업무 내용 신규 프로젝트 * 레벨 제도 * 프로필 페이지 * 게이미피케이션 / 도전과제 * HA 구성 상시 업무 * 서비스 모니터링 * 버그 수정 * 기술 지원 * 소프트웨어 업그레이드

관심 있다면 망설임 없이 https://github.com/femiwiki 접속!
ALT text

관심 있다면 망설임 없이 https://github.com/femiwiki 접속!

@samvie@chaos.social

Great demo of @encyclia by @julian

Day 3 of starts strong with a great tool for the academic sphere👏

Making available for via @fedify

Open science communication is very relevant for the future development of the 🚀

Julian presenting Encyclia at Fediforum. You see a screenshare and Julians camera.
ALT text

Julian presenting Encyclia at Fediforum. You see a screenshare and Julians camera.

Julians page of Encyclia which he Demos at FediForum
ALT text

Julians page of Encyclia which he Demos at FediForum

We're excited to announce the release of 1.6.1, which marks the beginning of the 1.6 series following the retraction of version 1.6.0. This release introduces significant new capabilities that expand Fedify's deployment options and enhance security compatibility across the .

🌐 Cloudflare Workers support

Fedify 1.6 introduces first-class support for Cloudflare Workers, enabling deployment of applications at the edge.

New components

Key features

  • Seamless integration with 's serverless runtime
  • Automatic handling of queue message processing through Workers' queue() method
  • Support for Node.js compatibility flag required for Fedify's cryptographic operations
  • Manual queue processing via Federation.processQueuedTask() method

For a complete working example, see the Cloudflare Workers example in the Fedify repository.

🏗️ Federation builder pattern

Fedify 1.6 introduces the FederationBuilder class and createFederationBuilder() function to support deferred federation instantiation. This pattern provides several benefits:

  • Deferred instantiation: Set up dispatchers and listeners before creating the federation object
  • Better code organization: Avoid circular dependencies and improve project structure
  • Cloudflare compatibility: Accommodates binding-based architectures where resources are passed as arguments rather than globals
  • Modular setup: Build complex federations piece by piece before instantiation

The builder pattern is particularly useful for large applications and environments like Cloudflare Workers where configuration data is only available at runtime.

🔐 HTTP Message Signatures (RFC 9421)

Fedify 1.6 implements the official HTTP Message Signatures standard (RFC 9421) specification, the final revision of the HTTP Signatures specification.

Double-knocking mechanism

To ensure maximum compatibility across the fediverse, Fedify 1.6 introduces an intelligent double-knocking mechanism:

  1. Primary attempt: RFC 9421 (HTTP Message Signatures) for modern implementations
  2. Fallback: Draft cavage version for legacy compatibility
  3. Adaptive caching: The system remembers which version each server supports to optimize future requests

This approach ensures seamless communication with both modern and legacy ActivityPub implementations while positioning Fedify at the forefront of security standards.

Interoperability testing

The RFC 9421 implementation has been thoroughly tested for interoperability with existing ActivityPub implementations that support RFC 9421 signature verification:

  • Mitra 4.4.0: Successfully verified Fedify-generated RFC 9421 signatures
  • Mastodon 4.4.0 development version: Tested RFC 9421 signature verification against Fedify's implementation (refer to Mastodon PR #34814, though Mastodon 4.4.0 has not yet been released)

These tests confirm that other ActivityPub implementations can successfully verify RFC 9421 signatures generated by Fedify, ensuring proper federation as the ecosystem gradually adopts the official specification. While these implementations currently support verification of RFC 9421 signatures, they do not yet generate RFC 9421 signatures themselves—making Fedify one of the first ActivityPub implementations to support both generation and verification of the modern standard.

🔍 WebFinger enhancements

Dedicated WebFinger lookup

The new Context.lookupWebFinger() method provides direct access to WebFinger data, offering developers more granular control over account discovery and resource resolution beyond the higher-level Context.lookupObject() method.

🛠 Context API improvements

Context data replacement

The new Context.clone() method enables dynamic context data replacement, providing greater flexibility in request processing and data flow management. This is particularly useful for middleware implementations and complex request routing scenarios.

🚀 Migration considerations

Backward compatibility

Fedify 1.6 maintains full backward compatibility with existing applications. The new HTTP Message Signatures and double-knocking mechanisms work transparently without requiring any code changes.

Node.js version requirement

Important: Fedify 1.6 requires Node.js 22.0.0 or later for Node.js environments. This change does not affect applications using Deno or Bun runtimes. If you're currently using Node.js, please ensure your environment meets this requirement before upgrading.

New deployment options

For new deployments, consider leveraging Cloudflare Workers support for:

  • Global edge deployment with low latency
  • Serverless scaling and automatic resource management
  • Integration with Cloudflare's ecosystem of services

🎯 Looking forward

Fedify 1.6 represents a significant expansion of deployment possibilities while maintaining the framework's commitment to broad compatibility across the fediverse. The addition of Cloudflare Workers support opens new architectural patterns for federated applications, while the RFC 9421 implementation ensures Fedify stays current with emerging ActivityPub security standards.


For detailed migration guides, API documentation, and examples, please visit the Fedify documentation. Join our community on Matrix or Discord for support and discussions.

discord.com

Join the Fedify/Hollo Discord Server!

Check out the Fedify/Hollo community on Discord - hang out with 95 other members and enjoy free voice and text chat.

@femiwiki@planet.moe

[페미위키 6월 운영팀 모집]
운영팀은 페미위키를 어떻게 키워낼까 고민하는 개인들의 모임이며 여성혐오자가 아니라면 추가 조건 없이 함께할 수 있습니다.
운영팀 연락에 사용할 구글 지메일로 admin@femiwiki.com으로 지원 동기를 적어 보내주세요. (제목 "페미위키 운영팀 지원")

만화 캐릭터 검색할 때 성희롱을 봐야 할까?
페미위키는 만화, 게임, 웹툰, 애니메이션 등 취미 정보를 다룰 때 혐오를 담지 않도록 주의합니다
ALT text

만화 캐릭터 검색할 때 성희롱을 봐야 할까? 페미위키는 만화, 게임, 웹툰, 애니메이션 등 취미 정보를 다룰 때 혐오를 담지 않도록 주의합니다

@hongminhee@hollo.social
@hollo@hollo.social

What client apps do you use with ?

  • Elk8 (17%)
  • Phanpy15 (31%)
  • Moshidon11 (23%)
  • Subway Tooter4 (8%)
  • Mona2 (4%)
  • Nightfox DAWN7 (15%)
  • Tusker1 (2%)
  • Woolly0 (0%)
@hongminhee@hollo.social

どうやらメインで使ってるクライアントアプリがPhanpyだから、Holloのテストする時もついPhanpyばかりでやってたけど、これからは他のクライアントアプリでもテストしなきゃな。特にリリース前はQAプロセスとして、必ずいろんなクライアントでテストしないと。

@hollo@hollo.social

🚨 Known Issue: Elk (@elk) login may fail on Hollo instances upgraded from 0.5.x to 0.6.x with 401 Unauthorized errors. Fresh 0.6.x installs work fine. Other clients (Phanpy, Moshidon) are unaffected.

We're investigating: https://github.com/fedify-dev/hollo/issues/167

Workaround: Use alternative clients like Phanpy (@phanpy) for now.

github.com

Elk login fails with `401 Unauthorized` on upgraded instances · Issue #167 · fedify-dev/hollo

Description Elk client authentication fails on Hollo instances that were upgraded from 0.5.x to 0.6.x, while working correctly on fresh 0.6.x installations. Observed Behavior Fresh 0.6.x installs: ...

@hongminhee@hollo.social

Fedify 1.6 has been released, supporting Cloudflare Workers deployment and RFC 9421 (HTTP Message Signatures) signing and verification!

hollo.social

We're excited to announce the …

We're excited to announce the release of #Fedify 1.6.1, which marks the beginning of the 1.6 series following the retraction of version 1.6.0. This release introduces significant new capabilities that expand Fedify's deployment options and enhance security compatibility across the #fediverse. ## 🌐 Cloudflare Workers support Fedify 1.6 introduces first-class support for [Cloudflare Workers], enabling #serverless deployment of #ActivityPub applications at the edge. ### New components - **[`WorkersKvStore`]**: A key–value store implementation using [Cloudflare's KV API] for persistent storage in Workers environments - **[`WorkersMessageQueue`]**: A message queue implementation leveraging [Cloudflare Queues] for reliable message processing [`WorkersKvStore`]: https://fedify.dev/manual/kv#workerskvstore-cloudflare-workers-only [`WorkersMessageQueue`]: https://fedify.dev/manual/mq#workersmessagequeue-cloudflare-workers-only ### Key features - Seamless integration with #Cloudflare's serverless runtime - Automatic handling of queue message processing through Workers' `queue()` method - Support for [Node.js compatibility flag] required for Fedify's cryptographic operations - Manual queue processing via `Federation.processQueuedTask()` method For a complete working example, see the [Cloudflare Workers example] in the Fedify repository. ## 🏗️ Federation builder pattern Fedify 1.6 introduces the `FederationBuilder` class and `createFederationBuilder()` function to support [deferred federation instantiation]. This pattern provides several benefits: - **Deferred instantiation**: Set up dispatchers and listeners before creating the federation object - **Better code organization**: Avoid circular dependencies and improve project structure - **Cloudflare #Workers compatibility**: Accommodates binding-based architectures where resources are passed as arguments rather than globals - **Modular setup**: Build complex federations piece by piece before instantiation The builder pattern is particularly useful for large applications and environments like Cloudflare Workers where configuration data is only available at runtime. [deferred federation instantiation]: https://fedify.dev/manual/federation#builder-pattern-for-structuring ## 🔐 HTTP Message Signatures (RFC 9421) Fedify 1.6 implements the official [HTTP Message Signatures standard (RFC 9421)] specification, the final revision of the HTTP Signatures specification. ### Double-knocking mechanism To ensure maximum compatibility across the fediverse, Fedify 1.6 introduces an intelligent double-knocking mechanism: 1. **Primary attempt**: [RFC 9421] (HTTP Message Signatures) for modern implementations 2. **Fallback**: [Draft cavage version] for legacy compatibility 3. **Adaptive caching**: The system remembers which version each server supports to optimize future requests This approach ensures seamless communication with both modern and legacy ActivityPub implementations while positioning Fedify at the forefront of security standards. ### Interoperability testing The RFC 9421 implementation has been thoroughly tested for interoperability with existing ActivityPub implementations that support RFC 9421 signature verification: - **Mitra 4.4.0**: Successfully verified Fedify-generated RFC 9421 signatures - **Mastodon 4.4.0 development version**: Tested RFC 9421 signature verification against Fedify's implementation (refer to [Mastodon PR #34814], though Mastodon 4.4.0 has not yet been released) These tests confirm that other ActivityPub implementations can successfully verify RFC 9421 signatures generated by Fedify, ensuring proper federation as the ecosystem gradually adopts the official specification. While these implementations currently support verification of RFC 9421 signatures, they do not yet generate RFC 9421 signatures themselves—making Fedify one of the first ActivityPub implementations to support both generation and verification of the modern standard. ## 🔍 WebFinger enhancements ### Dedicated WebFinger lookup The new [`Context.lookupWebFinger()`] method provides direct access to [WebFinger] data, offering developers more granular control over account discovery and resource resolution beyond the higher-level [`Context.lookupObject()`] method. [`Context.lookupWebFinger()`]: https://fedify.dev/manual/context#webfinger-lookups [`Context.lookupObject()`]: https://fedify.dev/manual/context#looking-up-remote-objects ## 🛠 Context API improvements ### Context data replacement The new [`Context.clone()`] method enables dynamic context data replacement, providing greater flexibility in request processing and data flow management. This is particularly useful for middleware implementations and complex request routing scenarios. [`Context.clone()`]: https://fedify.dev/manual/context#replacing-the-context-data ## 🚀 Migration considerations ### Backward compatibility Fedify 1.6 maintains full backward compatibility with existing applications. The new HTTP Message Signatures and double-knocking mechanisms work transparently without requiring any code changes. ### Node.js version requirement **Important**: Fedify 1.6 requires Node.js 22.0.0 or later for Node.js environments. This change does not affect applications using Deno or Bun runtimes. If you're currently using Node.js, please ensure your environment meets this requirement before upgrading. ### New deployment options For new deployments, consider leveraging Cloudflare Workers support for: - Global edge deployment with low latency - Serverless scaling and automatic resource management - Integration with Cloudflare's ecosystem of services ## 🎯 Looking forward Fedify 1.6 represents a significant expansion of deployment possibilities while maintaining the framework's commitment to broad compatibility across the fediverse. The addition of Cloudflare Workers support opens new architectural patterns for federated applications, while the RFC 9421 implementation ensures Fedify stays current with emerging ActivityPub security standards. --- For detailed migration guides, API documentation, and examples, please visit the [Fedify documentation]. Join our community on [Matrix] or [Discord] for support and discussions. #fedidev #RFC9421 #HTTPSignatures #HTTPMessageSignatures #CloudflareWorkers [Cloudflare Workers]: https://workers.cloudflare.com/ [Cloudflare Workers example]: https://github.com/fedify-dev/fedify/tree/1.6-maintenance/examples/cloudflare-workers [Cloudflare's KV API]: https://developers.cloudflare.com/kv/ [Cloudflare Queues]: https://developers.cloudflare.com/queues/ [Node.js compatibility flag]: https://developers.cloudflare.com/workers/runtime-apis/nodejs/ [HTTP Message Signatures standard (RFC 9421)]: https://www.rfc-editor.org/rfc/rfc9421 [RFC 9421]: https://www.rfc-editor.org/rfc/rfc9421 [Draft cavage version]: https://datatracker.ietf.org/doc/html/draft-cavage-http-signatures-12 [Mastodon PR #34814]: https://github.com/mastodon/mastodon/pull/34814 [WebFinger]: https://datatracker.ietf.org/doc/html/rfc7033 [Fedify documentation]: https://fedify.dev/ [Matrix]: https://matrix.to/#/#fedify:matrix.org [Discord]: https://discord.gg/bhtwpzURwd

We're excited to announce the release of 1.6.1, which marks the beginning of the 1.6 series following the retraction of version 1.6.0. This release introduces significant new capabilities that expand Fedify's deployment options and enhance security compatibility across the .

🌐 Cloudflare Workers support

Fedify 1.6 introduces first-class support for Cloudflare Workers, enabling deployment of applications at the edge.

New components

Key features

  • Seamless integration with 's serverless runtime
  • Automatic handling of queue message processing through Workers' queue() method
  • Support for Node.js compatibility flag required for Fedify's cryptographic operations
  • Manual queue processing via Federation.processQueuedTask() method

For a complete working example, see the Cloudflare Workers example in the Fedify repository.

🏗️ Federation builder pattern

Fedify 1.6 introduces the FederationBuilder class and createFederationBuilder() function to support deferred federation instantiation. This pattern provides several benefits:

  • Deferred instantiation: Set up dispatchers and listeners before creating the federation object
  • Better code organization: Avoid circular dependencies and improve project structure
  • Cloudflare compatibility: Accommodates binding-based architectures where resources are passed as arguments rather than globals
  • Modular setup: Build complex federations piece by piece before instantiation

The builder pattern is particularly useful for large applications and environments like Cloudflare Workers where configuration data is only available at runtime.

🔐 HTTP Message Signatures (RFC 9421)

Fedify 1.6 implements the official HTTP Message Signatures standard (RFC 9421) specification, the final revision of the HTTP Signatures specification.

Double-knocking mechanism

To ensure maximum compatibility across the fediverse, Fedify 1.6 introduces an intelligent double-knocking mechanism:

  1. Primary attempt: RFC 9421 (HTTP Message Signatures) for modern implementations
  2. Fallback: Draft cavage version for legacy compatibility
  3. Adaptive caching: The system remembers which version each server supports to optimize future requests

This approach ensures seamless communication with both modern and legacy ActivityPub implementations while positioning Fedify at the forefront of security standards.

Interoperability testing

The RFC 9421 implementation has been thoroughly tested for interoperability with existing ActivityPub implementations that support RFC 9421 signature verification:

  • Mitra 4.4.0: Successfully verified Fedify-generated RFC 9421 signatures
  • Mastodon 4.4.0 development version: Tested RFC 9421 signature verification against Fedify's implementation (refer to Mastodon PR #34814, though Mastodon 4.4.0 has not yet been released)

These tests confirm that other ActivityPub implementations can successfully verify RFC 9421 signatures generated by Fedify, ensuring proper federation as the ecosystem gradually adopts the official specification. While these implementations currently support verification of RFC 9421 signatures, they do not yet generate RFC 9421 signatures themselves—making Fedify one of the first ActivityPub implementations to support both generation and verification of the modern standard.

🔍 WebFinger enhancements

Dedicated WebFinger lookup

The new Context.lookupWebFinger() method provides direct access to WebFinger data, offering developers more granular control over account discovery and resource resolution beyond the higher-level Context.lookupObject() method.

🛠 Context API improvements

Context data replacement

The new Context.clone() method enables dynamic context data replacement, providing greater flexibility in request processing and data flow management. This is particularly useful for middleware implementations and complex request routing scenarios.

🚀 Migration considerations

Backward compatibility

Fedify 1.6 maintains full backward compatibility with existing applications. The new HTTP Message Signatures and double-knocking mechanisms work transparently without requiring any code changes.

Node.js version requirement

Important: Fedify 1.6 requires Node.js 22.0.0 or later for Node.js environments. This change does not affect applications using Deno or Bun runtimes. If you're currently using Node.js, please ensure your environment meets this requirement before upgrading.

New deployment options

For new deployments, consider leveraging Cloudflare Workers support for:

  • Global edge deployment with low latency
  • Serverless scaling and automatic resource management
  • Integration with Cloudflare's ecosystem of services

🎯 Looking forward

Fedify 1.6 represents a significant expansion of deployment possibilities while maintaining the framework's commitment to broad compatibility across the fediverse. The addition of Cloudflare Workers support opens new architectural patterns for federated applications, while the RFC 9421 implementation ensures Fedify stays current with emerging ActivityPub security standards.


For detailed migration guides, API documentation, and examples, please visit the Fedify documentation. Join our community on Matrix or Discord for support and discussions.

discord.com

Join the Fedify/Hollo Discord Server!

Check out the Fedify/Hollo community on Discord - hang out with 95 other members and enjoy free voice and text chat.

@hongminhee@hollo.social

어제 잠들기 ()에 ActivityPub으로 만들 만한 좋은 서비스 아이디어가 떠올랐었는데, 졸려서 메모 안 하고 잤더니 ()혀 안 떠오른다…

@hongminhee@hackers.pub

Cloudflare Workers 배포와 RFC 9421 (HTTP Message Signatures) 서명 및 검증을 지원하는 Fedify 1.6이 릴리스되었습니다!

hollo.social

We're excited to announce the …

We're excited to announce the release of #Fedify 1.6.1, which marks the beginning of the 1.6 series following the retraction of version 1.6.0. This release introduces significant new capabilities that expand Fedify's deployment options and enhance security compatibility across the #fediverse. ## 🌐 Cloudflare Workers support Fedify 1.6 introduces first-class support for [Cloudflare Workers], enabling #serverless deployment of #ActivityPub applications at the edge. ### New components - **[`WorkersKvStore`]**: A key–value store implementation using [Cloudflare's KV API] for persistent storage in Workers environments - **[`WorkersMessageQueue`]**: A message queue implementation leveraging [Cloudflare Queues] for reliable message processing [`WorkersKvStore`]: https://fedify.dev/manual/kv#workerskvstore-cloudflare-workers-only [`WorkersMessageQueue`]: https://fedify.dev/manual/mq#workersmessagequeue-cloudflare-workers-only ### Key features - Seamless integration with #Cloudflare's serverless runtime - Automatic handling of queue message processing through Workers' `queue()` method - Support for [Node.js compatibility flag] required for Fedify's cryptographic operations - Manual queue processing via `Federation.processQueuedTask()` method For a complete working example, see the [Cloudflare Workers example] in the Fedify repository. ## 🏗️ Federation builder pattern Fedify 1.6 introduces the `FederationBuilder` class and `createFederationBuilder()` function to support [deferred federation instantiation]. This pattern provides several benefits: - **Deferred instantiation**: Set up dispatchers and listeners before creating the federation object - **Better code organization**: Avoid circular dependencies and improve project structure - **Cloudflare #Workers compatibility**: Accommodates binding-based architectures where resources are passed as arguments rather than globals - **Modular setup**: Build complex federations piece by piece before instantiation The builder pattern is particularly useful for large applications and environments like Cloudflare Workers where configuration data is only available at runtime. [deferred federation instantiation]: https://fedify.dev/manual/federation#builder-pattern-for-structuring ## 🔐 HTTP Message Signatures (RFC 9421) Fedify 1.6 implements the official [HTTP Message Signatures standard (RFC 9421)] specification, the final revision of the HTTP Signatures specification. ### Double-knocking mechanism To ensure maximum compatibility across the fediverse, Fedify 1.6 introduces an intelligent double-knocking mechanism: 1. **Primary attempt**: [RFC 9421] (HTTP Message Signatures) for modern implementations 2. **Fallback**: [Draft cavage version] for legacy compatibility 3. **Adaptive caching**: The system remembers which version each server supports to optimize future requests This approach ensures seamless communication with both modern and legacy ActivityPub implementations while positioning Fedify at the forefront of security standards. ### Interoperability testing The RFC 9421 implementation has been thoroughly tested for interoperability with existing ActivityPub implementations that support RFC 9421 signature verification: - **Mitra 4.4.0**: Successfully verified Fedify-generated RFC 9421 signatures - **Mastodon 4.4.0 development version**: Tested RFC 9421 signature verification against Fedify's implementation (refer to [Mastodon PR #34814], though Mastodon 4.4.0 has not yet been released) These tests confirm that other ActivityPub implementations can successfully verify RFC 9421 signatures generated by Fedify, ensuring proper federation as the ecosystem gradually adopts the official specification. While these implementations currently support verification of RFC 9421 signatures, they do not yet generate RFC 9421 signatures themselves—making Fedify one of the first ActivityPub implementations to support both generation and verification of the modern standard. ## 🔍 WebFinger enhancements ### Dedicated WebFinger lookup The new [`Context.lookupWebFinger()`] method provides direct access to [WebFinger] data, offering developers more granular control over account discovery and resource resolution beyond the higher-level [`Context.lookupObject()`] method. [`Context.lookupWebFinger()`]: https://fedify.dev/manual/context#webfinger-lookups [`Context.lookupObject()`]: https://fedify.dev/manual/context#looking-up-remote-objects ## 🛠 Context API improvements ### Context data replacement The new [`Context.clone()`] method enables dynamic context data replacement, providing greater flexibility in request processing and data flow management. This is particularly useful for middleware implementations and complex request routing scenarios. [`Context.clone()`]: https://fedify.dev/manual/context#replacing-the-context-data ## 🚀 Migration considerations ### Backward compatibility Fedify 1.6 maintains full backward compatibility with existing applications. The new HTTP Message Signatures and double-knocking mechanisms work transparently without requiring any code changes. ### Node.js version requirement **Important**: Fedify 1.6 requires Node.js 22.0.0 or later for Node.js environments. This change does not affect applications using Deno or Bun runtimes. If you're currently using Node.js, please ensure your environment meets this requirement before upgrading. ### New deployment options For new deployments, consider leveraging Cloudflare Workers support for: - Global edge deployment with low latency - Serverless scaling and automatic resource management - Integration with Cloudflare's ecosystem of services ## 🎯 Looking forward Fedify 1.6 represents a significant expansion of deployment possibilities while maintaining the framework's commitment to broad compatibility across the fediverse. The addition of Cloudflare Workers support opens new architectural patterns for federated applications, while the RFC 9421 implementation ensures Fedify stays current with emerging ActivityPub security standards. --- For detailed migration guides, API documentation, and examples, please visit the [Fedify documentation]. Join our community on [Matrix] or [Discord] for support and discussions. #fedidev #RFC9421 #HTTPSignatures #HTTPMessageSignatures #CloudflareWorkers [Cloudflare Workers]: https://workers.cloudflare.com/ [Cloudflare Workers example]: https://github.com/fedify-dev/fedify/tree/1.6-maintenance/examples/cloudflare-workers [Cloudflare's KV API]: https://developers.cloudflare.com/kv/ [Cloudflare Queues]: https://developers.cloudflare.com/queues/ [Node.js compatibility flag]: https://developers.cloudflare.com/workers/runtime-apis/nodejs/ [HTTP Message Signatures standard (RFC 9421)]: https://www.rfc-editor.org/rfc/rfc9421 [RFC 9421]: https://www.rfc-editor.org/rfc/rfc9421 [Draft cavage version]: https://datatracker.ietf.org/doc/html/draft-cavage-http-signatures-12 [Mastodon PR #34814]: https://github.com/mastodon/mastodon/pull/34814 [WebFinger]: https://datatracker.ietf.org/doc/html/rfc7033 [Fedify documentation]: https://fedify.dev/ [Matrix]: https://matrix.to/#/#fedify:matrix.org [Discord]: https://discord.gg/bhtwpzURwd

We're excited to announce the release of 1.6.1, which marks the beginning of the 1.6 series following the retraction of version 1.6.0. This release introduces significant new capabilities that expand Fedify's deployment options and enhance security compatibility across the .

🌐 Cloudflare Workers support

Fedify 1.6 introduces first-class support for Cloudflare Workers, enabling deployment of applications at the edge.

New components

Key features

  • Seamless integration with 's serverless runtime
  • Automatic handling of queue message processing through Workers' queue() method
  • Support for Node.js compatibility flag required for Fedify's cryptographic operations
  • Manual queue processing via Federation.processQueuedTask() method

For a complete working example, see the Cloudflare Workers example in the Fedify repository.

🏗️ Federation builder pattern

Fedify 1.6 introduces the FederationBuilder class and createFederationBuilder() function to support deferred federation instantiation. This pattern provides several benefits:

  • Deferred instantiation: Set up dispatchers and listeners before creating the federation object
  • Better code organization: Avoid circular dependencies and improve project structure
  • Cloudflare compatibility: Accommodates binding-based architectures where resources are passed as arguments rather than globals
  • Modular setup: Build complex federations piece by piece before instantiation

The builder pattern is particularly useful for large applications and environments like Cloudflare Workers where configuration data is only available at runtime.

🔐 HTTP Message Signatures (RFC 9421)

Fedify 1.6 implements the official HTTP Message Signatures standard (RFC 9421) specification, the final revision of the HTTP Signatures specification.

Double-knocking mechanism

To ensure maximum compatibility across the fediverse, Fedify 1.6 introduces an intelligent double-knocking mechanism:

  1. Primary attempt: RFC 9421 (HTTP Message Signatures) for modern implementations
  2. Fallback: Draft cavage version for legacy compatibility
  3. Adaptive caching: The system remembers which version each server supports to optimize future requests

This approach ensures seamless communication with both modern and legacy ActivityPub implementations while positioning Fedify at the forefront of security standards.

Interoperability testing

The RFC 9421 implementation has been thoroughly tested for interoperability with existing ActivityPub implementations that support RFC 9421 signature verification:

  • Mitra 4.4.0: Successfully verified Fedify-generated RFC 9421 signatures
  • Mastodon 4.4.0 development version: Tested RFC 9421 signature verification against Fedify's implementation (refer to Mastodon PR #34814, though Mastodon 4.4.0 has not yet been released)

These tests confirm that other ActivityPub implementations can successfully verify RFC 9421 signatures generated by Fedify, ensuring proper federation as the ecosystem gradually adopts the official specification. While these implementations currently support verification of RFC 9421 signatures, they do not yet generate RFC 9421 signatures themselves—making Fedify one of the first ActivityPub implementations to support both generation and verification of the modern standard.

🔍 WebFinger enhancements

Dedicated WebFinger lookup

The new Context.lookupWebFinger() method provides direct access to WebFinger data, offering developers more granular control over account discovery and resource resolution beyond the higher-level Context.lookupObject() method.

🛠 Context API improvements

Context data replacement

The new Context.clone() method enables dynamic context data replacement, providing greater flexibility in request processing and data flow management. This is particularly useful for middleware implementations and complex request routing scenarios.

🚀 Migration considerations

Backward compatibility

Fedify 1.6 maintains full backward compatibility with existing applications. The new HTTP Message Signatures and double-knocking mechanisms work transparently without requiring any code changes.

Node.js version requirement

Important: Fedify 1.6 requires Node.js 22.0.0 or later for Node.js environments. This change does not affect applications using Deno or Bun runtimes. If you're currently using Node.js, please ensure your environment meets this requirement before upgrading.

New deployment options

For new deployments, consider leveraging Cloudflare Workers support for:

  • Global edge deployment with low latency
  • Serverless scaling and automatic resource management
  • Integration with Cloudflare's ecosystem of services

🎯 Looking forward

Fedify 1.6 represents a significant expansion of deployment possibilities while maintaining the framework's commitment to broad compatibility across the fediverse. The addition of Cloudflare Workers support opens new architectural patterns for federated applications, while the RFC 9421 implementation ensures Fedify stays current with emerging ActivityPub security standards.


For detailed migration guides, API documentation, and examples, please visit the Fedify documentation. Join our community on Matrix or Discord for support and discussions.

discord.com

Join the Fedify/Hollo Discord Server!

Check out the Fedify/Hollo community on Discord - hang out with 95 other members and enjoy free voice and text chat.

@AmaseCocoa@s.amase.cc

1.6でサポートされるってことはfedify inboxでRFCテストできるようになるのか​:ablobcatpnd_oooo:

@hongminhee@hollo.social

오늘 點心(점심)은 풀 잉글리시 브렉퍼스트! @jihyeok 님, @kodingwarrior 님과 함께 Ruby's Cafe에서.

회색 접시에 담긴 풀 잉글리시 브렉퍼스트(full English breakfast). 접시 중앙에는 노른자가 선명한 계란 프라이 2개가 놓여 있고, 그 주변으로 바삭하게 구운 베이컨 2장, 오렌지색 해시브라운 1개, 허브로 양념된 구운 버섯들, 신선한 시금치 잎, 그리고 오렌지색 구운 콩(베이크드 빈즈)이 배치되어 있다. 접시 오른쪽에는 작은 그릇에 담긴 버터가 함께 제공되었다. 식기류로는 포크와 나이프가 접시 오른쪽에 놓여 있으며, 모든 음식이 나무 테이블 위에 정갈하게 세팅되어 있다.
ALT text

회색 접시에 담긴 풀 잉글리시 브렉퍼스트(full English breakfast). 접시 중앙에는 노른자가 선명한 계란 프라이 2개가 놓여 있고, 그 주변으로 바삭하게 구운 베이컨 2장, 오렌지색 해시브라운 1개, 허브로 양념된 구운 버섯들, 신선한 시금치 잎, 그리고 오렌지색 구운 콩(베이크드 빈즈)이 배치되어 있다. 접시 오른쪽에는 작은 그릇에 담긴 버터가 함께 제공되었다. 식기류로는 포크와 나이프가 접시 오른쪽에 놓여 있으며, 모든 음식이 나무 테이블 위에 정갈하게 세팅되어 있다.

@Shimaneko1985@toot.blue

面白い。

韓国語と日本語の比較。
はとがの区別があるとか。
敬語(尊敬語・丁寧語・謙譲語)があるとか。
否定語は違うなと思いきや、日本語の古語と似ているとか。
中国語と日本語って本当に異国語って感じがするというか違う体系を持ってる感じがするけど、日本語と韓国語(朝鮮語)は方言、みたいな感じがある。
井上ひさしの「國語元年」観てたら(シナリオ読んでたら)鹿児島と津軽とで同じ「国語」とは思えんというか、ポンニチ語ってバリエーションあって面白かったじゃん。って。統一させることで意思疎通がしやすくなった面はあるのかもやけど失うものも多かったのではないかと思うよな。

韓国語は日本語のパラレルワールド?【記述言語学者から見た言語1】#177
youtube.com/watch?v=IR0iK5D1xl

youtube.com

韓国語は日本語のパラレルワールド?【記述言語学者から見た言語1】#177

今回は監修の黒島先生をお招きました。「言語でパラレルワールドをお見せしましょう」「それ韓国語にもありまーす」「韓国の小学校の先生の機会損失(?)」など、韓国語についての知見をお聞きしました。【韓国語について学べる黒島先生のnoteはこちら!】https://note.com/shirokuma_nori/【目次】...