2025年1月1日
Roxの紹介
Roxは、Misskey API互換の軽量ActivityPubサーバー・クライアントで、モダンなデプロイメントシナリオ向けに設計されています。
Roxとは?
Roxは次世代の連合型ソーシャルメディアプラットフォームで、以下を組み合わせています:
- ActivityPubプロトコル: Mastodon、Misskey、GoToSocial、その他のActivityPub互換サーバーとの完全な連合
- Misskey API互換: 既存のMisskeyユーザーとクライアントのためのシームレスな移行パス
- モダンアーキテクチャ: パフォーマンスと開発者体験のための最先端技術で構築
- デプロイメントの柔軟性: DockerでVPSに、またはCloudflare Workersなどのエッジ環境で実行
主要機能
軽量・高性能
Bunランタイムとモダンなウェブ標準で構築され、卓越した速度と効率を実現。バックエンド全体が高速でリソース効率的に設計されています。
インフラ非依存
Roxはどこにでもデプロイ可能:
- 従来のVPS: Docker Composeで簡単デプロイ
- エッジコンピューティング: Cloudflare WorkersとD1データベースにデプロイ
- ハイブリッド: ニーズに応じて組み合わせ
Misskey API互換
Misskey APIとの完全な互換性により:
- 既存のMisskeyクライアントがそのまま動作
- Misskeyインスタンスからの簡単な移行
- 開発者にとって馴染みのあるAPI
マルチデータベース対応
デプロイメントに合わせてデータベースを選択:
- PostgreSQL: 本番環境推奨
- MySQL: 代替リレーショナルデータベース
- SQLite/D1: エッジデプロイメントに最適
柔軟なストレージ
メディアファイルを好きな場所に保存:
- ローカルファイルシステム: シングルサーバーデプロイメントに最適
- S3互換ストレージ: AWS S3、Cloudflare R2、MinIOでスケーラビリティ
モダンUI
美しくアクセシブルなインターフェース:
- Waku: React Server Componentsフレームワーク
- React Aria Components: アクセシブルなヘッドレスUIコンポーネント
- Tailwind CSS v4: OKLCHカラースペースによるモダンスタイリング
- Lingui: 最適化された国際化(英語/日本語)
アーキテクチャ概要
Roxは保守性とテスト可能性のために実証済みの設計パターンを使用:
リポジトリパターン
データベース操作はインターフェースを通じて抽象化:
INoteRepository- ノート/投稿操作IUserRepository- ユーザー管理IFileRepository- ファイル処理- その他...
アダプターパターン
ストレージ操作は柔軟性のためにアダプターを使用:
LocalStorageAdapter- ローカルファイルシステムストレージS3StorageAdapter- S3互換ストレージ
依存性注入
実装はHono Contextを介して環境変数に基づいて注入され、コード変更なしで異なる実装間の切り替えが容易。
プロジェクト構造
rox/
├── packages/
│ ├── backend/ # Hono Rox (APIサーバー)
│ ├── frontend/ # Waku Rox (Webクライアント)
│ └── shared/ # 共通型とユーティリティ
├── docs/ # ドキュメント
├── docker/ # Docker設定
└── scripts/ # ビルドとデプロイメントスクリプト
技術スタック
バックエンド
- ランタイム: Bun 1.1.45+
- 言語: TypeScript 5.x
- フレームワーク: Hono 4.10.6
- ORM: Drizzle ORM 0.36.4
- キュー: Dragonfly / BullMQ
- コード品質: oxc
フロントエンド
- フレームワーク: Waku 0.27.1
- 状態管理: Jotai 2.15.1
- UIコンポーネント: React Aria Components 1.6.3
- スタイリング: Tailwind CSS v4 4.1.17
- 国際化: Lingui 5.6.0
- 認証: パスキー + パスワード
ユースケース
Roxは以下に最適:
- 個人インスタンス: 独自の連合型ソーシャルメディアサーバーを運用
- コミュニティプラットフォーム: ActivityPub連合でコミュニティを構築
- Misskey移行: 最小限の中断でMisskeyから移行
- エッジデプロイメント: Cloudflare Workersでグローバルにデプロイ
- 開発: ActivityPubと連合システムについて学ぶ
次のステップ
始める準備はできましたか?以下のガイドをご覧ください:
コミュニティ
- GitHub: Love-Rox/rox
- ドキュメント: 実装ガイド
- コントリビューション: コントリビューションガイド
ライセンス
RoxはMITライセンスの下でオープンソースソフトウェアとして公開されています。