TypeScript SDK「nostr-aop v0.1.0」を公開しました
Nostr上でApplication Objectを扱うためのTypeScript SDK、
nostr-aop v0.1.0
を公開しました
nostr-aopとは?
nostr-aopは、Nostrイベントを利用してアプリケーション単位のObjectを同期・管理するためのSDKです
目的は、
「アプリケーションごとに独自の同期サーバーを作る」
という構成から、
「既存のNostr Relayネットワークを利用してアプリケーションを構築する」
という選択肢を提供することです
主な機能
現在対応している機能:
Object管理
- create | 新規のを作成
- get | 既存のを作成
- close | リレー接続などを切断
Event管理(Action管理)
System Event:
- join | 参加
- leave | 退出(再度、参加可能な場合が多い)
- invite | userの招待
- chmod | 全体の権限変更
- chmodI | 個人単位での権限変更
- (revoke) | 内部でタイムアウトした際に送信する場合がある
Application Event:
- action | 任意のイベント
State管理
Object内部で:
- setting
- history
- pending
- waiting
を管理します
利用環境
Node.js対応
Browser対応
BrowserではNIP-07 signerを利用できます
例:
const aop = new AOP(...);//リレーなどを指定
const object = await aop.createObjectData(...);//Objectの引数を指定
のようにObject単位でアプリケーション状態を扱えます
なぜ作ったのか
Nostrは単なるSNSプロトコルではありません
イベントを共有する分散ネットワークとして利用できます
しかし、アプリケーションを作るためには、
- 状態管理
- 権限
- 履歴
- 同期
の共通レイヤーが必要になります
nostr-aopはその部分を提供することを目指しています
今後
次の改善予定:
- Multi Relay対応
- Examples追加
- API整理
- Documentation強化
- Test拡充
まだまだ課題の残る初期バージョンですが、Nostr上で新しいアプリケーションモデルを試すための基盤として育てていきます
Feedbackやcontributionをいただけると幸いです!