Go client library for Hanzo PubSub (NATS compatible).
Category: Hanzo Ecosystem Related Skills: hanzo/hanzo-kv-go.md, hanzo/go-sdk.md
Go client library for Hanzo PubSub (NATS compatible). Fork of nats-io/nats.go with module path rewritten to github.com/hanzoai/pubsub-go. Provides publish/subscribe messaging, request/reply, JetStream persistence, key-value store, object store, and microservice framework.
Fork of nats.go (nats-io/nats.go). Repo: hanzoai/pubsub-go, branch: main.
| Item | Value | |------|-------| | Module | github.com/hanzoai/pubsub-go | | Package | nats | | Go | 1.26+ | | Repo | github.com/hanzoai/pubsub-go | | Branch | main | | License | Apache-2.0 | | Protocol | NATS protocol |
go get github.com/hanzoai/pubsub-go@latest
package main
import (
"fmt"
"time"
"github.com/hanzoai/pubsub-go"
)
func main() {
nc, err := nats.Connect(nats.DefaultURL)
if err != nil {
panic(err)
}
defer nc.Close()
// Subscribe
nc.Subscribe("greet", func(m *nats.Msg) {
fmt.Printf("Received: %s\n", string(m.Data))
})
// Publish
nc.Publish("greet", []byte("Hello World"))
// Request/Reply
nc.Subscribe("help", func(m *nats.Msg) {
m.Respond([]byte("I can help"))
})
msg, _ := nc.Request("help", []byte("need help"), time.Second)
fmt.Println(string(msg.Data))
nc.Drain()
}
import (
"context"
"github.com/hanzoai/pubsub-go"
"github.com/hanzoai/pubsub-go/jetstream"
)
nc, _ := nats.Connect(nats.DefaultURL)
js, _ := jetstream.New(nc)
ctx := context.Background()
// Create stream
stream, _ := js.CreateStream(ctx, jetstream.StreamConfig{
Name: "orders",
Subjects: []string{"orders.>"},
})
// Publish
js.Publish(ctx, "orders.new", []byte(`{"id": 1}`))
// Consume
cons, _ := stream.CreateOrUpdateConsumer(ctx, jetstream.ConsumerConfig{
Durable: "processor",
})
cc, _ := cons.Consume(func(msg jetstream.Msg) {
fmt.Println(string(msg.Data()))
msg.Ack()
})
defer cc.Stop()
*, >)micro package)| Package | Import | Purpose | |---------|--------|---------| | jetstream | github.com/hanzoai/pubsub-go/jetstream | JetStream API (streams, consumers, KV, object store) | | micro | github.com/hanzoai/pubsub-go/micro | NATS microservice framework | | encoders/protobuf | github.com/hanzoai/pubsub-go/encoders/protobuf | Protobuf encoder |
go build ./...
go test ./...
Last Updated: 2026-03-13 Category: Hanzo Ecosystem Related: pubsub, nats, messaging, jetstream, go, client Prerequisites: Go 1.26+