On this page
Overview
Sarama is a Go client library for Apache Kafka. It provides producers, consumers, consumer groups, cluster administration, and protocol request/response support for a broad Kafka feature surface.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Implement Kafka message flows with producers and consumer groups
Synchronous and asynchronous producers plus consumer groups support publishing and consuming with Kafka partitioning, offsets, and rebalance behavior.
Sources: [2]
Best fit
Fits Go backends and streaming workloads that need detailed Kafka control
It suits event-driven services that want producer delivery semantics, consumer groups, administration, and Kafka-specific configuration in one library.
Sources: [2]
Before adoption
v1.61.1 requires Go 1.26; regression-test transactions, idempotency, and rebalances
The v1.61.1 go.mod declares Go 1.26, and the README states a two-latest-stable-releases plus two-month grace compatibility policy for Kafka and Go. Version 1.61.1 contains numerous correctness fixes in transaction management, idempotent batches, cooperative rejoin, and broker lifecycle races, so exactly-once and rebalance paths deserve focused regression coverage.
Official sources
- [1]IBM/sarama — GitHub repository(2026-10-06)
- [2]Sarama v1.61.1 — README(2026-10-06)
- [3]Sarama v1.61.1 — go.mod(2026-10-06)
- [4]Sarama v1.61.1 release(2026-10-06)
- [5]Sarama MIT license(2026-10-06)
Supplemental curator note
Sarama exposes a broad Kafka protocol surface. Idempotent and transactional producers, consumer-group rebalances, and Kafka protocol-version configuration directly affect correctness, so test them explicitly against the deployed broker version.
Try it in 3 steps
- 1
Get the source
git clone --depth 1 https://github.com/IBM/sarama.git - 2
Enter the repository
cd sarama - 3
Check the official steps
Continue with the commands in the README Installation, Quick Start, or Getting Started section.
find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
Growth
Growth trends · Last 30 days
12,523 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 77
- Open PRs
- 37
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- kafka
- kafka-client
- go
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- Grafana Tempo5,510 Stars
2 shared tag(s) · Same language
store high-volume distributed traces around object storage and explore them with TraceQL
Go - kafka-go8,638 Stars
5 shared tag(s) · 2 shared category(s) · Same language
use high-level Reader and Writer APIs or drop down to a low-level pure-Go Kafka connection
Go - NATS Go Client6,770 Stars
3 shared tag(s) · 1 shared category(s) · Same language
use Core NATS Pub/Sub and persistent JetStream messaging through one Go client
Go - Apache Kafka33,916 Stars
3 shared tag(s) · 1 shared category(s)
Store durable events in topics and partitions and build distributed pipelines with producers, consumers, Streams, and Connect
Java - RabbitMQ13,905 Stars
3 shared tag(s) · 1 shared category(s)
unify AMQP, MQTT, STOMP, and stream protocols over queues and replicated logs in one messaging broker
JavaScript - go-redis22,258 Stars
2 shared tag(s) · 1 shared category(s) · Same language
use pooling, pipelines, Pub/Sub, Sentinel, and Cluster through the official Redis Go client
Go
Report incorrect information
Tell us if any listing information is incorrect or outdated.