This is an automated email from the ASF dual-hosted git repository. gkoszyk pushed a commit to branch partitions in repository https://gitbox.apache.org/repos/asf/iggy.git
commit 361555e963ad01b13d1b2d57bcb80b6ab3e0bb55 Merge: 556018ddc 153cb378c Author: numinex <[email protected]> AuthorDate: Fri Feb 13 15:03:40 2026 +0100 merge master .github/BOT_ISSUE_TEMPLATE.md | 14 - .github/ISSUE_TEMPLATE/bug_report.yml | 104 ++ .../ISSUE_TEMPLATE/config.yml | 27 +- .github/ISSUE_TEMPLATE/feature_request.yml | 71 ++ .../ISSUE_TEMPLATE/question.yml | 47 +- .github/actions/java-gradle/pre-merge/action.yml | 21 + .github/workflows/_test.yml | 12 + .github/workflows/post-merge.yml | 47 +- Cargo.lock | 1008 +++++++++++------- Cargo.toml | 85 +- DEPENDENCIES.md | 260 ++--- PULL_REQUEST_TEMPLATE.md | 3 +- codecov.yml | 29 +- core/bench/report/src/types/numeric_parameter.rs | 2 +- core/bench/src/utils/batch_generator.rs | 2 +- core/binary_protocol/src/utils/mapper.rs | 3 +- core/common/Cargo.toml | 3 - core/common/src/alloc/buffer.rs | 37 +- core/common/src/lib.rs | 1 + core/common/src/sender/mod.rs | 4 +- core/common/src/sender/quic_sender.rs | 32 +- core/common/src/sender/tcp_tls_sender.rs | 2 +- core/common/src/sender/websocket_sender.rs | 12 +- core/common/src/sender/websocket_tls_sender.rs | 14 +- .../quic_config/quic_client_config_builder.rs | 6 + .../tcp_config/tcp_client_config_builder.rs | 6 + .../src/types/segment_storage/index_writer.rs | 6 +- .../src/types/segment_storage/messages_writer.rs | 6 +- core/common/src/utils/timestamp.rs | 8 + core/connectors/README.md | 44 +- core/connectors/runtime/Cargo.toml | 5 +- .../connectors/{iceberg.toml => iceberg_sink.toml} | 1 + .../{quickwit.toml => quickwit_sink.toml} | 1 + .../{random_v0.toml => random_source_v0.toml} | 0 .../{random_v1.toml => random_source_v1.toml} | 0 .../connectors/{stdout.toml => stdout_sink.toml} | 3 +- core/connectors/runtime/src/api/mod.rs | 5 +- core/connectors/runtime/src/api/models.rs | 39 +- core/connectors/runtime/src/configs/connectors.rs | 2 +- .../src/configs/connectors/local_provider.rs | 29 +- core/connectors/runtime/src/context.rs | 4 +- core/connectors/runtime/src/main.rs | 179 +++- core/connectors/runtime/src/manager/mod.rs | 1 - core/connectors/runtime/src/manager/sink.rs | 2 +- core/connectors/runtime/src/manager/source.rs | 2 +- core/connectors/runtime/src/manager/status.rs | 65 -- core/connectors/runtime/src/sink.rs | 72 +- core/connectors/runtime/src/source.rs | 108 +- core/connectors/runtime/src/stats.rs | 43 +- core/connectors/sdk/Cargo.toml | 8 +- core/connectors/sdk/src/api.rs | 152 +++ core/connectors/sdk/src/encoders/proto.rs | 3 +- core/connectors/sdk/src/lib.rs | 40 + core/connectors/sdk/src/sink.rs | 8 +- core/connectors/sdk/src/source.rs | 4 +- core/connectors/sdk/src/transforms/json/mod.rs | 16 +- .../connectors/sdk/src/transforms/proto_convert.rs | 5 +- core/connectors/sinks/README.md | 12 +- .../connectors/sinks/elasticsearch_sink/Cargo.toml | 2 +- .../sinks/elasticsearch_sink/config.toml} | 21 +- .../connectors/sinks/elasticsearch_sink/src/lib.rs | 37 +- .../iceberg_sink/config.toml} | 21 +- core/connectors/sinks/postgres_sink/Cargo.toml | 2 +- core/connectors/sinks/postgres_sink/config.toml | 2 +- core/connectors/sinks/postgres_sink/src/lib.rs | 25 +- .../sinks/quickwit_sink/config.toml} | 2 +- .../stdout.toml => sinks/stdout_sink/config.toml} | 16 +- core/connectors/sources/README.md | 10 +- .../sources/elasticsearch_source/Cargo.toml | 2 +- .../sources/elasticsearch_source/config.toml} | 22 +- .../sources/elasticsearch_source/src/lib.rs | 35 +- .../elasticsearch_source/src/state_manager.rs | 7 +- core/connectors/sources/postgres_source/Cargo.toml | 2 +- .../connectors/sources/postgres_source/config.toml | 2 +- core/connectors/sources/postgres_source/src/lib.rs | 181 +++- core/connectors/sources/random_source/Cargo.toml | 1 + .../sources/random_source/config.toml} | 2 +- core/connectors/sources/random_source/src/lib.rs | 144 ++- core/consensus/src/vsr_timeout.rs | 2 +- core/integration/Cargo.toml | 1 + core/integration/src/harness/handle/server.rs | 2 +- core/integration/tests/connectors/api/endpoints.rs | 45 +- .../connectors/elasticsearch/elasticsearch_sink.rs | 218 ++++ .../elasticsearch/elasticsearch_source.rs | 310 ++++++ .../tests/connectors/elasticsearch}/mod.rs | 9 +- .../config.toml => elasticsearch/sink.toml} | 2 +- .../config.toml => elasticsearch/source.toml} | 2 +- .../connectors/fixtures/elasticsearch/container.rs | 350 ++++++ .../connectors/fixtures/elasticsearch}/mod.rs | 9 +- .../connectors/fixtures/elasticsearch/sink.rs | 146 +++ .../connectors/fixtures/elasticsearch/source.rs | 192 ++++ .../tests/connectors/fixtures/iceberg/container.rs | 529 +++++++++ .../tests/connectors/fixtures/iceberg}/mod.rs | 6 +- core/integration/tests/connectors/fixtures/mod.rs | 4 + .../tests/connectors/iceberg/iceberg_sink.rs | 209 ++++ .../tests/connectors/iceberg}/mod.rs | 4 +- .../{quickwit/config.toml => iceberg/sink.toml} | 2 +- core/integration/tests/connectors/mod.rs | 3 + .../tests/connectors/postgres/postgres_source.rs | 127 +++ .../tests/connectors/quickwit/quickwit_sink.rs | 13 +- .../connectors/quickwit/{config.toml => sink.toml} | 2 +- .../tests/connectors/random/random_source.rs | 65 +- .../{quickwit/config.toml => random/source.toml} | 2 +- .../tests/connectors/stdout}/mod.rs | 4 +- .../{quickwit/config.toml => stdout/sink.toml} | 2 +- .../tests/connectors/stdout/stdout_sink.rs | 207 ++++ core/integration/tests/data_integrity/mod.rs | 1 + .../verify_user_login_after_restart.rs | 65 ++ core/integration/tests/server/cg.rs | 10 +- core/integration/tests/server/mod.rs | 1 + core/integration/tests/server/purge_delete.rs | 96 ++ ...er_group_new_messages_after_restart_scenario.rs | 254 +++++ .../server/scenarios/delete_segments_scenario.rs | 229 ---- core/integration/tests/server/scenarios/mod.rs | 3 +- .../server/scenarios/purge_delete_scenario.rs | 1117 ++++++++++++++++++++ core/integration/tests/server/specific.rs | 12 +- core/metadata/Cargo.toml | 2 + core/metadata/src/impls/metadata.rs | 55 + core/metadata/src/stats/mod.rs | 28 + core/metadata/src/stm/consumer_group.rs | 280 +++-- core/metadata/src/stm/mod.rs | 172 ++- core/metadata/src/stm/mux.rs | 126 +++ core/metadata/src/stm/snapshot.rs | 402 +++++++ core/metadata/src/stm/stream.rs | 594 +++++++---- core/metadata/src/stm/user.rs | 472 +++++++-- core/sdk/src/clients/client_builder.rs | 34 + core/server/Cargo.toml | 11 +- .../create_consumer_group_handler.rs | 105 +- .../delete_consumer_group_handler.rs | 118 +-- .../consumer_groups/get_consumer_group_handler.rs | 27 +- .../consumer_groups/get_consumer_groups_handler.rs | 37 +- .../consumer_groups/join_consumer_group_handler.rs | 66 +- .../leave_consumer_group_handler.rs | 69 +- .../delete_consumer_offset_handler.rs | 17 +- .../get_consumer_offset_handler.rs | 30 +- .../store_consumer_offset_handler.rs | 12 +- .../messages/flush_unsaved_buffer_handler.rs | 22 +- .../handlers/messages/poll_messages_handler.rs | 11 +- .../handlers/messages/send_messages_handler.rs | 39 +- .../partitions/create_partitions_handler.rs | 102 +- .../partitions/delete_partitions_handler.rs | 104 +- .../create_personal_access_token_handler.rs | 90 +- .../delete_personal_access_token_handler.rs | 75 +- .../handlers/segments/delete_segments_handler.rs | 83 +- .../handlers/streams/create_stream_handler.rs | 76 +- .../handlers/streams/delete_stream_handler.rs | 72 +- .../binary/handlers/streams/get_stream_handler.rs | 25 +- .../binary/handlers/streams/get_streams_handler.rs | 15 +- .../handlers/streams/purge_stream_handler.rs | 77 +- .../handlers/streams/update_stream_handler.rs | 69 +- .../binary/handlers/system/get_stats_handler.rs | 45 +- .../binary/handlers/topics/create_topic_handler.rs | 129 +-- .../binary/handlers/topics/delete_topic_handler.rs | 99 +- .../binary/handlers/topics/get_topic_handler.rs | 24 +- .../binary/handlers/topics/get_topics_handler.rs | 12 +- .../binary/handlers/topics/purge_topic_handler.rs | 87 +- .../binary/handlers/topics/update_topic_handler.rs | 102 +- .../handlers/users/change_password_handler.rs | 95 +- .../binary/handlers/users/create_user_handler.rs | 97 +- .../binary/handlers/users/delete_user_handler.rs | 72 +- .../src/binary/handlers/users/get_user_handler.rs | 17 +- .../src/binary/handlers/users/get_users_handler.rs | 8 +- .../handlers/users/update_permissions_handler.rs | 85 +- .../binary/handlers/users/update_user_handler.rs | 94 +- core/server/src/binary/mapper.rs | 225 +++- core/server/src/http/consumer_groups.rs | 186 +--- core/server/src/http/consumer_offsets.rs | 40 +- core/server/src/http/http_server.rs | 7 +- core/server/src/http/http_shard_wrapper.rs | 251 ++--- core/server/src/http/messages.rs | 20 +- core/server/src/http/partitions.rs | 130 +-- core/server/src/http/personal_access_tokens.rs | 77 +- core/server/src/http/streams.rs | 207 +--- core/server/src/http/topics.rs | 311 +----- core/server/src/http/users.rs | 238 +---- core/server/src/io/fs_locks.rs | 51 - core/server/src/io/mod.rs | 1 - core/server/src/metadata/absorb.rs | 30 +- core/server/src/metadata/mod.rs | 3 + core/server/src/metadata/ops.rs | 14 +- core/server/src/metadata/reader.rs | 615 ++++++++++- core/server/src/metadata/writer.rs | 20 +- core/server/src/quic/listener.rs | 15 +- core/server/src/quic/quic_server.rs | 4 +- core/server/src/server_error.rs | 2 +- core/server/src/shard/builder.rs | 1 - core/server/src/shard/communication.rs | 105 +- core/server/src/shard/execution.rs | 705 ++++++++++++ core/server/src/shard/handlers.rs | 785 +++----------- core/server/src/shard/mod.rs | 105 +- core/server/src/shard/system/clients.rs | 40 +- core/server/src/shard/system/consumer_groups.rs | 164 +-- core/server/src/shard/system/consumer_offsets.rs | 217 +++- core/server/src/shard/system/messages.rs | 263 +---- core/server/src/shard/system/partitions.rs | 37 +- .../src/shard/system/personal_access_tokens.rs | 28 +- core/server/src/shard/system/segments.rs | 417 +++++++- core/server/src/shard/system/streams.rs | 234 +--- core/server/src/shard/system/topics.rs | 333 ++---- core/server/src/shard/system/users.rs | 36 - core/server/src/shard/system/utils.rs | 256 +++-- .../src/shard/tasks/continuous/message_pump.rs | 81 +- .../src/shard/tasks/periodic/message_cleaner.rs | 408 +------ .../src/shard/tasks/periodic/message_saver.rs | 74 +- core/server/src/shard/transmission/event.rs | 6 +- core/server/src/shard/transmission/frame.rs | 72 +- core/server/src/shard/transmission/message.rs | 252 ++--- .../src/streaming/partitions/local_partition.rs | 4 - core/server/src/streaming/utils/crypto.rs | 2 +- core/server/src/tcp/tcp_listener.rs | 6 +- core/server/src/tcp/tcp_tls_listener.rs | 8 +- core/server/src/websocket/websocket_listener.rs | 9 +- .../server/src/websocket/websocket_tls_listener.rs | 11 +- core/tools/src/data-seeder/seeder.rs | 2 +- examples/rust/src/shared/messages_generator.rs | 2 +- examples/rust/src/sink-data-producer/main.rs | 2 +- .../Fixtures/SegmentsFixture.cs | 46 + .../Iggy_SDK.Tests.Integration/SegmentsTests.cs | 92 ++ .../csharp/Iggy_SDK/Contracts/Tcp/TcpContracts.cs | 14 + foreign/csharp/Iggy_SDK/IggyClient/IIggyClient.cs | 2 +- foreign/csharp/Iggy_SDK/IggyClient/IIggySegment.cs | 42 + .../Implementations/HttpMessageStream.cs | 16 + .../IggyClient/Implementations/TcpMessageStream.cs | 11 + foreign/csharp/Iggy_SDK/Iggy_SDK.csproj | 2 +- foreign/csharp/Iggy_SDK/Utils/CommandCodes.cs | 1 + foreign/java/build.gradle.kts | 39 + .../kotlin/iggy.java-common-conventions.gradle.kts | 31 + .../iggy-connector-pinot/build.gradle.kts | 10 +- .../iggy-connector-pinot/docker-compose.yml | 6 +- foreign/java/gradle/libs.versions.toml | 1 + .../org/apache/iggy/serde/BytesSerializer.java | 3 +- .../client/async/AsyncClientIntegrationTest.java | 7 +- .../iggy/client/async/AsyncPollMessageTest.java | 6 +- .../async/tcp/AsyncIggyTcpClientBuilderTest.java | 11 +- .../iggy/client/blocking/IntegrationTest.java | 4 + .../blocking/tcp/IggyTcpClientBuilderTest.java | 24 +- 236 files changed, 12079 insertions(+), 7400 deletions(-) diff --cc Cargo.lock index 502883e00,d7ffd97b4..495dab8d3 --- a/Cargo.lock +++ b/Cargo.lock @@@ -4655,9 -4698,8 +4698,9 @@@ dependencies = "humantime", "lending-iterator", "moka", - "nix 0.31.1", + "nix", "once_cell", + "papaya", "rcgen", "ring", "rustls",
