Product
Socket Now Supports uv.lock Files
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
@google-cloud/pubsub
Advanced tools
The @google-cloud/pubsub npm package is a client library for accessing Google Cloud Pub/Sub, a fully-managed real-time messaging service that allows you to send and receive messages between independent applications. This package provides an easy-to-use API to interact with Google Cloud Pub/Sub and is designed to handle the complexities of the underlying API operations.
Publishing Messages
This feature allows you to publish messages to a topic. The code sample demonstrates how to create a PubSub client, get a reference to a topic, and publish a message to that topic.
const {PubSub} = require('@google-cloud/pubsub');
const pubsub = new PubSub();
const topic = pubsub.topic('my-topic');
const messageBuffer = Buffer.from('Hello, world!');
topic.publish(messageBuffer);
Subscribing to Topics
This feature enables you to subscribe to a topic and receive messages. The code sample shows how to create a PubSub client, get a reference to a subscription, and set up an event handler to process received messages.
const {PubSub} = require('@google-cloud/pubsub');
const pubsub = new PubSub();
const subscription = pubsub.subscription('my-subscription');
subscription.on('message', message => {
console.log('Received message:', message.data.toString());
message.ack();
});
Managing Topics and Subscriptions
This feature covers the management of topics and subscriptions, including creating and deleting them. The code sample illustrates how to create a new topic and delete an existing subscription.
const {PubSub} = require('@google-cloud/pubsub');
const pubsub = new PubSub();
// Create a new topic
pubsub.createTopic('new-topic').then(response => {
console.log('Topic created:', response[0].name);
});
// Delete a subscription
pubsub.subscription('old-subscription').delete();
The AWS SDK for JavaScript provides a similar messaging service through Amazon SNS (Simple Notification Service) and SQS (Simple Queue Service). While AWS SDK supports both pub/sub and queue-based messaging, @google-cloud/pubsub is specifically optimized for Google Cloud's Pub/Sub service.
Azure-sb is a client library for Azure Service Bus, which also supports pub/sub messaging patterns. Compared to @google-cloud/pubsub, azure-sb is tailored for integration with Azure's ecosystem and supports additional features like message sessions and dead-letter queues.
Rascal is an abstraction layer over amqplib for RabbitMQ, a popular open-source message broker. Unlike @google-cloud/pubsub, which is a cloud-native service, Rascal with RabbitMQ can be used both on-premises and in the cloud, offering more flexibility in deployment models.
Node.js idiomatic client for Cloud Pub/Sub.
Cloud Pub/Sub is a fully-managed real-time messaging service that allows you to send and receive messages between independent applications.
Read more about the client libraries for Cloud APIs, including the older Google APIs Client Libraries, in Client Libraries Explained.
Table of contents:
Select or create a Cloud Platform project.
Enable billing for your project.
Enable the Google Cloud Pub/Sub API.
Set up authentication with a service account so you can access the API from your local workstation.
npm install --save @google-cloud/pubsub
// Imports the Google Cloud client library
const PubSub = require('@google-cloud/pubsub');
// Your Google Cloud Platform project ID
const projectId = 'YOUR_PROJECT_ID';
// Instantiates a client
const pubsubClient = new PubSub({
projectId: projectId,
});
// The name for the new topic
const topicName = 'my-new-topic';
// Creates the new topic
pubsubClient
.createTopic(topicName)
.then(results => {
const topic = results[0];
console.log(`Topic ${topic.name} created.`);
})
.catch(err => {
console.error('ERROR:', err);
});
Samples are in the samples/
directory. The samples' README.md
has instructions for running the samples.
Sample | Source Code | Try it |
---|---|---|
Subscriptions | source code | |
Topics | source code |
The Cloud Pub/Sub Node.js Client API Reference documentation also contains samples.
This library follows Semantic Versioning.
This library is considered to be in beta. This means it is expected to be mostly stable while we work toward a general availability release; however, complete stability is not guaranteed. We will address issues and requests against beta libraries with a high priority.
More Information: Google Cloud Platform Launch Stages
Contributions welcome! See the Contributing Guide.
Apache Version 2.0
See LICENSE
FAQs
Cloud Pub/Sub Client Library for Node.js
The npm package @google-cloud/pubsub receives a total of 483,594 weekly downloads. As such, @google-cloud/pubsub popularity was classified as popular.
We found that @google-cloud/pubsub demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Research
Security News
Socket researchers have discovered multiple malicious npm packages targeting Solana private keys, abusing Gmail to exfiltrate the data and drain Solana wallets.
Security News
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.