finds.dev← search

// the find

Blizzard/node-rdkafka

★ 2,204 · JavaScript · MIT · updated Dec 2025

Node.js bindings for librdkafka

Node.js bindings for librdkafka, the C library that most serious Kafka clients are built on top of. Gives you near-native Kafka performance from Node by calling into the C library via N-API rather than reimplementing the protocol. If you need high-throughput Kafka in Node, this is the realistic option.

Wraps librdkafka 2.12.0, which means you get all the battle-tested features — transactions, exactly-once semantics, SASL/SSL, custom partitioners — without waiting for a JS reimplementation to catch up. Both a streaming API (plays well with Node's readable/writable stream ecosystem) and a lower-level standard API are available, so you're not forced into one abstraction. The AdminClient covers topic creation, deletion, and partition scaling, which saves you from dropping into a separate admin tool for basic ops. Active maintenance: librdkafka is kept current and the CI runs real integration tests against a live broker.

Native addon means npm install requires a C++ toolchain — this bites you in Docker, CI pipelines, and any Alpine-based image without extra setup. Windows support is explicitly second-class: it pulls a NuGet binary instead of compiling from source, is untested in production, and the maintainer says so directly. The UV_THREADPOOL_SIZE constraint is a real gotcha for flowing-mode consumption: running multiple consumers will starve other async I/O in the process without manual tuning. No Promise or async/await API — everything is callbacks and EventEmitter, which means wrapping it yourself if your codebase has moved past the callback era.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →