ページ内ナビ
概要
nats.goはNATS公式のGo clientです。Core NATSのpublish/subscribe、request/reply、queue subscriptionに加え、JetStreamのstream/consumer管理とpersistent publish/consume、TLS、NKeys/user credentials、reconnect等を提供します。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
Pub/Sub・Request/Reply・queue subscriptionでservice間messagingを組む
publish、async/sync subscribe、request/reply、channel subscription、drain等のCore NATS APIを使い、subject-basedなservice間通信を構築できます。
出典:[2]
JetStreamでpersistent streamとconsumerを管理する
JetStream APIからstream/consumer handleを取得し、persistent messageのpublish/consume、acknowledgement、consumer lifecycleをapplication側で制御できます。
出典:[2]
向いている用途
低latency Pub/Subとdurable messagingを使い分けるcloud-native backendに向く
microserviceのrequest/replyやevent distributionはCore NATS、replayやdurabilityが必要なworkloadはJetStreamとして同じclient ecosystemで構成したい場合に適します。
出典:[2]
導入前の確認
v1.54.0からGo 1.26。reconnect時のconsumer behaviorとpending limit修正を確認する
v1.54.0はminimum Go versionを1.26へ引き上げ、nats-server v2.15のstream/consumer info fieldへ対応します。releaseではJetStream iteratorがreconnect後に停止する問題、ordered consumerのmessage lossやsubscription復活、Core subscription SID race等が修正されているため、reconnect・drain・pending limit・ordered consumerを回帰testしてください。
参考にした公式資料
- [1]nats-io/nats.go — GitHub repository(2026-10-06)
- [2]NATS Go Client v1.54.0 — README(2026-10-06)
- [3]NATS Go Client v1.54.0 — go.mod(2026-10-06)
- [4]NATS Go Client v1.54.0 release(2026-10-06)
- [5]NATS Go Client Apache-2.0 license(2026-10-06)
編集部からの補足
Core NATSの軽量Pub/SubとJetStreamの永続messagingを同じclientで扱えます。reconnect、drain、subscription pending limit、JetStream ack/consumer lifecycleはfailure時のmessage loss/duplicateへ関わるため、本番障害シナリオで確認してください。
3ステップで試す
- 1
ソースを取得
git clone --depth 1 https://github.com/nats-io/nats.go.git - 2
リポジトリへ移動
cd nats.go - 3
公式手順を確認
READMEのInstallation / Quick Start / Getting Startedにある公式コマンドを続けて実行してください。
find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
成長
成長の推移 · 直近30日
6,770 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 25
- Open PR
- 46
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
GitHubのデータGitHubの詳細データを見る
GitHub Topics
- go
- golang
- nats
- microservices
- microservices-architecture
- pub-sub
- cloud-native
- cloud-native-architectures
- cloud-native-microservices
- Stars
- 6,770
- Forks
- 839
- Watchers
- 155
- Open Issues
- 120
- Contributors
- 156
- 所有者種別
- Organization
- 主要言語
- Go
- ライセンス
- Apache-2.0
- リポジトリ最終更新
- 2026/10/06
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Echo32,754 Stars
共通タグ 2件 · 同じ言語
Go標準のnet/httpを土台にルーティング・ミドルウェア・エラー処理をまとめるWebフレームワーク
Go - gobreaker3,702 Stars
共通タグ 3件 · 共通カテゴリ 2件 · 同じ言語
open・half-open・closed stateで失敗中のdependencyへのrequestを遮断するGo Circuit Breaker
Go - Istio38,429 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
service間通信にmTLS・traffic policy・telemetryを透過的に追加するservice mesh
Go - Asynq13,748 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
Redis-backed queueでbackground taskをretry・schedule・workerへ分散するGo library
Go - Sarama12,523 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
Producer・Consumer Group・Admin・Transactionを幅広く扱うGo Kafka client
Go - kafka-go8,638 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
Reader・Writerと低level Connを使い分けるpure Go Kafka client
Go
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。