# twmb/franz-go

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/twmb-franz-go).**

2,700 stars · 268 forks · Go · bsd-3-clause

## Links

- GitHub: https://github.com/twmb/franz-go
- awesome-repositories: https://awesome-repositories.com/repository/twmb-franz-go.md

## Topics

`client` `go` `golang` `kafka` `kafka-client` `redpanda`

## Description

franz-go is a low-level Go client library and wire protocol implementation for producing, consuming, and administering Kafka clusters. It functions as a zero-allocation network driver that utilizes a direct TCP communication layer to handle requests and responses.

The project integrates a schema registry client for encoding and decoding structured data. It provides a programmatic interface for cluster administration, including the management of topics, access control lists, and broker configurations.

The library covers data consumption through consumer groups, message production with transaction support, and secure communication via encrypted and authenticated connections. It also includes hooks for monitoring client performance, network latencies, and throughput.

## Tags

### Data & Databases

- [High-Throughput Data Streaming](https://awesome-repositories.com/f/data-databases/high-throughput-data-streaming.md) — Implements a high-throughput Kafka client in Go using low-allocation drivers and request pipelining.
- [Kafka Client Libraries](https://awesome-repositories.com/f/data-databases/kafka-client-libraries.md) — Implements a low-level Go client library for producing, consuming, and administering Kafka clusters.
- [Kafka Client Integrations](https://awesome-repositories.com/f/data-databases/kafka-client-integrations.md) — Provides Go client integration for producing messages to Kafka with support for transactions and compression. ([source](https://cdn.jsdelivr.net/gh/twmb/franz-go@master/README.md))
- [Kafka Message Production](https://awesome-repositories.com/f/data-databases/kafka-message-production.md) — Sends data to Kafka brokers with support for transactions and compression to ensure reliable delivery.
- [Kafka Stream Exporters](https://awesome-repositories.com/f/data-databases/real-time-data-streaming/kafka-stream-exporters.md) — Implements efficient data consumption from Kafka brokers using consumer groups for parallel processing.
- [Schema Registries](https://awesome-repositories.com/f/data-databases/schema-registries.md) — Integrates with a schema registry to manage typed metadata and consistent data formats across services.
- [Schema Registry Clients](https://awesome-repositories.com/f/data-databases/schema-registries/schema-registry-clients.md) — Includes a schema registry client for encoding and decoding structured data using specified schemas.

### Networking & Communication

- [Kafka Protocol Implementations](https://awesome-repositories.com/f/networking-communication/kafka-protocol-implementations.md) — Provides a low-level implementation of the Kafka wire protocol over direct TCP sockets.
- [Message Stream Consumer Groups](https://awesome-repositories.com/f/networking-communication/message-stream-handlers/message-stream-consumer-groups.md) — Reads data from Kafka topics using consumer groups for efficient parallel processing across workers. ([source](https://cdn.jsdelivr.net/gh/twmb/franz-go@master/README.md))

### System Administration & Monitoring

- [Kafka Cluster Administration](https://awesome-repositories.com/f/system-administration-monitoring/kafka-cluster-administration.md) — Provides a programmatic interface for administering Kafka brokers, topics, and cluster configurations. ([source](https://cdn.jsdelivr.net/gh/twmb/franz-go@master/README.md))

### Operating Systems & Systems Programming

- [Network Drivers](https://awesome-repositories.com/f/operating-systems-systems-programming/zero-allocation-buffers/network-drivers.md) — Functions as a zero-allocation network driver using buffer pools and pipelining to minimize memory overhead.

### Security & Cryptography

- [Kafka Security Integrations](https://awesome-repositories.com/f/security-cryptography/kafka-security-integrations.md) — Implements authentication and encryption protocols specifically for securing Kafka client connections.
- [Pluggable Authentication Handlers](https://awesome-repositories.com/f/security-cryptography/pluggable-authentication-handlers.md) — Provides a pluggable architecture for authentication handlers to decouple security schemes from protocol logic.
- [Secure Connection Managers](https://awesome-repositories.com/f/security-cryptography/secure-connection-managers.md) — Establishes encrypted and authenticated communication channels using secure connection managers. ([source](https://cdn.jsdelivr.net/gh/twmb/franz-go@master/README.md))
- [Security Dialers](https://awesome-repositories.com/f/security-cryptography/ssl-tls-connection-security/security-dialers.md) — Decouples connection establishment from protocol logic using wrappers for TLS and SASL authentication.

### Software Engineering & Architecture

- [Asynchronous Request Pipelines](https://awesome-repositories.com/f/software-engineering-architecture/asynchronous-request-pipelines.md) — Implements asynchronous request pipelining to increase throughput by sending multiple requests without waiting for immediate responses.
- [Byte Buffer Pooling](https://awesome-repositories.com/f/software-engineering-architecture/byte-buffer-pooling.md) — Utilizes a pool of reusable byte buffers to reduce garbage collection overhead during network I/O operations.
- [Data Encoders and Decoders](https://awesome-repositories.com/f/software-engineering-architecture/data-encoders-and-decoders.md) — Handles the encoding and decoding of structured data by interacting with a schema registry. ([source](https://cdn.jsdelivr.net/gh/twmb/franz-go@master/README.md))
- [Interface-Based Schema Resolution](https://awesome-repositories.com/f/software-engineering-architecture/data-schema-definitions/named-schema-references/external-schema-resolution/interface-based-schema-resolution.md) — Abstracts serialization logic through generic interfaces to support multiple schema registry versions and encoding formats.
- [Zero-Allocation Buffer Encoders](https://awesome-repositories.com/f/software-engineering-architecture/zero-copy-buffers/zero-allocation-buffer-encoders.md) — Implements zero-allocation serialization by reusing buffers and encoding directly into byte slices.
