Об этом проекте

Sarama — это клиентская библиотека на Go для Apache Kafka, распространяемая под лицензией MIT и поддерживаемая IBM. Она предоставляет полную реализацию протокола Kafka для приложений на Go. ## Возможности **Продюсеры** — Отправка записей в топики Kafka с настраиваемыми стратегиями партиционирования (случайная, round-robin, sticky, на основе ключа). Поддерживаются синхронный и асинхронный режимы отправки, пакетирование сообщений и сжатие (gzip, snappy, lz4, zstd). **Потребители** — Чтение из топиков Kafka с использованием ConsumerGroups или прямых подписок на топики/партиции. Поддерживаются ручное и автоматическое управление смещениями, высокоуровневая балансировка групп и пользовательские стратегии назначения партиций. **Транзакционные клиенты** — Предоставляет API для семантики exactly-once, включая инициацию транзакций, их фиксацию и отмену. **Управление брокерами** — Обработка обнаружения брокеров Kafka, управление метаданными и автоматическое переназначение лидеров. ## Дополнительные ресурсы - Мок-реализации в подпакете `mocks` упрощают модульное тестирование. - Примеры приложений в каталоге `examples` демонстрируют типичные сценарии использования. - Инструменты командной строки в каталоге `tools` поддерживают тестирование, диагностику и инструментирование. ## Совместимость Sarama поддерживает два последних стабильных релиза Kafka и Go, с двухмесячным льготным периодом для старых версий. Проект следует семантическому версионированию и гарантирует стабильность API. Полная документация по API и примеры доступны на pkg.go.dev.