This is an automated email from the ASF dual-hosted git repository.
numinnex pushed a change to branch connectors_sink_delivery
in repository https://gitbox.apache.org/repos/asf/iggy.git
from 1c829c4fe feat(connectors): deliver sink messages at least once
add d70f3668b chore(deps): upgrade Rust dependencies (#4731)
add a941a94be fix(gateways): keep Kafka Fetch answering when one partition
stalls (#4706)
add c190ae75c ci: set a default advertised address for the local Docker
image (#4635)
add 89dc4a269 feat(swift): publish the SDK to SwiftPM from the repository
root (#4714)
add 35915be1e fix(connectors): address Iceberg sink issues batch (#4736)
add ec6b651b2 fix(common): reject malformed user headers during
deserialization (#4670)
add 8f2c9ffd6 fix(server): clamp recovered consumer offsets after the WAL
replay (#4737)
add 7d0ab2a17 fix: preserve JSON numbers and synchronize mux cancellation
tests (#4733)
add 17b8c4b11 chore(repo): prepare versions for 0.10.0 release (#4742)
add 91e020636 fix(repo): renew the localhost TLS certificate expiring
2026-11-17 (#4745)
add 55ae03c63 chore(deps): Bump the github-actions group across 1
directory with 6 updates (#4744)
add 7b053f4cb chore(deps): Bump ch.qos.logback:logback-classic from 1.6.5
to 1.6.6 in /foreign/java in the java group across 1 directory (#4743)
new dd09d0e05 merge master
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.github/actions/swift/post-merge/action.yml | 94 ++
.github/actions/swift/pre-merge/action.yml | 28 +
.github/actions/utils/setup-swift/action.yml | 36 +-
.github/config/components.yml | 2 +
.github/config/publish.yml | 7 +
.github/workflows/_build_python_wheels.yml | 10 +-
.github/workflows/_common.yml | 4 +-
.github/workflows/_publish_rust_crates.yml | 8 +-
.github/workflows/_test_examples.yml | 12 +-
.github/workflows/coverage-baseline.yml | 6 +-
.github/workflows/post-merge.yml | 7 +-
.github/workflows/publish.yml | 91 +-
.gitignore | 4 +
.../agents/openai.yaml => .spi.yml | 7 +-
AGENTS.md | 4 +-
Cargo.lock | 1486 ++++++++++----------
Cargo.toml | 79 +-
Dockerfile | 1 +
foreign/swift/Package.swift => Package.swift | 28 +-
README.md | 2 +-
bdd/python/uv.lock | 2 +-
core/ai/mcp/Cargo.toml | 2 +-
core/bench/Cargo.toml | 2 +-
core/bench/dashboard/frontend/Cargo.toml | 2 +-
core/bench/dashboard/server/Cargo.toml | 2 +-
core/bench/report/Cargo.toml | 2 +-
core/bench/report/src/types/hardware.rs | 26 +-
core/bench/src/utils/cpu_name.rs | 19 +-
core/binary_protocol/Cargo.toml | 2 +-
core/certs/iggy_cert.pem | 20 +-
core/cli/Cargo.toml | 2 +-
core/common/Cargo.toml | 2 +-
core/common/src/http/messages/send_messages.rs | 202 ++-
core/common/src/types/message/iggy_message.rs | 53 +
core/common/src/types/message/mod.rs | 5 +-
core/common/src/types/message/user_headers.rs | 391 ++++-
core/common/src/wire_conversions.rs | 18 +-
core/connectors/runtime/Cargo.toml | 2 +-
.../example_config/connectors/iceberg_sink.toml | 5 +-
core/connectors/runtime/src/stats.rs | 17 +-
core/connectors/sdk/Cargo.toml | 3 +-
core/connectors/sdk/src/log.rs | 27 +-
core/connectors/sdk/src/sink.rs | 8 +-
core/connectors/sdk/src/source.rs | 8 +-
core/connectors/sdk/tests/plugin_logging.rs | 100 ++
core/connectors/sinks/bigquery_sink/Cargo.toml | 2 +-
core/connectors/sinks/clickhouse_sink/Cargo.toml | 2 +-
core/connectors/sinks/delta_sink/Cargo.toml | 6 +-
core/connectors/sinks/delta_sink/src/coercions.rs | 27 +-
core/connectors/sinks/delta_sink/src/lib.rs | 4 +-
core/connectors/sinks/delta_sink/src/sink.rs | 75 +-
core/connectors/sinks/doris_sink/Cargo.toml | 2 +-
.../connectors/sinks/elasticsearch_sink/Cargo.toml | 2 +-
core/connectors/sinks/http_sink/Cargo.toml | 2 +-
core/connectors/sinks/iceberg_sink/Cargo.toml | 3 +-
core/connectors/sinks/iceberg_sink/README.md | 29 +-
core/connectors/sinks/iceberg_sink/config.toml | 2 +-
core/connectors/sinks/iceberg_sink/src/lib.rs | 9 +-
core/connectors/sinks/iceberg_sink/src/props.rs | 31 +-
.../iceberg_sink/src/router/dynamic_router.rs | 22 +-
.../sinks/iceberg_sink/src/router/mod.rs | 7 +-
core/connectors/sinks/iceberg_sink/src/sink.rs | 7 +-
core/connectors/sinks/influxdb_sink/Cargo.toml | 2 +-
core/connectors/sinks/meilisearch_sink/Cargo.toml | 2 +-
core/connectors/sinks/mongodb_sink/Cargo.toml | 2 +-
core/connectors/sinks/postgres_sink/Cargo.toml | 2 +-
core/connectors/sinks/quickwit_sink/Cargo.toml | 2 +-
core/connectors/sinks/rabbitmq_sink/Cargo.toml | 2 +-
core/connectors/sinks/redshift_sink/Cargo.toml | 2 +-
core/connectors/sinks/s3_sink/Cargo.toml | 2 +-
core/connectors/sinks/stdout_sink/Cargo.toml | 2 +-
core/connectors/sinks/surrealdb_sink/Cargo.toml | 2 +-
.../sources/elasticsearch_source/Cargo.toml | 2 +-
core/connectors/sources/http_source/Cargo.toml | 2 +-
core/connectors/sources/influxdb_source/Cargo.toml | 2 +-
core/connectors/sources/mqtt_source/Cargo.toml | 2 +-
core/connectors/sources/postgres_source/Cargo.toml | 5 +-
core/connectors/sources/postgres_source/src/lib.rs | 6 +-
core/connectors/sources/random_source/Cargo.toml | 2 +-
core/integration/tests/cluster/chaos_monkey.rs | 6 +-
.../tests/server/consumer_offset_recovery.rs | 142 ++
core/integration/tests/server/http_vsr.rs | 83 ++
core/integration/tests/server/mod.rs | 1 +
.../scenarios/segment_rotation_race_scenario.rs | 2 +-
core/partitions/src/iggy_partition.rs | 18 +
core/partitions/src/lib.rs | 9 +-
core/partitions/src/partition_storage.rs | 180 ++-
core/sdk/Cargo.toml | 2 +-
core/sdk/src/links/mux.rs | 21 +-
core/sdk/src/prelude.rs | 34 +-
core/server/Cargo.toml | 2 +-
core/server/config.toml | 1 +
core/server/server.http | 17 +-
core/server/src/http/extractor.rs | 40 +-
core/server/src/http/handlers.rs | 12 +-
core/server/src/http/metrics.rs | 31 +-
core/server/src/main.rs | 3 +-
core/server/src/partition_helpers.rs | 19 +-
core/server/src/sysinfo_probe.rs | 12 +-
core/system_stats/src/lib.rs | 19 +-
examples/python/uv.lock | 2 +-
foreign/cpp/Cargo.toml | 4 +-
foreign/cpp/MODULE.bazel | 2 +-
foreign/cpp/src/type_conversion.rs | 18 +-
foreign/csharp/Iggy_SDK/Iggy_SDK.csproj | 2 +-
foreign/go/contracts/version.go | 2 +-
foreign/java/gradle.properties | 2 +-
foreign/java/gradle/libs.versions.toml | 2 +-
foreign/node/package-lock.json | 4 +-
foreign/node/package.json | 2 +-
foreign/php/Cargo.toml | 6 +-
foreign/python/Cargo.toml | 12 +-
foreign/python/pyproject.toml | 2 +-
foreign/python/src/receive_message.rs | 4 +-
foreign/python/src/stats.rs | 2 +-
foreign/python/src/user_headers.rs | 7 +-
foreign/python/tests/test_message_operations.py | 4 +-
foreign/python/uv.lock | 2 +-
foreign/{csharp => swift}/LICENSE | 0
NOTICE => foreign/swift/NOTICE | 0
foreign/swift/Package.swift | 2 +-
foreign/swift/README.md | 35 +-
foreign/swift/Sources/Iggy/Iggy.swift | 5 +-
foreign/swift/Tests/IggyTests/Fixtures/golden.json | 8 +-
gateways/kafka/Cargo.toml | 5 +-
gateways/kafka/README.md | 48 +-
gateways/kafka/docs/BRIDGE_MAPPING.md | 14 +-
gateways/kafka/docs/SCOPE.md | 8 +-
gateways/kafka/docs/TEST_SUITE.md | 6 +-
gateways/kafka/src/bridge/config.rs | 127 +-
gateways/kafka/src/bridge/iggy_bridge/fetch.rs | 264 ++--
gateways/kafka/src/bridge/iggy_bridge/mod.rs | 36 +-
gateways/kafka/src/bridge/iggy_bridge/offsets.rs | 35 +-
gateways/kafka/src/bridge/iggy_bridge/produce.rs | 8 +-
gateways/kafka/src/bridge/mod.rs | 5 +-
gateways/kafka/src/protocol/api.rs | 6 +
gateways/kafka/src/protocol/handlers/fetch.rs | 1166 ++++++++++++++-
.../kafka/src/protocol/handlers/list_offsets.rs | 417 ++++--
.../kafka/tests/bridge_iggy_integration_tests.rs | 8 +-
gateways/kafka/tests/common/iggy_server.rs | 6 +-
gateways/kafka/tests/common/poll_relay.rs | 218 +++
gateways/kafka/tests/fetch_real_bridge_tests.rs | 242 +++-
gateways/kafka/tests/kafka_client_e2e_tests.rs | 6 +-
.../kafka/tests/list_offsets_real_bridge_tests.rs | 114 +-
scripts/bump-version.sh | 41 +-
scripts/prepare-release.sh | 16 +-
web/package-lock.json | 4 +-
web/package.json | 2 +-
148 files changed, 4955 insertions(+), 1741 deletions(-)
create mode 100644 .github/actions/swift/post-merge/action.yml
copy .claude/skills/connector-review/agents/openai.yaml => .spi.yml (85%)
copy foreign/swift/Package.swift => Package.swift (75%)
create mode 100644 core/connectors/sdk/tests/plugin_logging.rs
create mode 100644 core/integration/tests/server/consumer_offset_recovery.rs
copy foreign/{csharp => swift}/LICENSE (100%)
copy NOTICE => foreign/swift/NOTICE (100%)
create mode 100644 gateways/kafka/tests/common/poll_relay.rs