Nostr 開発に役立つ資料集

Nostrプロトコルを利用したアプリケーションの開発に役立つ資料まとめ

Nostrプロトコルを利用したアプリケーションの開発に役立つ資料をまとめていく場です。

プロトコル仕様書

nostr-protocol/nips

https://github.com/nostr-protocol/nips

Nostrプロトコルの仕様を定めるNIPs(Nostr Implementation Possibilities)を取りまとめるリポジトリ。 また、issue・PRは新規NIPの提案や既存NIPの改善などに関する議論を交わす場となっている。

必須仕様はすべて NIP-01 にまとまっているので、まずはNIP-01を読みましょう

nips-ja

https://github.com/nostr-jp/nips-ja

NIPsの日本語訳プロジェクト。

プロトコルの解説

Web記事

書籍

動画

ライブラリ

nostr-tools

https://github.com/nbd-wtf/nostr-tools

Nostrアプリケーションの開発で頻出する処理を提供するJS/TSライブラリ。

  • 秘密鍵の生成・秘密鍵から公開鍵への変換
  • イベントの署名・検証
  • リレーとの通信(イベント購読・発行)
  • bech32形式識別子(npub, nsec, neventなどから始まる識別子、NIP-19)のencode/decode
  • ドメイン認証(NIP-05)の検証
  • etc…

NDK

https://github.com/nostr-dev-kit/ndk

Nostrプロトコルに対する、nostr-toolsよりも高いレイヤの抽象を提供するJS/TSライブラリ

ドキュメント

rx-nostr

https://github.com/penpenpng/rx-nostr

イベント購読をはじめとするNostrリレーとのやり取りを、RxのSubscriptionとして扱えるようにするJS/TSライブラリ。

ドキュメント

nostr-fetch

https://github.com/jiftechnify/nostr-fetch

Nostrリレーから過去のイベントを取得する機能を提供するJS/TSライブラリ。最新のReplaceable Eventの取得にも便利。

(リレーから過去のイベントを正確に取得しようと思うと、落とし穴が多くて意外と大変。詳細はこちら)

rust-nostr

https://github.com/rust-nostr/nostr

Rust向けにNostrプロトコル全般の抽象を提供するライブラリ。機能ごとにクレートが分割されている。

  • nostr: Nostrプロトコルの低レイヤの実装
  • nostr-sdk: nostrクレートをベースとする、より高レイヤの抽象。クライアントの実装向け
  • nostr-database: Nostrイベントの永続化処理に関する抽象。
  • etc

また、さまざまなプログラミング言語向けのbindingが提供されている

go-nostr

https://github.com/nbd-wtf/go-nostr

Nostrプロトコル全般の抽象を提供するGoライブラリ。

eventstore

https://github.com/fiatjaf/eventstore

Nostrイベントの永続化処理に関する抽象を提供するGoライブラリ。

khatru

https://github.com/fiatjaf/khatru

Go向けのNostrリレー実装用のフレームワーク。


No comments yet.