Skip to content

Kafka Client Investigation #1569

@yanmxa

Description

@yanmxa

Here's an updated comparison table of popular Go clients for Apache Kafka, including dynamic links to their GitHub repositories and real-time popularity metrics:
Client Name GitHub Repository Stars Forks Language CGO-Free Kafka Features (Txn, Comp., etc.) High-Level API Notable For
Sarama [IBM/sarama](https://github.com/IBM/sarama) 12k 2k Pure Go Moderate Moderate Mature, widely adopted client
confluent-kafka-go [confluentinc/confluent-kafka-go](https://github.com/confluentinc/confluent-kafka-go) 4.7k 672 Go (CGO) Full (txn, comp., etc.) Basic High performance via librdkafka (C-based)
kafka-go [segmentio/kafka-go](https://github.com/segmentio/kafka-go) 8k 799 Pure Go Limited Flexible Go-native, easy to use
franz-go [twmb/franz-go](https://github.com/twmb/franz-go) 1.2k 100 Pure Go Full Full Modern, fast, low-allocation
Goka [lovoo/goka](https://github.com/lovoo/goka) 2.4k 175 Pure Go Built on Sarama High Stream processing abstraction
uber-go/kafka-client uber-go/kafka-client 222 28 Pure Go Moderate (via Sarama) High DLQs, multi-goroutine consume patterns
gocollection/kafka-go gocollection/kafka-go 20 10 Pure Go Basic (via Sarama) Simple Minimal wrapper for Sarama

Notes:

  • Stars and Forks are approximate and may have changed since this data was compiled.
  • CGO-Free indicates whether the client avoids using CGO, which can simplify cross-compilation and deployment.
  • Kafka Features summarizes the level of support for advanced Kafka features:
    • Full: Supports transactions, compression, idempotent producers, consumer group rebalancing, and offset management.
    • Moderate: Supports most essential features but may lack full transactional or idempotent support.
    • Limited: Provides basic Kafka operations only.
  • High-Level API reflects the availability of abstractions and helper functions:
    • Full: Offers comprehensive abstractions for producers, consumers, and stream processing.
    • Moderate: Provides core Kafka primitives with some helper functions.
    • Simple: Primarily a thin wrapper around lower-level functionality.

Let me know if you'd like more detailed information on any of these clients or assistance in choosing the right one for your project.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions