Fedify 2.0.0을 릴리스했습니다!
Fedify 역사상 가장 큰 릴리스입니다. 주요 변경 사항을 소개합니다:
- 모듈형 아키텍처 — 기존의 단일
@fedify/fedify패키지를@fedify/vocab,@fedify/vocab-runtime,@fedify/vocab-tools,@fedify/webfinger등 독립적인 패키지들로 분리했습니다. 번들 크기가 줄어들고, 임포트가 깔끔해지며, 커스텀 어휘 타입으로 ActivityPub을 확장할 수도 있습니다. - 실시간 디버그 대시보드 — 새로운
@fedify/debugger패키지로/__debug__/경로에 라이브 대시보드를 띄울 수 있습니다. 연합 트래픽의 트레이스, 액티비티 상세, 서명 검증, 로그까지 한눈에 확인할 수 있습니다. 기존Federation객체를 감싸기만 하면 됩니다. - ActivityPub 릴레이 지원 —
@fedify/relay패키지와fedify relayCLI 명령어로 릴레이 서버를 바로 띄울 수 있습니다. Mastodon 방식과 LitePub 방식 모두 지원합니다(FEP-ae0c). - 순서 보장 메시지 전달 — 새로운
orderingKey옵션으로 “좀비 포스트” 문제를 해결합니다.Delete가Create보다 먼저 도착하는 문제가 더 이상 발생하지 않습니다. 같은 키를 공유하는 액티비티는 FIFO 순서가 보장됩니다. - 영구 전달 실패 처리 —
setOutboxPermanentFailureHandler()로 원격 인박스가 404나 410을 반환할 때 대응할 수 있습니다. 도달 불가능한 팔로워를 정리하는 등의 처리가 가능합니다.
이 외에도 미들웨어 수준의 콘텐츠 협상, @fedify/lint, @fedify/create, CLI 설정 파일, 네이티브 Node.js/Bun CLI 지원, 다수의 버그 수정 등이 포함되어 있습니다.
이번 릴리스에는 한국 OSSCA (오픈소스 컨트리뷰션 아카데미) 참가자분들의 큰 기여가 담겨 있습니다. 참여해 주신 모든 분께 감사드립니다!
브레이킹 체인지가 포함된 메이저 릴리스입니다. 업그레이드 전에 마이그레이션 가이드를 꼭 확인해 주세요.
전체 릴리스 노트: https://github.com/fedify-dev/fedify/discussions/580