README.md
1## Pub/Sub Lite [![Go Reference](https://pkg.go.dev/badge/cloud.google.com/go/pubsublite.svg)](https://pkg.go.dev/cloud.google.com/go/pubsublite)
2
3- [About Pub/Sub Lite](https://cloud.google.com/pubsub/lite)
4- [Client library documentation](https://cloud.google.com/pubsub/lite/docs/reference/libraries)
5- [API documentation](https://cloud.google.com/pubsub/lite/docs/apis)
6- [Go client documentation](https://pkg.go.dev/cloud.google.com/go/pubsublite)
7- [Complete sample programs](https://github.com/GoogleCloudPlatform/golang-samples/tree/master/pubsublite)
8
9
10### Example Usage
11
12[snip]:# (imports)
13```go
14import (
15 "cloud.google.com/go/pubsub"
16 "cloud.google.com/go/pubsublite/pscompat"
17)
18```
19
20To publish messages to a topic:
21
22[snip]:# (publish)
23```go
24// Create a PublisherClient for topic1 in zone us-central1-b.
25// See https://cloud.google.com/pubsub/lite/docs/locations for available zones.
26const topic = "projects/project-id/locations/us-central1-b/topics/topic1"
27publisher, err := pscompat.NewPublisherClient(ctx, topic)
28if err != nil {
29 log.Fatal(err)
30}
31
32// Publish "hello world".
33res := publisher.Publish(ctx, &pubsub.Message{
34 Data: []byte("hello world"),
35})
36// The publish happens asynchronously.
37// Later, you can get the result from res:
38...
39msgID, err := res.Get(ctx)
40if err != nil {
41 log.Fatal(err)
42}
43```
44
45To receive messages for a subscription:
46
47[snip]:# (subscribe)
48```go
49// Create a SubscriberClient for subscription1 in zone us-central1-b.
50const subscription = "projects/project-id/locations/us-central1-b/subscriptions/subscription1"
51subscriber, err := pscompat.NewSubscriberClient(ctx, subscription)
52if err != nil {
53 log.Fatal(err)
54}
55
56// Use a callback to receive messages.
57// Call cancel() to stop receiving messages.
58cctx, cancel := context.WithCancel(ctx)
59err = subscriber.Receive(cctx, func(ctx context.Context, m *pubsub.Message) {
60 fmt.Println(m.Data)
61 m.Ack() // Acknowledge that we've consumed the message.
62})
63if err != nil {
64 log.Println(err)
65}
66```
67