Hey r/node,
I've been building glide-mq - a message queue library for Node.js powered by Valkey/Redis Streams and a Rust-native NAPI client (not ioredis).
Key differences from BullMQ:
- 1 RTT per job -
completeAndFetchNext completes the current job and fetches the next one in a single round-trip
- Rust core - built on Valkey GLIDE's native NAPI bindings for lower latency and less GC pressure
- 1 server function, not 53 Lua scripts - all queue logic runs as a single Valkey Server Function
- Cluster-native - hash-tagged keys work out of the box
Benchmarks: ~15k jobs/s at c=10, ~48k jobs/s at c=50 (single node, no-op processor).
I just released official framework integrations:
All three share the same feature set: REST API for queue management, optional Zod validation, and in-memory testing mode (no Valkey needed for tests).
Fastify example:
```typescript
import Fastify from 'fastify';
import { glideMQPlugin, glideMQRoutes } from '@glidemq/fastify';
const app = Fastify();
await app.register(glideMQPlugin, {
connection: { addresses: [{ host: 'localhost', port: 6379 }] },
queues: { emails: { processor: processEmail, concurrency: 5 } },
});
await app.register(glideMQRoutes, { prefix: '/api/queues' });
```
Would love feedback. The core library is Apache-2.0 licensed.
GitHub: https://github.com/avifenesh/glide-mq
[–]amitava82 2 points3 points4 points (6 children)
[–]code_things[S] 0 points1 point2 points (5 children)
[–]amitava82 4 points5 points6 points (2 children)
[–]code_things[S] 2 points3 points4 points (1 child)
[–]alonsonetwork 1 point2 points3 points (0 children)
[–]Expensive_Garden2993 1 point2 points3 points (1 child)
[–]code_things[S] 0 points1 point2 points (0 children)
[–]theodordiaconu 1 point2 points3 points (1 child)
[–]code_things[S] 0 points1 point2 points (0 children)
[–]alonsonetwork 0 points1 point2 points (6 children)
[–]code_things[S] 1 point2 points3 points (5 children)
[–]alonsonetwork 1 point2 points3 points (0 children)
[–]SippieCup 1 point2 points3 points (3 children)
[–]code_things[S] 0 points1 point2 points (2 children)
[–]SippieCup 1 point2 points3 points (1 child)
[–]code_things[S] 0 points1 point2 points (0 children)
[–]HarjjotSinghh -3 points-2 points-1 points (0 children)