This is an automated email from the ASF dual-hosted git repository.
numinnex pushed a change to branch kafka_static_membership
in repository https://gitbox.apache.org/repos/asf/iggy.git
from 64d98d6c7 feat(gateways): honour Kafka static group membership
add 4c53f2a3b fix(ci,php): survive the zip crate mass yank (#4574)
add 8200eca06 chore(deps): Bump the web group across 1 directory with 7
updates (#4567)
add b76fa267b chore(deps): Bump the node group across 2 directories with 4
updates (#4568)
add e86560106 chore(deps): Bump rules_cc from 0.2.25 to 0.2.26 in
/foreign/cpp in the cpp group across 1 directory (#4566)
add c95797383 perf(ci): share covered runtimes across test jobs (#4560)
add e9096ed00 feat(gateways): add TLS listeners and mTLS client identities
to Kafka gateway (#4535)
add 29365392f fix(server)!: derive session timeout from heartbeat.interval
(#4562)
add 83b3664a1 fix(server)!: bind grants and HTTP tokens to the objects
they name (#4550)
add d1fe677db chore(csharp): remove FluentAssertions from tests (#4578)
add d201cdc95 feat(gateways): answer Kafka ListOffsets by timestamp and
MAX_TIMESTAMP (#4545)
add 9d384d638 test(cluster): port the chaos harness scenarios into the
chaos monkey (#4557)
add 7a15a0d6d test(gateways): cover Kafka produce and consume over SASL
through the bridge (#4539)
add 28bef8f23 feat(connectors): add MQTT source connector (#4303)
add 5d02e19eb chore(deps): Bump the csharp group with 6 updates (#4586)
add c37a94daf feat(sdk)!: activate partition routing and recovery (#4561)
add c5709f520 chore(rust): bump toolchain to 1.99.1 (#4591)
add cd5f531a9 feat(python): return identity details from password and PAT
login (#4276)
add 49a831f38 fix(server)!: drop generated root passwords, journal root,
gate snapshots (#4585)
add 64ce664bf feat(gateways): auto-create Kafka topics on first use (#4582)
add c729a0e34 chore(ci): group Dependabot security updates per ecosystem
(#4541)
add d9c8a50d2 fix(connectors): exclude key and version from connector env
mappings (#4486)
add e7bd30d0b ci: scope .config/** to the Rust test lanes instead of
rust-workspace (#4556)
add 8b3b54c55 fix(sdk): support IPv6 addresses in connection strings
(#4579)
add 0d4fa738a feat(cli): display topic partitions and options in topic get
(#4558)
add a9d4f9d30 merge master
No new revisions were added by this update.
Summary of changes:
.devcontainer/Dockerfile | 2 +-
.github/actions/bdd/pre-merge/action.yml | 108 +
.github/actions/cpp-bazel/pre-merge/action.yml | 9 +-
.github/actions/csharp-dotnet/pre-merge/action.yml | 7 +-
.github/actions/go/pre-merge/action.yml | 12 +-
.github/actions/java-gradle/pre-merge/action.yml | 8 +-
.github/actions/node-npm/pre-merge/action.yml | 8 +-
.github/actions/php/pre-merge/action.yml | 10 +-
.../actions/python-maturin/pre-merge/action.yml | 9 +-
.github/actions/rust/pre-merge/action.yml | 105 +-
.github/actions/swift/pre-merge/action.yml | 20 +-
.github/actions/utils/download-runtime/action.yml | 59 +
.github/actions/utils/server-start/action.yml | 53 +-
.github/config/components.yml | 7 +-
.github/dependabot.yml | 40 +
.github/workflows/_build_ci_artifacts.yml | 69 +
.github/workflows/_detect.yml | 29 +-
.github/workflows/_rust.yml | 111 +-
.github/workflows/_rust_tests.yml | 90 +
.github/workflows/_test.yml | 114 +-
.github/workflows/_test_bdd.yml | 119 +-
.github/workflows/_test_examples.yml | 101 +-
.github/workflows/coverage-baseline.yml | 175 +-
.github/workflows/pre-merge.yml | 318 +-
.typos.toml | 3 +
AGENTS.md | 4 +-
Cargo.lock | 98 +-
Cargo.toml | 8 +
Dockerfile | 2 +-
README.md | 10 +-
.../features/step_definitions/background_steps.cpp | 3 +-
.../features/step_definitions/messaging_steps.cpp | 13 +-
.../step_definitions/raw_command_steps.cpp | 3 +-
bdd/docker-compose.cluster.yml | 5 +-
bdd/go/go.mod | 1 -
bdd/go/go.sum | 2 -
bdd/php/Dockerfile | 4 +-
bdd/python/Dockerfile | 2 +-
bdd/rust/Dockerfile | 2 +-
core/ai/mcp/Dockerfile | 2 +-
core/ai/mcp/README.md | 14 +
core/ai/mcp/src/main.rs | 11 +
core/ai/mcp/src/service/mod.rs | 86 +-
core/ai/mcp/src/service/requests.rs | 8 +
core/bench/dashboard/server/Dockerfile | 2 +-
core/binary_protocol/src/codes.rs | 13 +-
core/binary_protocol/src/consensus/header.rs | 72 +-
core/binary_protocol/src/consensus/reply_result.rs | 37 +-
core/binary_protocol/src/dispatch.rs | 8 +-
.../src/requests/users/login_register.rs | 58 +-
core/binary_protocol/src/responses/messages/mod.rs | 2 -
.../src/responses/messages/poll_routing.rs | 104 -
core/cli/src/commands/binary_topics/get_topic.rs | 298 +-
core/common/src/lib.rs | 7 +
core/common/src/traits/binary_impls/messages.rs | 409 +-
core/common/src/traits/binary_impls/mod.rs | 12 +-
.../traits/binary_impls/personal_access_tokens.rs | 52 +-
core/common/src/traits/binary_impls/users.rs | 63 +-
core/common/src/traits/binary_transport.rs | 201 +-
core/common/src/traits/client.rs | 51 +-
core/common/src/traits/message_client.rs | 4 +-
core/common/src/traits/mod.rs | 2 +-
.../src/traits/personal_access_token_client.rs | 4 +
core/common/src/traits/user_client.rs | 10 +
.../configuration/auth_config/connection_string.rs | 169 +-
core/common/src/types/configuration/mod.rs | 1 +
.../configuration/pending_operations_config.rs | 145 +
.../quic_config/quic_client_config.rs | 6 +-
.../quic_config/quic_client_config_builder.rs | 14 +-
.../quic_config/quic_client_reconnection_config.rs | 10 +-
.../quic_config/quic_connection_string_options.rs | 23 +-
.../configuration/tcp_config/tcp_client_config.rs | 6 +-
.../tcp_config/tcp_client_config_builder.rs | 14 +-
.../tcp_config/tcp_client_reconnection_config.rs | 46 +-
.../tcp_config/tcp_connection_string_options.rs | 23 +-
.../websocket_config/websocket_client_config.rs | 8 +-
.../websocket_client_config_builder.rs | 14 +-
.../websocket_client_reconnection_config.rs | 18 +-
.../websocket_connection_string_options.rs | 18 +-
core/common/src/types/identifier/mod.rs | 12 +
.../src/types/permissions/permissions_global.rs | 6 +-
core/configs/src/common/defaults.rs | 5 -
core/configs/src/common/displays.rs | 4 +-
core/configs/src/common/http.rs | 3 +-
core/configs/src/common/server.rs | 22 +-
core/configs/src/configs_impl/file_provider.rs | 17 +
.../configs/src/configs_impl/typed_env_provider.rs | 33 +-
core/configs/src/server_config/server.rs | 8 +
core/configs/src/server_config/validators.rs | 87 +-
core/connectors/runtime/Dockerfile | 2 +-
.../example_config/connectors/mqtt_source.toml | 73 +
core/connectors/runtime/src/configs/connectors.rs | 26 +
.../src/configs/connectors/local_provider.rs | 74 +
core/connectors/runtime/src/main.rs | 3 +-
core/connectors/runtime/src/manager/source.rs | 3 +-
core/connectors/runtime/src/source.rs | 360 +-
core/connectors/sdk/README.md | 2 +
core/connectors/sources/README.md | 1 +
.../mqtt_source}/Cargo.toml | 22 +-
core/connectors/sources/mqtt_source/README.md | 429 ++
core/connectors/sources/mqtt_source/config.toml | 70 +
core/connectors/sources/mqtt_source/src/driver.rs | 1527 +++++++
core/connectors/sources/mqtt_source/src/lib.rs | 1413 +++++++
core/consensus/src/client_table.rs | 64 +-
core/consensus/src/metadata_helpers.rs | 118 +-
core/consensus/src/plane_helpers.rs | 14 +-
core/integration/Cargo.toml | 1 +
core/integration/src/harness/config/jwks.rs | 4 +
core/integration/src/harness/config/mod.rs | 2 +-
core/integration/src/harness/config/server.rs | 2 +
core/integration/src/harness/disk.rs | 214 +-
core/integration/src/harness/handle/common.rs | 66 +-
.../src/harness/handle/connectors_runtime.rs | 2 +-
core/integration/src/harness/handle/mcp.rs | 2 +-
core/integration/src/harness/handle/mod.rs | 2 +-
core/integration/src/harness/handle/server.rs | 78 +-
core/integration/src/harness/mod.rs | 2 +
.../src/harness/orchestrator/builder.rs | 86 +-
.../src/harness/orchestrator/harness.rs | 73 +-
core/integration/src/harness/peer_relay.rs | 356 ++
.../tests/cli/topic/test_topic_get_command.rs | 347 +-
core/integration/tests/cli/user/common.rs | 38 +-
.../tests/cli/user/test_user_create_command.rs | 6 +-
.../tests/cli/user/test_user_get_command.rs | 2 +
.../cli/user/test_user_permissions_command.rs | 3 +-
core/integration/tests/cluster/chaos_monkey.rs | 2443 ++++++++++--
.../tests/cluster/client_table_restart.rs | 59 +-
.../tests/cluster/crash_recovery_corruption.rs | 6 +-
.../tests/cluster/failover_client_continuity.rs | 62 +-
.../tests/cluster/fast_primary_rejoin.rs | 28 +-
core/integration/tests/cluster/mod.rs | 1 +
.../tests/cluster/partition_primary_routing.rs | 329 +-
core/integration/tests/cluster/root_credentials.rs | 112 +
core/integration/tests/connectors/fixtures/mod.rs | 6 +
.../tests/connectors/fixtures/mqtt/container.rs | 267 ++
.../tests/connectors/fixtures/mqtt/mod.rs | 404 ++
.../tests/connectors/fixtures/mqtt/publisher.rs | 417 ++
core/integration/tests/connectors/mod.rs | 1 +
.../tests/connectors/{s3 => mqtt}/mod.rs | 2 +-
.../tests/connectors/mqtt/mqtt_source.rs | 741 ++++
.../{doris/sink.toml => mqtt/source.toml} | 2 +-
.../data_integrity/verify_after_server_restart.rs | 8 +-
.../verify_consumer_group_partition_assignment.rs | 65 +-
core/integration/tests/mcp/mod.rs | 35 +-
core/integration/tests/sdk/consumer_group.rs | 4 +-
.../tests/sdk/consumer_group_membership.rs | 7 +-
core/integration/tests/server/a2a_jwt/config.toml | 2 +-
core/integration/tests/server/a2a_jwt/jwt_tests.rs | 137 +-
core/integration/tests/server/cg.rs | 11 +-
core/integration/tests/server/http_client.rs | 11 +
core/integration/tests/server/http_rbac.rs | 184 +
core/integration/tests/server/http_vsr.rs | 17 -
.../server/scenarios/authentication_scenario.rs | 37 +-
.../tests/server/scenarios/permissions_scenario.rs | 182 +-
.../scenarios/reconnect_after_restart_scenario.rs | 1 -
.../stale_client_consumer_group_scenario.rs | 138 +-
core/integration/tests/server/unknown_code_vsr.rs | 22 +-
core/journal/src/prepare_journal.rs | 174 +-
core/metadata/src/impls/metadata.rs | 1193 +++++-
core/metadata/src/impls/recovery.rs | 745 +++-
.../src/permissioner/permissioner_rules/system.rs | 75 +-
core/metadata/src/stm/authz.rs | 478 ++-
core/metadata/src/stm/result.rs | 32 +
core/metadata/src/stm/stream.rs | 17 +-
core/metadata/src/stm/user.rs | 480 ++-
core/partitions/src/iggy_partition.rs | 13 +-
core/sdk/README.md | 69 +-
core/sdk/src/binary/mod.rs | 190 +
core/sdk/src/client_provider.rs | 3 +
core/sdk/src/client_wrappers/binary_client.rs | 17 -
core/sdk/src/client_wrappers/client_wrapper.rs | 61 +
core/sdk/src/client_wrappers/connection_info.rs | 6 +-
core/sdk/src/clients/binary_cluster.rs | 2 +-
core/sdk/src/clients/binary_consumer_group.rs | 38 +-
core/sdk/src/clients/binary_consumer_offset.rs | 24 +-
core/sdk/src/clients/binary_message.rs | 39 +-
core/sdk/src/clients/binary_partitions.rs | 12 +-
.../src/clients/binary_personal_access_tokens.rs | 54 +-
core/sdk/src/clients/binary_segments.rs | 6 +-
core/sdk/src/clients/binary_streams.rs | 14 +-
core/sdk/src/clients/binary_system.rs | 18 +-
core/sdk/src/clients/binary_topics.rs | 26 +-
core/sdk/src/clients/binary_users.rs | 71 +-
core/sdk/src/clients/client.rs | 201 +-
core/sdk/src/clients/client_builder.rs | 22 +-
core/sdk/src/clients/consumer.rs | 1242 ++++--
core/sdk/src/clients/mod.rs | 48 +-
core/sdk/src/clients/producer.rs | 847 ++--
core/sdk/src/clients/producer_builder.rs | 22 +-
core/sdk/src/clients/producer_config.rs | 2 +-
core/sdk/src/clients/producer_error_callback.rs | 6 +
core/sdk/src/consumer_ext/consumer_message_ext.rs | 4 +
core/sdk/src/driver.rs | 1435 ++++++-
core/sdk/src/driver/poll_router.rs | 1572 --------
core/sdk/src/driver/route_cache.rs | 50 +
core/sdk/src/leader_aware.rs | 518 ---
core/sdk/src/lib.rs | 1 -
core/sdk/src/links/connect.rs | 254 +-
core/sdk/src/links/dial.rs | 180 +-
core/sdk/src/links/fake_cluster.rs | 169 +-
core/sdk/src/links/mod.rs | 139 +-
core/sdk/src/links/mux.rs | 24 +-
core/sdk/src/links/quic.rs | 48 +-
core/sdk/src/links/replicas.rs | 751 +++-
core/sdk/src/prelude.rs | 18 +-
core/sdk/src/quic/quic_client.rs | 2094 +---------
core/sdk/src/session_owner.rs | 122 +-
core/sdk/src/session_owner/lanes.rs | 682 +++-
core/sdk/src/session_owner/pending.rs | 151 +
.../stream_builder/build/build_iggy_producer.rs | 3 -
.../stream_builder/config/config_iggy_producer.rs | 42 +-
core/sdk/src/tcp/tcp_client.rs | 4196 +++-----------------
core/sdk/src/vsr.rs | 533 +--
core/sdk/src/websocket/websocket_client.rs | 2436 +-----------
core/server/Cargo.toml | 2 +
core/server/Dockerfile | 2 +-
core/server/README.md | 45 +-
core/server/config.toml | 58 +-
core/server/src/args.rs | 16 +-
core/server/src/boot/credentials.rs | 523 ++-
core/server/src/boot/handoff.rs | 3 +
core/server/src/boot/listeners.rs | 30 +-
core/server/src/boot/mod.rs | 59 +-
core/server/src/boot/recovery.rs | 1 -
core/server/src/consumer_group/liveness.rs | 10 +-
core/server/src/dispatch/authz.rs | 33 +-
core/server/src/dispatch/failure.rs | 3 -
core/server/src/dispatch/host.rs | 14 +-
core/server/src/dispatch/mod.rs | 935 ++++-
core/server/src/dispatch/partition.rs | 560 ++-
core/server/src/dispatch/reads.rs | 320 +-
core/server/src/dispatch/session_ops.rs | 200 +-
core/server/src/dispatch/submit.rs | 10 +-
core/server/src/dispatch/test_support.rs | 48 +-
core/server/src/http.rs | 2 -
core/server/src/http/extractor.rs | 98 +-
core/server/src/http/forward.rs | 2 +-
core/server/src/http/handlers.rs | 136 +-
core/server/src/http/jwt.rs | 274 +-
core/server/src/http/reads.rs | 636 ++-
core/server/src/http/reply.rs | 14 +
core/server/src/http/session.rs | 3 +-
core/server/src/http/state.rs | 140 +-
core/server/src/http/submit.rs | 23 +-
core/server/src/main.rs | 21 +-
core/server/src/partition_reconciler.rs | 11 +-
core/server/src/pat.rs | 137 +-
core/server/src/reply_frame.rs | 45 +-
core/server/src/rewrite.rs | 42 +-
core/server/src/server_error.rs | 52 +-
core/server/src/session_manager.rs | 28 +-
core/server/src/snapshot.rs | 51 +-
core/server/tests/sdk_e2e.rs | 507 ++-
core/shard/Cargo.toml | 1 +
core/shard/src/lib.rs | 20 +-
core/shard/src/poll.rs | 107 +-
core/shard/src/poll/completion.rs | 6 +-
core/shard/src/poll/completion_tests.rs | 204 +-
core/simulator/src/client.rs | 19 +-
core/simulator/src/deps.rs | 109 +-
core/simulator/src/lib.rs | 573 ++-
core/simulator/src/replica.rs | 46 +-
core/simulator/src/workload/mod.rs | 36 +
core/simulator/src/workload/ops/create_user.rs | 15 +-
.../src/workload/ops/update_permissions.rs | 5 +-
docker-compose.yml | 9 +
examples/go/go.mod | 1 -
examples/go/go.sum | 2 -
examples/java/README.md | 2 +-
examples/node/package-lock.json | 14 +-
examples/node/package.json | 2 +-
examples/python/README.md | 2 +-
examples/python/high-level/background_producer.py | 2 -
examples/python/high-level/producer.py | 2 -
examples/rust/README.md | 2 +-
.../stream-builder/stream-producer-config/main.rs | 5 -
foreign/cpp/MODULE.bazel | 4 +-
foreign/cpp/MODULE.bazel.lock | 6 +-
foreign/cpp/README.md | 74 +
foreign/cpp/include/iggy.hpp | 133 +-
foreign/cpp/src/client.cpp | 114 +-
foreign/cpp/src/client.rs | 235 +-
foreign/cpp/src/lib.rs | 82 +-
foreign/cpp/tests/e2e/client.cpp | 410 +-
foreign/cpp/tests/e2e/consumer_group.cpp | 100 +-
foreign/cpp/tests/e2e/message.cpp | 401 +-
foreign/cpp/tests/e2e/stream.cpp | 6 +-
foreign/cpp/tests/e2e/test_helpers.hpp | 37 +-
foreign/cpp/tests/e2e/topic.cpp | 10 +-
foreign/cpp/tests/unit/unit_tests.cpp | 63 +
foreign/csharp/Directory.Packages.props | 13 +-
.../StepDefinitions/LeaderRedirectionSteps.cs | 21 +-
.../Fixtures/IggyServerFixture.cs | 21 +-
.../Iggy_SDK.Tests.Integration/HeartbeatTests.cs | 40 +-
.../IggyTlsConnectionTests.cs | 9 +-
.../IggyTypedConsumerTests.cs | 20 +-
.../Iggy_SDK.Tests.Integration/UsersTests.cs | 95 +-
.../Iggy_SDK/Configuration/ConnectionString.cs | 25 +-
.../Configuration/IggyClientConfigurator.cs | 34 +-
.../Iggy_SDK/Configuration/ReconnectionSettings.cs | 4 +-
.../Iggy_SDK/Consumers/IggyConsumer.Rented.cs | 4 +-
foreign/csharp/Iggy_SDK/Consumers/IggyConsumer.cs | 79 +-
.../Exceptions/IggyInvalidStatusCodeException.cs | 3 +
...ctedException.cs => VsrLaneBlockedException.cs} | 11 +-
...tion.cs => VsrOperationNotRetainedException.cs} | 12 +-
.../VsrRequestOutcomeUnknownException.cs | 8 +-
.../Exceptions/VsrSessionEvictedException.cs | 11 +-
foreign/csharp/Iggy_SDK/IggyClient/IIggyClient.cs | 26 +
.../TcpMessageStream.PollRouting.cs | 796 ++--
.../TcpMessageStream.ReplicaLinks.cs | 552 +++
.../Implementations/TcpMessageStream.Vsr.cs | 573 +--
.../IggyClient/Implementations/TcpMessageStream.cs | 587 +--
.../Publishers/BackgroundMessageProcessor.cs | 80 +-
foreign/csharp/Iggy_SDK/Utils/CommandCodes.cs | 5 +-
foreign/csharp/Iggy_SDK/Vsr/ConsensusSession.cs | 15 +-
.../Iggy_SDK/Vsr/ConsumerGroupClientState.cs | 3 +-
foreign/csharp/Iggy_SDK/Vsr/MutationLanes.cs | 466 +++
foreign/csharp/Iggy_SDK/Vsr/VsrConnection.cs | 684 ++--
foreign/csharp/Iggy_SDK/Vsr/VsrError.cs | 5 +
foreign/csharp/Iggy_SDK/Vsr/VsrHeader.cs | 11 +
foreign/csharp/Iggy_SDK/Vsr/VsrOperation.cs | 4 +-
foreign/csharp/Iggy_SDK/Vsr/VsrReplyDecoder.cs | 15 +-
.../ClientTests/ConnectionStringTests.cs | 72 +
.../ConsumerTests/PartitionIncarnationTests.cs | 322 ++
.../ConsumerTests/RentedConsumerTests.cs | 83 +
.../csharp/Iggy_SDK_Tests/Iggy_SDK_Tests.csproj | 1 -
.../PublisherTests/IggyTypedPublisherTests.cs | 68 +-
.../Iggy_SDK_Tests/UtilityTests/SendUnitTests.cs | 175 +
.../VsrTests/ConsensusSessionTests.cs | 26 +-
.../VsrTests/EndpointFailoverTests.cs | 703 +++-
foreign/csharp/Iggy_SDK_Tests/VsrTests/MockNode.cs | 55 +-
.../Iggy_SDK_Tests/VsrTests/MutationLaneTests.cs | 407 ++
.../Iggy_SDK_Tests/VsrTests/NativeRecoveryTests.cs | 1209 ++++++
.../Iggy_SDK_Tests/VsrTests/PrimaryPollingTests.cs | 1201 +++++-
.../Iggy_SDK_Tests/VsrTests/ReplicaLinkTests.cs | 325 ++
.../Iggy_SDK_Tests/VsrTests/VsrHeaderTests.cs | 2 +-
.../VsrTests/VsrMultiplexingTests.cs | 380 ++
.../VsrTests/VsrReplyDecoderTests.cs | 58 +
foreign/csharp/README.md | 114 +-
foreign/go/README.md | 121 +-
foreign/go/client/iggy_client.go | 60 +-
foreign/go/client/iggy_client_test.go | 15 +-
foreign/go/client/tcp/cluster.go | 60 +-
foreign/go/client/tcp/tcp_connect_test.go | 311 +-
.../go/client/tcp/tcp_consumer_group_management.go | 43 +-
foreign/go/client/tcp/tcp_core.go | 1370 +------
foreign/go/client/tcp/tcp_core_review_test.go | 52 +-
foreign/go/client/tcp/tcp_core_test.go | 283 +-
foreign/go/client/tcp/tcp_driver.go | 593 +++
foreign/go/client/tcp/tcp_driver_test.go | 769 ++++
foreign/go/client/tcp/tcp_failover_test.go | 574 +--
foreign/go/client/tcp/tcp_group_polling.go | 15 +-
foreign/go/client/tcp/tcp_group_polling_test.go | 109 +
foreign/go/client/tcp/tcp_link.go | 232 ++
foreign/go/client/tcp/tcp_link_test.go | 237 ++
foreign/go/client/tcp/tcp_messaging.go | 59 +-
foreign/go/client/tcp/tcp_pending.go | 407 ++
foreign/go/client/tcp/tcp_poll_routing.go | 648 +--
foreign/go/client/tcp/tcp_poll_routing_test.go | 734 ++--
foreign/go/client/tcp/tcp_replicas.go | 608 +++
foreign/go/client/tcp/tcp_replicas_test.go | 641 +++
.../go/client/tcp/tcp_session_credentials_test.go | 201 +
foreign/go/client/tcp/tcp_session_management.go | 616 ++-
foreign/go/client/tcp/tcp_testing_test.go | 118 +-
foreign/go/client/tcp/tcp_topic_cache.go | 14 +
foreign/go/client/tcp/tcp_topic_cache_test.go | 88 +-
foreign/go/client/tcp/tcp_user_management.go | 73 +-
foreign/go/contracts/client.go | 20 +-
foreign/go/errors/errors.yaml | 18 +
foreign/go/errors/errors_gen.go | 57 +
foreign/go/go.mod | 1 -
foreign/go/go.sum | 2 -
foreign/go/internal/command/code.go | 104 +-
foreign/go/internal/vsr/envelope.go | 21 +-
foreign/go/internal/vsr/envelope_test.go | 8 +
foreign/go/internal/vsr/header.go | 29 +-
foreign/go/internal/vsr/reply.go | 58 +-
foreign/go/internal/vsr/reply_test.go | 56 +
foreign/go/internal/vsr/session.go | 13 +-
foreign/go/internal/vsr/session_test.go | 14 +-
foreign/java/README.md | 89 +-
.../iggy/client/async/tcp/AsyncIggyTcpClient.java | 528 ++-
.../async/tcp/AsyncIggyTcpClientBuilder.java | 28 +-
.../iggy/client/async/tcp/AsyncTcpConnection.java | 830 +++-
.../client/async/tcp/ConsumerGroupsTcpClient.java | 53 +-
.../client/async/tcp/ConsumerOffsetsTcpClient.java | 11 +-
.../iggy/client/async/tcp/LeaderAwareness.java | 22 +-
.../iggy/client/async/tcp/LoginRoutingHook.java | 9 +-
.../iggy/client/async/tcp/MessagesTcpClient.java | 276 +-
.../iggy/client/async/tcp/PartitionsTcpClient.java | 22 +-
.../async/tcp/PersonalAccessTokensTcpClient.java | 25 +-
.../apache/iggy/client/async/tcp/PollRouter.java | 971 +++--
.../iggy/client/async/tcp/StreamsTcpClient.java | 43 +-
.../iggy/client/async/tcp/SystemTcpClient.java | 49 +-
.../iggy/client/async/tcp/TopicsTcpClient.java | 68 +-
.../iggy/client/async/tcp/UsersTcpClient.java | 39 +-
.../client/async/tcp/vsr/ConsensusSession.java | 544 ++-
.../iggy/client/async/tcp/vsr/VsrHeaders.java | 7 +
.../iggy/client/async/tcp/vsr/VsrOperation.java | 2 +-
.../client/async/tcp/vsr/VsrRequestEncoder.java | 6 +-
.../client/async/tcp/vsr/VsrResponseHandler.java | 232 +-
.../iggy/client/blocking/tcp/IggyTcpClient.java | 18 +
.../client/blocking/tcp/IggyTcpClientBuilder.java | 12 +-
.../java/org/apache/iggy/config/RetryPolicy.java | 10 +-
.../org/apache/iggy/exception/IggyErrorCode.java | 3 +
.../iggy/exception/IggyOperationException.java} | 29 +-
.../java/org/apache/iggy/serde/CommandCode.java | 7 +-
.../apache/iggy/client/BaseIntegrationTest.java | 6 +-
.../AsyncIggyTcpClientEndpointFailoverTest.java | 1131 +++++-
.../tcp/AsyncIggyTcpClientEventLoopGroupTest.java | 4 +-
.../tcp/AsyncIggyTcpClientLoginRoutingTest.java | 81 +-
.../AsyncIggyTcpClientPartitionContextTest.java | 56 +-
.../tcp/AsyncIggyTcpClientRawRequestTest.java | 238 +-
.../async/tcp/AsyncIggyTcpClientRecoveryTest.java | 1532 +++++++
.../AsyncIggyTcpClientSendContextCacheTest.java | 206 +-
.../AsyncIggyTcpClientTransientFailoverTest.java | 198 +-
.../tcp/AsyncTcpConnectionConcurrencyTest.java | 341 +-
.../tcp/AsyncTcpConnectionLifecycleBusyTest.java | 93 +-
.../tcp/AsyncTcpConnectionRequestTimeoutTest.java | 92 +-
.../client/async/tcp/LoginRoutingHookTest.java | 4 +-
.../iggy/client/async/tcp/PollRouterTest.java | 461 ++-
.../client/async/tcp/vsr/ConsensusSessionTest.java | 401 ++
.../async/tcp/vsr/VsrRequestEncoderTest.java | 17 +-
.../async/tcp/vsr/VsrResponseHandlerTest.java | 230 +-
.../client/blocking/tcp/UsersTcpClientTest.java | 12 +
foreign/node/README.md | 172 +-
foreign/node/docker-compose.yml | 3 +
foreign/node/package-lock.json | 291 +-
foreign/node/package.json | 5 +-
foreign/node/src/client.e2e.ts | 8 +-
foreign/node/src/client/client.config.test.ts | 18 +-
foreign/node/src/client/client.config.ts | 16 +-
.../src/client/client.connection-string.test.ts | 49 +
.../node/src/client/client.connection-string.ts | 19 +-
foreign/node/src/client/client.connection.test.ts | 1145 ++----
foreign/node/src/client/client.connection.ts | 736 +---
foreign/node/src/client/client.operation.test.ts | 289 ++
foreign/node/src/client/client.operation.ts | 440 ++
foreign/node/src/client/client.socket.test.ts | 3188 ++++++++++-----
foreign/node/src/client/client.socket.ts | 2070 ++++------
foreign/node/src/client/client.ts | 124 +-
foreign/node/src/client/client.type.ts | 63 +-
foreign/node/src/e2e/tcp.consumer-stream.e2e.ts | 4 +
foreign/node/src/e2e/tcp.user.e2e.ts | 51 +-
foreign/node/src/e2e/tls.system.e2e.ts | 27 +-
foreign/node/src/stream/consumer-stream.ts | 85 +-
foreign/node/src/wire/command-set.ts | 21 +-
foreign/node/src/wire/command.code.ts | 5 +-
foreign/node/src/wire/error.utils.ts | 2 +
.../src/wire/message/poll-messages.command.test.ts | 34 +
.../node/src/wire/message/poll-messages.command.ts | 34 +-
.../node/src/wire/message/send-messages.command.ts | 2 +-
foreign/node/src/wire/vsr/header.ts | 16 +-
foreign/node/src/wire/vsr/index.ts | 13 +-
foreign/node/src/wire/vsr/reply.ts | 50 +-
foreign/node/src/wire/vsr/session.test.ts | 21 +
foreign/node/src/wire/vsr/session.ts | 20 +-
foreign/node/src/wire/vsr/vsr.test.ts | 56 +-
foreign/node/tsconfig.json | 1 +
foreign/php/Cargo.toml | 2 +-
foreign/php/Dockerfile.test | 4 +-
foreign/php/README.md | 24 +
foreign/php/iggy-php.stubs.php | 86 +-
foreign/php/src/client.rs | 193 +-
foreign/php/src/error.rs | 90 +-
foreign/php/src/lib.rs | 6 +-
foreign/php/src/receive_message.rs | 6 +-
foreign/php/src/send_message.rs | 8 +-
foreign/php/src/stream.rs | 4 +-
foreign/php/src/topic.rs | 4 +-
foreign/php/tests/RawCommandTest.php | 141 +
foreign/php/tests/bootstrap.php | 4 +-
foreign/python/README.md | 67 +-
foreign/python/apache_iggy.pyi | 218 +-
foreign/python/pyproject.toml | 2 +-
foreign/python/src/client.rs | 216 +-
foreign/python/src/config.rs | 180 +-
foreign/python/src/consumer.rs | 15 +-
foreign/python/src/lib.rs | 12 +-
foreign/python/src/producer.rs | 219 +-
foreign/python/src/user.rs | 71 +-
foreign/python/tests/conftest.py | 35 +-
foreign/python/tests/test_cleanup.py | 169 +
foreign/python/tests/test_client_config.py | 29 +
foreign/python/tests/test_producer.py | 89 +-
foreign/python/tests/test_quic_config.py | 30 +-
foreign/python/tests/test_raw_command.py | 50 +-
foreign/python/tests/test_topic.py | 13 +-
foreign/python/tests/test_user.py | 258 +-
foreign/swift/README.md | 5 +
foreign/swift/Sources/Iggy/Client/ClientCore.swift | 41 +-
.../Sources/Iggy/Client/IggyClient+Messages.swift | 114 +-
foreign/swift/Sources/Iggy/Client/IggyClient.swift | 13 +-
foreign/swift/Sources/Iggy/Client/PollRouter.swift | 138 +-
.../swift/Sources/Iggy/Protocol/CommandCode.swift | 8 +-
.../Sources/Iggy/Protocol/ConsensusSession.swift | 14 +-
.../swift/Sources/Iggy/Protocol/Responses.swift | 43 +-
foreign/swift/Sources/Iggy/Protocol/VSRFrame.swift | 12 +-
.../swift/Tests/IggyE2ETests/ClientE2ETests.swift | 4 +-
.../IggyE2ETests/Support/E2EEnvironment.swift | 21 +
.../Tests/IggyTests/ClientTransportTests.swift | 79 +-
.../swift/Tests/IggyTests/ConcurrencyTests.swift | 6 +-
foreign/swift/Tests/IggyTests/Fixtures/golden.json | 2 +-
foreign/swift/Tests/IggyTests/MessagingTests.swift | 220 +-
foreign/swift/Tests/IggyTests/ProtocolTests.swift | 25 +-
.../Tests/IggyTests/ResponseVectorTests.swift | 14 +-
.../Tests/IggyTests/Support/FakeVSRServer.swift | 55 +-
.../swift/Tests/IggyTests/WireVectorTests.swift | 3 +
foreign/swift/Tools/golden-vectors/src/main.rs | 37 +-
gateways/kafka/Cargo.toml | 8 +
gateways/kafka/Dockerfile | 4 +-
gateways/kafka/README.md | 215 +-
gateways/kafka/docker-compose.yml | 4 +-
gateways/kafka/docs/ACL_MAPPING.md | 17 +-
gateways/kafka/docs/AUTHENTICATION.md | 122 +-
gateways/kafka/docs/BRIDGE_MAPPING.md | 57 +-
gateways/kafka/docs/MANUAL_TESTING.md | 171 +-
gateways/kafka/docs/SCOPE.md | 43 +-
gateways/kafka/docs/TEST_SUITE.md | 22 +-
gateways/kafka/docs/kafka_api_keys_reference.md | 8 +-
gateways/kafka/src/auth.rs | 133 +-
gateways/kafka/src/bridge/config.rs | 99 +-
gateways/kafka/src/bridge/error.rs | 70 +-
gateways/kafka/src/bridge/iggy_bridge/fetch.rs | 231 +-
.../kafka/src/bridge/iggy_bridge/group_offsets.rs | 27 +-
gateways/kafka/src/bridge/iggy_bridge/mod.rs | 167 +-
gateways/kafka/src/bridge/iggy_bridge/offsets.rs | 114 +-
gateways/kafka/src/bridge/iggy_bridge/produce.rs | 17 +-
gateways/kafka/src/bridge/iggy_bridge/topics.rs | 207 +-
gateways/kafka/src/bridge/mod.rs | 7 +-
gateways/kafka/src/bridge/topic_map.rs | 152 +-
gateways/kafka/src/lib.rs | 2 +
gateways/kafka/src/listener.rs | 463 +++
gateways/kafka/src/main.rs | 690 +++-
gateways/kafka/src/protocol/api.rs | 142 +-
gateways/kafka/src/protocol/auto_topic_creation.rs | 503 +++
.../kafka/src/protocol/handlers/alter_configs.rs | 13 +-
.../kafka/src/protocol/handlers/api_versions.rs | 65 +-
.../kafka/src/protocol/handlers/create_topics.rs | 36 +-
.../kafka/src/protocol/handlers/delete_topics.rs | 11 +-
gateways/kafka/src/protocol/handlers/fetch.rs | 32 +-
.../src/protocol/handlers/find_coordinator.rs | 15 +-
.../kafka/src/protocol/handlers/list_offsets.rs | 987 ++++-
gateways/kafka/src/protocol/handlers/metadata.rs | 181 +-
gateways/kafka/src/protocol/handlers/mod.rs | 8 +-
.../kafka/src/protocol/handlers/offset_commit.rs | 6 +-
.../kafka/src/protocol/handlers/offset_fetch.rs | 5 +-
gateways/kafka/src/protocol/handlers/produce.rs | 13 +-
gateways/kafka/src/protocol/mod.rs | 1 +
gateways/kafka/src/records.rs | 107 +-
gateways/kafka/src/server.rs | 1020 +++--
gateways/kafka/src/tls/identity.rs | 1211 ++++++
gateways/kafka/src/tls/mod.rs | 586 +++
gateways/kafka/tests/api_handler_tests.rs | 2 +-
.../kafka/tests/bridge_iggy_integration_tests.rs | 257 +-
gateways/kafka/tests/broker_advertise_tests.rs | 55 +-
gateways/kafka/tests/common/certs.rs | 186 +
gateways/kafka/tests/common/iggy_server.rs | 46 +-
gateways/kafka/tests/common/scope.rs | 2 +-
gateways/kafka/tests/common/server.rs | 66 +-
gateways/kafka/tests/common/tcp.rs | 15 +-
gateways/kafka/tests/common/wire.rs | 2 +-
gateways/kafka/tests/configs_handler_tests.rs | 2 -
gateways/kafka/tests/configs_java_client_tests.rs | 15 +-
gateways/kafka/tests/configs_real_bridge_tests.rs | 6 +-
gateways/kafka/tests/consumer_group_tests.rs | 2 -
.../kafka/tests/create_topics_real_bridge_tests.rs | 8 +-
.../kafka/tests/delete_topics_real_bridge_tests.rs | 138 +-
gateways/kafka/tests/fetch_real_bridge_tests.rs | 6 +-
gateways/kafka/tests/golden_wire_fixtures_tests.rs | 4 +-
gateways/kafka/tests/idempotence_tests.rs | 5 -
.../kafka/tests/java/OffsetsForTimesProbe.java | 59 +
gateways/kafka/tests/kafka_client_e2e_tests.rs | 895 ++++-
.../kafka/tests/list_offsets_real_bridge_tests.rs | 325 +-
gateways/kafka/tests/metadata_real_bridge_tests.rs | 499 ++-
gateways/kafka/tests/offsets_real_bridge_tests.rs | 6 +-
gateways/kafka/tests/produce_real_bridge_tests.rs | 9 +-
gateways/kafka/tests/sasl_tests.rs | 17 +-
gateways/kafka/tests/tls_listener_tests.rs | 971 +++++
gateways/kafka/tests/version_firewall_tests.rs | 8 +-
helm/charts/iggy/README.md | 11 +-
helm/charts/iggy/README.md.gotmpl | 11 +-
helm/charts/iggy/examples/cluster-3-node.yaml | 13 +-
helm/charts/iggy/templates/_helpers.tpl | 16 +-
rust-toolchain.toml | 2 +-
.../build_release.sh => ci/restore-runtime.sh} | 19 +-
scripts/ci/storage-compat.sh | 48 +-
scripts/ci/test-helm.sh | 21 +-
scripts/ci/test-runtime-artifacts.py | 256 ++
scripts/ci/third-party-licenses.sh | 3 +
.../performance/run-standard-performance-suite.sh | 18 +-
scripts/profile.sh | 2 +-
scripts/run-examples-from-readme.sh | 25 +-
web/package-lock.json | 326 +-
web/package.json | 14 +-
595 files changed, 68183 insertions(+), 29133 deletions(-)
create mode 100644 .github/actions/bdd/pre-merge/action.yml
create mode 100644 .github/actions/utils/download-runtime/action.yml
create mode 100644 .github/workflows/_build_ci_artifacts.yml
create mode 100644 .github/workflows/_rust_tests.yml
delete mode 100644 core/binary_protocol/src/responses/messages/poll_routing.rs
create mode 100644
core/common/src/types/configuration/pending_operations_config.rs
create mode 100644
core/connectors/runtime/example_config/connectors/mqtt_source.toml
copy core/connectors/{sinks/elasticsearch_sink =>
sources/mqtt_source}/Cargo.toml (76%)
create mode 100644 core/connectors/sources/mqtt_source/README.md
create mode 100644 core/connectors/sources/mqtt_source/config.toml
create mode 100644 core/connectors/sources/mqtt_source/src/driver.rs
create mode 100644 core/connectors/sources/mqtt_source/src/lib.rs
create mode 100644 core/integration/src/harness/peer_relay.rs
create mode 100644 core/integration/tests/cluster/root_credentials.rs
create mode 100644 core/integration/tests/connectors/fixtures/mqtt/container.rs
create mode 100644 core/integration/tests/connectors/fixtures/mqtt/mod.rs
create mode 100644 core/integration/tests/connectors/fixtures/mqtt/publisher.rs
copy core/integration/tests/connectors/{s3 => mqtt}/mod.rs (97%)
create mode 100644 core/integration/tests/connectors/mqtt/mqtt_source.rs
copy core/integration/tests/connectors/{doris/sink.toml => mqtt/source.toml}
(94%)
delete mode 100644 core/sdk/src/driver/poll_router.rs
delete mode 100644 core/sdk/src/leader_aware.rs
create mode 100644 core/sdk/src/session_owner/pending.rs
copy foreign/csharp/Iggy_SDK/Exceptions/{NotConnectedException.cs =>
VsrLaneBlockedException.cs} (71%)
copy foreign/csharp/Iggy_SDK/Exceptions/{InvalidBaseAddressException.cs =>
VsrOperationNotRetainedException.cs} (60%)
create mode 100644
foreign/csharp/Iggy_SDK/IggyClient/Implementations/TcpMessageStream.ReplicaLinks.cs
create mode 100644 foreign/csharp/Iggy_SDK/Vsr/MutationLanes.cs
create mode 100644 foreign/csharp/Iggy_SDK_Tests/VsrTests/MutationLaneTests.cs
create mode 100644
foreign/csharp/Iggy_SDK_Tests/VsrTests/NativeRecoveryTests.cs
create mode 100644 foreign/csharp/Iggy_SDK_Tests/VsrTests/ReplicaLinkTests.cs
create mode 100644
foreign/csharp/Iggy_SDK_Tests/VsrTests/VsrMultiplexingTests.cs
create mode 100644 foreign/go/client/tcp/tcp_driver.go
create mode 100644 foreign/go/client/tcp/tcp_driver_test.go
create mode 100644 foreign/go/client/tcp/tcp_link.go
create mode 100644 foreign/go/client/tcp/tcp_link_test.go
create mode 100644 foreign/go/client/tcp/tcp_pending.go
create mode 100644 foreign/go/client/tcp/tcp_replicas.go
create mode 100644 foreign/go/client/tcp/tcp_replicas_test.go
copy
foreign/java/java-sdk/src/{test/java/org/apache/iggy/exception/IggyNotConnectedExceptionTest.java
=> main/java/org/apache/iggy/exception/IggyOperationException.java} (56%)
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/AsyncIggyTcpClientRecoveryTest.java
create mode 100644
foreign/java/java-sdk/src/test/java/org/apache/iggy/client/async/tcp/vsr/ConsensusSessionTest.java
create mode 100644 foreign/node/src/client/client.operation.test.ts
create mode 100644 foreign/node/src/client/client.operation.ts
create mode 100644 foreign/python/tests/test_cleanup.py
create mode 100644 gateways/kafka/src/listener.rs
create mode 100644 gateways/kafka/src/protocol/auto_topic_creation.rs
create mode 100644 gateways/kafka/src/tls/identity.rs
create mode 100644 gateways/kafka/src/tls/mod.rs
create mode 100644 gateways/kafka/tests/common/certs.rs
create mode 100644 gateways/kafka/tests/java/OffsetsForTimesProbe.java
create mode 100644 gateways/kafka/tests/tls_listener_tests.rs
copy scripts/{dashboard/build_release.sh => ci/restore-runtime.sh} (60%)
create mode 100644 scripts/ci/test-runtime-artifacts.py