Skip to content

Commit

Permalink
cherry-pick latest upstream changes (#10)
Browse files Browse the repository at this point in the history
* Fix typo in kgo.Client.ResumeFetchTopics() docs

Signed-off-by: Mihai Todor <[email protected]>

* add `NewOffsetFromRecord` helper function

* Fix typo in Record.ProducerID doc comment.

* Don't set nil config when seeding topics in kfake cluster

Setting the configs to `nil` causes it to panic later when trying to alter the topic configs, as it only checks for entry in the map not being present, not for it being nil

Signed-off-by: Oleg Zaytsev <[email protected]>

* Add Opts method for sr.Client

* Merge pull request twmb#826 from colega/don-t-set-nil-config-when-seeding-topics-in-kfake-cluster

Don't set nil config when seeding topics in kfake cluster

* Merge pull request twmb#821 from seizethedave/davidgrant/producer-doc

Fix typo in Record.ProducerID doc comment.

* Merge pull request twmb#812 from mihaitodor/fix-doc-typo

Fix typo in kgo.Client.ResumeFetchTopics() docs

* kgo: fix potential deadlock when reaching max buffered (records|bytes)

Problem:
* Record A exceeds max, is on path to block
* Record B finishes concurrently
* Record A's context cancels
* Record A's goroutine waiting to be unblocked returns, leaves accounting mutex in locked state
* Record A's select statement chooses context-canceled case, trying to grab the accounting mutex lock

See twmb#831 for more details.

Closes twmb#831.

* all: unlint what is now cropping up

gosec ones are delibate; govet ones are now randomly showing up (and
also deliberate)

* Merge pull request twmb#832 from twmb/831

kgo: fix potential deadlock when reaching max buffered (records|bytes)

* kgo: misc doc update

* kgo: ignore OOOSN where possible

See embedded comment. This preceeds handling KIP-890.

Closes twmb#805.

* kip-890 definitions

A bunch of version bumps to indicate TransactionAbortable is supported
as an error return.

* kip-848 more definitions

Added in Kafka 3.8:
* ListGroups.TypesFilter
* ConsumerGroupDescribe request

* kip-994 proto

Only ListTransactions was modified in 3.8

* sr: add StatusCode to ResponseError, and message if the body is empty

Closes twmb#819.

* generate / kmsg: update GroupMetadata{Key,Value}

Not much changed here.

Closes twmb#804.

* kgo: do not add all topics to internal tps map when regex consuming

The internal tps map is meant to be what we store topicPartitions in
that we are candidates to be consumed. This is filtered in
assignPartitions to only opt-in partitions that are actually being
consumed.

It's not BAD if we store all topics in that map, but it's not the
intent. The rest of the client worked fine even with extra topics in the
map.

When regex consuming, the metadata function previously put all topics
into the map always. Now, we move the regex evaluation logic --
duplicated in both the direct and group consumers -- into one function
and use that for filtering within metadata.

This introduces a required sequence of filtering THEN finding
assignments, which is fine / was the way things operated anyway.

Moving the filtering to metadata (only in the regex consuming logic)
means that we no longer store information for topics we are not
consuming. Indirectly, this fixes a bug where `GetConsumeTopics` would
always return ALL topics when regex consuming, because
`GetConsumeTopics` always just returned what was in the `tps` field.

This adds a test for the fixed behavior, as well as tests that NOT regex
consuming always returns all topics the user is interested in.

Closes twmb#810.

* Merge pull request twmb#833 from twmb/proto-3.8.0

Proto 3.8.0

* kgo: support Kafka 3.8's kip-890 modifications

STILL NOT ALL OF KIP-890, despite what I originally coded.
Kafka 3.8 only added support for TransactionAbortable.
Producers still need to send AddPartitionsToTxn.

* kversion: note kip-848 additions for kafka 3.8

* kversion: note kip-994 added in 3.8, finalize 3.8

* kversion: ignore API keys 74,75 when guessing versions

These are in Kraft only, and are two requests from two separate KIPs
that aren't fully supported yet. Not sure why only these two were
stabilized.

* README: note 3.8 KIPs

* kgo: bump kmsg pinned dep

* Merge pull request twmb#840 from twmb/kafka-3.8.0

Kafka 3.8.0

* Merge pull request twmb#760 from twmb/753

kgo: add AllowRebalance and CloseAllowingRebalance to GroupTransactSession

* Merge pull request twmb#789 from sbuliarca/errgroupsession-export-err

kgo: export the wrapped error from ErrGroupSession

* Merge pull request twmb#794 from twmb/790

kgo: add TopicID to the FetchTopic type

* Merge pull request twmb#814 from noamcohen97/new-offset-helper

kadm: add `NewOffsetFromRecord` helper function

* Merge pull request twmb#829 from andrewstucki/sr-client-opts

Add Opts method for sr.Client

* Merge pull request twmb#834 from twmb/805

kgo: ignore OOOSN where possible

* Merge pull request twmb#835 from twmb/819

sr: add StatusCode to ResponseError, and message if the body is empty

* Merge pull request twmb#838 from twmb/810

kgo: do not add all topics to internal tps map when regex consuming

* CHANGELOG: note incoming release

* Merge pull request twmb#841 from twmb/1.18-changelog

CHANGELOG: note incoming release

* pkg/sr: require go 1.22

No real reason, no real reason not to. This also allows one commit after
the top level franz tag.

* Merge pull request twmb#842 from twmb/sr-1.22

pkg/sr: require go 1.22

* pkg/kadm: bump go deps

* Merge pull request twmb#843 from twmb/kadm

pkg/kadm: bump go deps

---------

Signed-off-by: Mihai Todor <[email protected]>
Signed-off-by: Oleg Zaytsev <[email protected]>
Co-authored-by: Mihai Todor <[email protected]>
Co-authored-by: Noam Cohen <[email protected]>
Co-authored-by: David Grant <[email protected]>
Co-authored-by: Oleg Zaytsev <[email protected]>
Co-authored-by: Andrew Stucki <[email protected]>
Co-authored-by: Travis Bischel <[email protected]>
  • Loading branch information
7 people authored Oct 17, 2024
1 parent 782ba14 commit 2e98bd6
Show file tree
Hide file tree
Showing 39 changed files with 1,883 additions and 151 deletions.
3 changes: 2 additions & 1 deletion .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ linters:
- asciicheck
- bidichk
- bodyclose
- copyloopvar
- durationcheck
- exhaustive
- exportloopref
- gocritic
- gofmt
- gofumpt
Expand Down Expand Up @@ -74,6 +74,7 @@ linters-settings:
excludes:
- G104 # unhandled errors, we exclude for the same reason we do not use errcheck
- G404 # we want math/rand
- G115 # irrelevant flags in this repo

# Gocritic is a meta linter that has very good lints, and most of the
# experimental ones are very good too. We opt into everything, which helps
Expand Down
55 changes: 55 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,58 @@
v1.18.0
===

This release adds support for Kafka 3.7, adds a few community requested APIs,
some internal improvements, and fixes two bugs. One of the bugfixes is for a
deadlock; it is recommended to bump to this release to ensure you do not run
into the deadlock. The features in this release are relatively small.

This adds protocol support for [KIP-890][KIP-890] and [KIP-994][KIP-994], and
adds further protocol support for [KIP-848][KIP-848]. If you are using
transactions, you may see a new `kerr.TransactionAbortable` error, which
signals that your ongoing transaction should be aborted and will not be
successful if you try to commit it.

[KIP-890]: https://cwiki.apache.org/confluence/display/KAFKA/KIP-890%3A+Transactions+Server-Side+Defense
[KIP-994]: https://cwiki.apache.org/confluence/display/KAFKA/KIP-994%3A+Minor+Enhancements+to+ListTransactions+and+DescribeTransactions+APIs

Lastly, there have been a few improvements to `pkg/sr` that are not mentioned
in these changelog notes.

## Bug fixes

* If you canceled the context used while producing while your client was
at the maximum buffered records or bytes, it was possible to experience
deadlocks. This has been fixed. See #832 for more details.

* Previously, if using `GetConsumeTopics` while regex consuming, the function
would return all topics ever discovered. It now returns only the topics that
are being consumed.

## Improvements

* The client now internaly ignores OutOfOrderSequenceNumber errors that are
encountered when consuming _if possible_. If a producer produces very infrequently,
it is possible the broker forgets the producer by the next time the producer
produces. In this case, the producer receives an OutOfOrderSequenceNumber error.
The client now internally resets properly so that you do not see the error.

## Features

* `AllowRebalance` and `CloseAllowingRebalance` have been added to `GroupTransactSession`.
* The `FetchTopic` type now has includes the topic's `TopicID`.
* The `ErrGroupSession` internal error field is now public, allowing you to test how you handle the internal error.
* You may now receive a `kerr.TransactionAbortable` error from many functions while using transactions.

## Relevant commits

* [`0fd1959d`](https://github.com/twmb/franz-go/commit/0fd1959d) kgo: support Kafka 3.8's kip-890 modifications
* [`68163c55`](https://github.com/twmb/franz-go/commit/68163c55) **bugfix** kgo: do not add all topics to internal tps map when regex consuming
* [`3548d1f7`](https://github.com/twmb/franz-go/commit/3548d1f7) **improvement** kgo: ignore OOOSN where possible
* [`6a759401`](https://github.com/twmb/franz-go/commit/6a759401) **bugfix** kgo: fix potential deadlock when reaching max buffered (records|bytes)
* [`4bfb0c68`](https://github.com/twmb/franz-go/commit/4bfb0c68) **feature** kgo: add TopicID to the FetchTopic type
* [`06a9c47d`](https://github.com/twmb/franz-go/commit/06a9c47d) **feature** kgo: export the wrapped error from ErrGroupSession
* [`4affe8ef`](https://github.com/twmb/franz-go/commit/4affe8ef) **feature** kgo: add AllowRebalance and CloseAllowingRebalance to GroupTransactSession

v1.17.1
===

Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ This library attempts to provide an intuitive API while interacting with Kafka t

## Features

- Feature complete client (Kafka >= 0.8.0 through v3.4+)
- Feature complete client (Kafka >= 0.8.0 through v3.8+) _minus_ the next generation group protocol
- Full Exactly-Once-Semantics (EOS)
- Idempotent & transactional producers
- Simple (legacy) consumer
Expand Down Expand Up @@ -403,11 +403,13 @@ generation.
| [KIP-841](https://cwiki.apache.org/confluence/display/KAFKA/KIP-841%3A+Fenced+replicas+should+not+be+allowed+to+join+the+ISR+in+KRaft)`AlterPartition.TopicID` | 3.3 | Supported |
| [KIP-848](https://cwiki.apache.org/confluence/display/KAFKA/KIP-848%3A+The+Next+Generation+of+the+Consumer+Rebalance+Protocol) — Next gen consumer rebalance protocol | 3.7 | Unsupported (proto supported) |
| [KIP-866](https://cwiki.apache.org/confluence/display/KAFKA/KIP-866+ZooKeeper+to+KRaft+Migration) — ZK to Raft RPC changes | 3.4 | Supported |
| [KIP-890](https://cwiki.apache.org/confluence/display/KAFKA/KIP-890%3A+Transactions+Server-Side+Defense) — Transactions server side defense | 3.8 (partial) | Supported |
| [KIP-893](https://cwiki.apache.org/confluence/display/KAFKA/KIP-893%3A+The+Kafka+protocol+should+support+nullable+structs) — Nullable structs in the protocol | 3.5 | Supported |
| [KIP-899](https://cwiki.apache.org/confluence/display/KAFKA/KIP-899%3A+Allow+clients+to+rebootstrap) — Allow clients to rebootstrap | ? | Supported (`UpdateSeedBrokers`) |
| [KIP-903](https://cwiki.apache.org/confluence/display/KAFKA/KIP-903%3A+Replicas+with+stale+broker+epoch+should+not+be+allowed+to+join+the+ISR) — Stale broker epoch fencing | 3.5 | Supported (proto) |
| [KIP-919](https://cwiki.apache.org/confluence/display/KAFKA/KIP-919%3A+Allow+AdminClient+to+Talk+Directly+with+the+KRaft+Controller+Quorum+and+add+Controller+Registration) — Admin client talk to KRaft , Controller registration | 3.7 | Supported (proto) |
| [KIP-951](https://cwiki.apache.org/confluence/display/KAFKA/KIP-951%3A+Leader+discovery+optimisations+for+the+client) — Leader discovery optimizations | 3.7 | Supported |
| [KIP-994](https://cwiki.apache.org/confluence/display/KAFKA/KIP-994%3A+Minor+Enhancements+to+ListTransactions+and+DescribeTransactions+APIs) — List/Describe transactions enhancements | 3.8 (partial) | Supported |

Missing from above but included in librdkafka is:

Expand Down
2 changes: 1 addition & 1 deletion generate/definitions/00_produce
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
// Note that the special client ID "__admin_client" will allow you to produce
// records to internal topics. This is generally recommended if you want to
// break your Kafka cluster.
ProduceRequest => key 0, max version 10, flexible v9+
ProduceRequest => key 0, max version 11, flexible v9+
// TransactionID is the transaction ID to use for this request, allowing for
// exactly once semantics.
TransactionID: nullable-string // v3+
Expand Down
2 changes: 1 addition & 1 deletion generate/definitions/10_find_coordinator
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// This coordinator is different from the broker leader coordinator. This
// coordinator is the partition leader for the partition that is storing
// the group or transaction ID.
FindCoordinatorRequest => key 10, max version 4, flexible v3+
FindCoordinatorRequest => key 10, max version 5, flexible v3+
// CoordinatorKey is the ID to use for finding the coordinator. For groups,
// this is the group name, for transactional producer, this is the
// transactional ID.
Expand Down
7 changes: 6 additions & 1 deletion generate/definitions/16_list_groups
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
// ListGroupsRequest issues a request to list all groups.
//
// To list all groups in a cluster, this must be issued to every broker.
ListGroupsRequest => key 16, max version 4, flexible v3+
ListGroupsRequest => key 16, max version 5, flexible v3+
// StatesFilter, proposed in KIP-518 and introduced in Kafka 2.6.0,
// allows filtering groups by state, where a state is any of
// "Preparing", "PreparingRebalance", "CompletingRebalance", "Stable",
// "Dead", or "Empty". If empty, all groups are returned.
StatesFilter: [string] // v4+
// TypesFilter, part of KIP-848, filters the types of groups we want
// to list. If empty, all groups are returned.
TypesFilter: [string] // v5+

// ListGroupsResponse is returned from a ListGroupsRequest.
ListGroupsResponse =>
Expand All @@ -25,3 +28,5 @@ ListGroupsResponse =>
ProtocolType: string
// The group state.
GroupState: string // v4+
// The group type.
GroupType: string // v5+
2 changes: 1 addition & 1 deletion generate/definitions/22_init_producer_id
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
//
// Note that you do not need to go to a txn coordinator if you are initializing
// a producer id without a transactional id.
InitProducerIDRequest => key 22, max version 4, flexible v2+, txn coordinator
InitProducerIDRequest => key 22, max version 5, flexible v2+, txn coordinator
// TransactionalID is the ID to use for transactions if using transactions.
TransactionalID: nullable-string
// TransactionTimeoutMillis is how long a transaction is allowed before
Expand Down
2 changes: 1 addition & 1 deletion generate/definitions/24_add_partitions_to_txn
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
//
// Version 4 adds VerifyOnly field to check if partitions are already in
// transaction and adds support to batch multiple transactions.
AddPartitionsToTxnRequest => key 24, max version 4, flexible v3+, txn coordinator
AddPartitionsToTxnRequest => key 24, max version 5, flexible v3+, txn coordinator
// TransactionalID is the transactional ID to use for this request.
TransactionalID: string // v0-v3
// ProducerID is the producer ID of the client for this transactional ID
Expand Down
2 changes: 1 addition & 1 deletion generate/definitions/25_add_offsets_to_txn
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
// Internally, this request simply adds the __consumer_offsets topic as a
// partition for this transaction with AddPartitionsToTxn for the partition
// in that topic that contains the group.
AddOffsetsToTxnRequest => key 25, max version 3, flexible v3+, txn coordinator
AddOffsetsToTxnRequest => key 25, max version 4, flexible v3+, txn coordinator
// TransactionalID is the transactional ID to use for this request.
TransactionalID: string
// ProducerID is the producer ID of the client for this transactional ID
Expand Down
2 changes: 1 addition & 1 deletion generate/definitions/26_end_txn
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// EndTxnRequest ends a transaction. This should be called after
// TxnOffsetCommitRequest.
EndTxnRequest => key 26, max version 3, flexible v3+, txn coordinator
EndTxnRequest => key 26, max version 4, flexible v3+, txn coordinator
// TransactionalID is the transactional ID to use for this request.
TransactionalID: string
// ProducerID is the producer ID of the client for this transactional ID
Expand Down
2 changes: 1 addition & 1 deletion generate/definitions/28_txn_offset_commit
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// TxnOffsetCommitRequest sends offsets that are a part of this transaction
// to be committed once the transaction itself finishes. This effectively
// replaces OffsetCommitRequest for when using transactions.
TxnOffsetCommitRequest => key 28, max version 3, flexible v3+, group coordinator
TxnOffsetCommitRequest => key 28, max version 4, flexible v3+, group coordinator
// TransactionalID is the transactional ID to use for this request.
TransactionalID: string
// Group is the group consumed in this transaction and to be used for
Expand Down
6 changes: 5 additions & 1 deletion generate/definitions/66_list_transactions
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,12 @@ ListTransactionsRequest => key 66, max version 0, flexible v0+
StateFilters: [string]
// The producer IDs to filter by: if empty, all transactions will be
// returned; if non-empty, only transactions which match one of the filtered
// producer IDs will be returned
// producer IDs will be returned.
ProducerIDFilters: [int64]
// Duration (in millis) to filter by: if < 0, all transactions will be
// returned; otherwise, only transactions running longer than this duration
// will be returned.
DurationFilterMillis: int64(-1) // v1+

// ListTransactionsResponse is a response to a ListTransactionsRequest.
ListTransactionsResponse =>
Expand Down
67 changes: 67 additions & 0 deletions generate/definitions/69_consumer_group_describe
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
// Assignment contains consumer group assignments.
Assignment => not top level, no encoding, flexible v0+
// The topics & partitions assigned to the member.
TopicPartitions: [=>]
TopicID: uuid
Topic: string
Partitions: [int32]

// ConsumerGroupDescribe is a part of KIP-848; this is the
// "next generation" equivalent of DescribeGroups.
ConsumerGroupDescribeRequest => key 69, max version 0, flexible v0+
// The IDs of the groups to describe.
Groups: [string]
// Whether to include authorized operations.
IncludeAuthorizedOperations: bool

// ConsumerGroupDescribeResponse is returned from a ConsumerGroupDescribeRequest.
ConsumerGroupDescribeResponse =>
ThrottleMillis
Groups: [=>]
// ErrorCode is the error for this response.
//
// Supported errors:
// - GROUP_AUTHORIZATION_FAILED (version 0+)
// - NOT_COORDINATOR (version 0+)
// - COORDINATOR_NOT_AVAILABLE (version 0+)
// - COORDINATOR_LOAD_IN_PROGRESS (version 0+)
// - INVALID_REQUEST (version 0+)
// - INVALID_GROUP_ID (version 0+)
// - GROUP_ID_NOT_FOUND (version 0+)
ErrorCode: int16
// A supplementary message if this errored.
ErrorMessage: nullable-string
// The group ID.
Group: string
// The group state.
State: string
// The group epoch.
Epoch: int32
// The assignment epoch.
AssignmentEpoch: int32
// The selected assignor.
AssignorName: string
// Members of the group.
Members: [=>]
// The member ID.
MemberID: string
// The member instance ID, if any.
InstanceID: nullable-string
// The member rack ID, if any.
RackID: nullable-string
// The current member epoch.
MemberEpoch: int32
// The client ID.
ClientID: string
// The client host.
ClientHost: string
// The subscribed topic names.
SubscribedTopics: [string]
// The subscribed topic regex, if any.
SubscribedTopicRegex: nullable-string
// The current assignment.
Assignment: Assignment
// The target assignment.
TargetAssignment: Assignment
// 32 bit bitfield representing authorized operations for the group.
AuthorizedOperations: int32(-2147483648)
6 changes: 3 additions & 3 deletions generate/definitions/misc
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ GroupMetadataKey => not top level, with version field
//
// KAFKA-7862 commit 0f995ba6be, proposed in KIP-345 and included in 2.3.0
// released version 3.
GroupMetadataValue => not top level, with version field
GroupMetadataValue => not top level, with version field, flexible v4+
// Version is the version of this value.
Version: int16
// ProtocolType is the type of protocol being used for the group
Expand All @@ -287,7 +287,7 @@ GroupMetadataValue => not top level, with version field
Leader: nullable-string
// CurrentStateTimestamp is the timestamp for this state of the group
// (stable, etc.).
CurrentStateTimestamp: int64 // v2+
CurrentStateTimestamp: int64(-1) // v2+
// Members are the group members.
Members: [=>]
// MemberID is a group member.
Expand All @@ -299,7 +299,7 @@ GroupMetadataValue => not top level, with version field
// ClientHost is the hostname of this group member.
ClientHost: string
// RebalanceTimeoutMillis is the rebalance timeout of this group member.
RebalanceTimeoutMillis: int32 // v1+
RebalanceTimeoutMillis: int32(-1) // v1+
// SessionTimeoutMillis is the session timeout of this group member.
SessionTimeoutMillis: int32
// Subscription is the subscription of this group member.
Expand Down
6 changes: 3 additions & 3 deletions generate/gen.go
Original file line number Diff line number Diff line change
Expand Up @@ -625,7 +625,7 @@ func (s Struct) WriteDefault(l *LineWriter) {

func (s Struct) WriteDefn(l *LineWriter) {
if s.Comment != "" {
l.Write(s.Comment)
l.Write(s.Comment) //nolint:govet // ...
}
l.Write("type %s struct {", s.Name)
if s.TopLevel {
Expand Down Expand Up @@ -822,15 +822,15 @@ func (s Struct) WriteNewPtrFunc(l *LineWriter) {

func (e Enum) WriteDefn(l *LineWriter) {
if e.Comment != "" {
l.Write(e.Comment)
l.Write(e.Comment) //nolint:govet // ...
l.Write("// ")
}
l.Write("// Possible values and their meanings:")
l.Write("// ")
for _, v := range e.Values {
l.Write("// * %d (%s)", v.Value, v.Word)
if len(v.Comment) > 0 {
l.Write(v.Comment)
l.Write(v.Comment) //nolint:govet // ...
}
l.Write("//")
}
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ go 1.21
require (
github.com/klauspost/compress v1.17.8
github.com/pierrec/lz4/v4 v4.1.21
github.com/twmb/franz-go/pkg/kmsg v1.8.0
github.com/twmb/franz-go/pkg/kmsg v1.9.0
golang.org/x/crypto v0.23.0
)

Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ github.com/klauspost/compress v1.17.8 h1:YcnTYrq7MikUT7k0Yb5eceMmALQPYBW/Xltxn0N
github.com/klauspost/compress v1.17.8/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ=
github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
github.com/twmb/franz-go/pkg/kmsg v1.8.0 h1:lAQB9Z3aMrIP9qF9288XcFf/ccaSxEitNA1CDTEIeTA=
github.com/twmb/franz-go/pkg/kmsg v1.8.0/go.mod h1:HzYEb8G3uu5XevZbtU0dVbkphaKTHk0X68N5ka4q6mU=
github.com/twmb/franz-go/pkg/kmsg v1.9.0 h1:JojYUph2TKAau6SBtErXpXGC7E3gg4vGZMv9xFU/B6M=
github.com/twmb/franz-go/pkg/kmsg v1.9.0/go.mod h1:CMbfazviCyY6HM0SXuG5t9vOwYDHRCSrJJyBAe5paqg=
golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI=
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
8 changes: 4 additions & 4 deletions pkg/kadm/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ go 1.21
toolchain go1.22.0

require (
github.com/twmb/franz-go v1.16.1
github.com/twmb/franz-go/pkg/kmsg v1.8.0
golang.org/x/crypto v0.23.0
github.com/twmb/franz-go v1.18.0
github.com/twmb/franz-go/pkg/kmsg v1.9.0
golang.org/x/crypto v0.28.0
)

require (
github.com/klauspost/compress v1.17.8 // indirect
github.com/klauspost/compress v1.17.11 // indirect
github.com/pierrec/lz4/v4 v4.1.21 // indirect
)
16 changes: 8 additions & 8 deletions pkg/kadm/go.sum
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
github.com/klauspost/compress v1.17.8 h1:YcnTYrq7MikUT7k0Yb5eceMmALQPYBW/Xltxn0NAMnU=
github.com/klauspost/compress v1.17.8/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc=
github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0=
github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ=
github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
github.com/twmb/franz-go v1.16.1 h1:rpWc7fB9jd7TgmCyfxzenBI+QbgS8ZfJOUQE+tzPtbE=
github.com/twmb/franz-go v1.16.1/go.mod h1:/pER254UPPGp/4WfGqRi+SIRGE50RSQzVubQp6+N4FA=
github.com/twmb/franz-go/pkg/kmsg v1.8.0 h1:lAQB9Z3aMrIP9qF9288XcFf/ccaSxEitNA1CDTEIeTA=
github.com/twmb/franz-go/pkg/kmsg v1.8.0/go.mod h1:HzYEb8G3uu5XevZbtU0dVbkphaKTHk0X68N5ka4q6mU=
golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI=
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
github.com/twmb/franz-go v1.18.0 h1:25FjMZfdozBywVX+5xrWC2W+W76i0xykKjTdEeD2ejw=
github.com/twmb/franz-go v1.18.0/go.mod h1:zXCGy74M0p5FbXsLeASdyvfLFsBvTubVqctIaa5wQ+I=
github.com/twmb/franz-go/pkg/kmsg v1.9.0 h1:JojYUph2TKAau6SBtErXpXGC7E3gg4vGZMv9xFU/B6M=
github.com/twmb/franz-go/pkg/kmsg v1.9.0/go.mod h1:CMbfazviCyY6HM0SXuG5t9vOwYDHRCSrJJyBAe5paqg=
golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw=
golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U=
Loading

0 comments on commit 2e98bd6

Please sign in to comment.