-
@ かすてらふぃ🍁
2024-02-11 15:18:32Nostrプロトコルを利用したアプリケーションの開発に役立つ資料をまとめていく場です。
プロトコル仕様書
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記事
書籍
- Hello, Nostr! 先住民が教えるNostrの歩き方
- learn-nostr-by-crafting: 本書内記事「手を動かして学ぶNostrプロトコル」の演習用リポジトリ
- Hello, Nostr! Yo Bluesky! 分散SNSの最前線
- learn-nostr-by-crafting-2: 本書内記事「演習!作ってみよう「日本語 TL のぞき窓」の演習用リポジトリ
- Software Design誌 連載「新時代の分散SNS Nostr」(2023年7月号~12月号)
- 第1回(7月号)〜第3回(9月号): Nostrプロトコルやアプリケーションの紹介
- 第4回(10月号): Nostrプロトコルの解説
- 第5回(11月号), 第6回(12月号): Nostrアプリケーションの実装解説
動画
ライブラリ
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リレー実装用のフレームワーク。