twmb/franz-go

franz-go is a feature complete, pure Go library for Kafka from 0.8.0 through 4.4+. Producing, consuming, transacting, administrating, etc.

View on GitHub ↗Jump to charts ↓Open shareable report →

Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 2 hours ago
Added to GitGenius on September 22nd, 2026
Created on March 25th, 2019
Open Issues & Pull Requests: 3 (+1)
GitHub issues: Enabled
Number of forks: 305
Total Stargazers: 3,071 (+0)
Total Subscribers: 24 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 35.1 hours
Mean response time: 12.9 days
90th percentile: 24.3 days
Tracked items: 239

How this project is maintained

Practically every issue opened in the past year has drawn a reply. 100% of issues opened in the past year have since been closed. Three people close 90% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 1
New in 7 days: 2
Closed in 7 days: 2
Avg open age: 0 days
Stale 30+ days: 0
Stale 90+ days: 0

Recent activity

Opened in 7 days: 1
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • has pr (55)
  • enhancement (35)
  • waiting (31)
  • minor (17)
  • bug (13)
  • help wanted (8)
  • plugin (7)
  • patch (6)

Most active issues this week

Sign in to see which issues are moving.
Sign in

Detailed Description

Franz-go is a pure Go client library for Apache Kafka that supports all Kafka versions from 0.8.0 through 4.4 and later.

The library addresses the need for a complete, idiomatic Kafka client in Go by implementing every major Kafka feature directly in the language rather than wrapping C libraries or other bindings. It supports producing and consuming with exactly-once semantics, transactional operations, multiple consumer group balancing strategies including cooperative and rack-aware assignment, all compression types, SSL/TLS, and every SASL authentication mechanism. The tool also provides high-level admin functionality through a dedicated package and includes a schema registry client with serialization support. Its design emphasizes performance by avoiding unnecessary channels and goroutines while maintaining an intuitive API that respects Kafka's expectations around timeouts and protocol behavior.

Developers should choose this library if they need comprehensive Kafka support in Go without external dependencies. It suits projects ranging from simple producers and consumers to complex deployments requiring transactions, administrative operations, or integration with Kafka-compatible brokers like Redpanda, Confluent Platform, Microsoft Event Hubs, or Amazon MSK. The library is organized into separate packages and modules allowing independent feature development: the main client lives in the kgo package, administrative tools in kadm, and plugins for metrics and logging in dedicated submodules.

The project maintains active development with regular updates addressing new Kafka protocol features and KIPs. Contributions are accepted and reviewed, with the codebase demonstrating attention to both API design and performance optimization. The maintainers provide comprehensive documentation including examples, API references, and supplementary guides in the docs directory.