Registry / messaging / rocketmq-grpc

rocketmq-grpc

JSON →
library0.3.1jsnpmunverified

A self-packaged Apache RocketMQ Node.js client implemented via RocketMQ 5.x gRPC protocol. Version 0.3.1 is current. It is a pure Node.js client with no dependencies on egg.js or other third-party libraries. Provides distributed ordering, a custom PushConsumer-like pattern using long polling, and unified logging. Requires Node.js >= 16.19.0 (recommended >= 18.17.0). Differentiators: lightweight, TypeScript-native, supports multiple message types (NORMAL, FIFO, DELAY, TRANSACTION) and consumption modes (PRODUCER, SIMPLE_CONSUMER, PUSH_CONSUMER). Actively maintained on GitHub.

npm install rocketmq-grpc
INSTALL
IMPORT
SIG · ROCKETMQ-GRPC
R
rocketmq-grpc
messagingjavascriptv0.3.1
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Producer
import { Producer } from 'rocketmq-grpc'
import Producer from 'rocketmq-grpc'
Named export, not default.
SimpleConsumer
import { SimpleConsumer } from 'rocketmq-grpc'
const { SimpleConsumer } = require('rocketmq-grpc')
Package ships TypeScript declarations; ESM-style import is recommended, but CJS require also works if your project allows it.
Message
import type { Message } from 'rocketmq-grpc'
const Message = require('rocketmq-grpc').Message
Message is an interface, not a class; use type import for TypeScript.

Demonstrates sending a normal message with Producer and receiving messages with SimpleConsumer using long polling.

import { Producer, SimpleConsumer } from 'rocketmq-grpc'; // Producer const producer = new Producer({ endpoints: 'localhost:8081', }); async function sendMessage() { await producer.startup(); await producer.send({ topic: 'test-topic', tag: 'test', keys: ['key1'], body: Buffer.from('Hello RocketMQ!'), }); console.log('Message sent'); } sendMessage().catch(console.error); // Consumer (SimpleConsumer with long polling) const consumer = new SimpleConsumer({ consumerGroup: 'test-group', endpoints: 'localhost:8081', subscriptions: new Map([['test-topic', '*']]), awaitDuration: 30000, }); async function consume() { await consumer.startup(); const messages = await consumer.receive(10); if (messages.length > 0) { for (const msg of messages) { console.log('Received:', msg.body.toString()); await consumer.ack(msg); } } } consume().catch(console.error);
Debug
Known issues
gotchaOn macOS/Linux, npm run build may fail due to permission issues. Use sudo npm run build.
fix
Run sudo npm run build or configure npm to avoid permission issues.
affects: >=0.0.0
gotchaOn Windows, npm run build may fail if not run as administrator. Use 'Run as administrator'.
fix
Run command prompt as administrator then execute npm run build.
affects: >=0.0.0
gotchaRequires RocketMQ 5.x with proxy component enabled. Older RocketMQ versions are not compatible.
fix
Deploy RocketMQ proxy (https://github.com/apache/rocketmq/tree/develop/proxy) and configure endpoints accordingly.
affects: >=0.0.0
gotchaSimpleConsumer.receive() may return empty array; implement a polling loop or use recursive calls as shown in examples.
fix
Check message length and call receive again after a delay, or use the custom PushConsumer approach if available.
affects: >=0.0.0
Errors
Common errors & fixes
Error: 12 UNIMPLEMENTED: method not found
RocketMQ proxy not running or wrong endpoints.
fix
Ensure RocketMQ proxy is running and endpoints matches the host:port of the proxy (default 8081).
Cannot find module '@grpc/grpc-js'
Missing peer dependency @grpc/grpc-js.
fix
Run npm install @grpc/grpc-js in your project.
TypeError: consumer.receive is not a function
Importing SimpleConsumer incorrectly (e.g., as default instead of named import).
fix
Use import { SimpleConsumer } from 'rocketmq-grpc'.
Upgrade
Version history
0.3.1latest on npm
Audit
Dependencies
@grpc/grpc-jsrequiredgRPC client for connecting to RocketMQ proxy
@grpc/proto-loaderrequiredLoads .proto files for gRPC service definitions
Agent activity
10 hits · last 30 days
node
9
OpenAI (training)
1
Resources
rocketmq-grpc — npm install rocketmq-grpc · libregistry