github apache/iggy server-0.8.0

latest releases: edge, java-sdk-0.8.0
6 hours ago

For more details check our blog post: https://iggy.apache.org/blogs/2026/04/22/release-0.8.0/

What's Changed

  • docs(java): add async client JavaDoc and usage guide by @atharvalade in #2711
  • refactor(metadata): improve the stm update method by @numinnex in #2757
  • refactor(consensus): couple message assoc type by @numinnex in #2761
  • fix(ci): skip stable Docker tags in check-tags during auto-publish by @hubcio in #2759
  • feat(web): update benchmark dashboard dark mode to Iggy brand colors by @vishakha1411 in #2738
  • fix(connectors): don't use posix function names as FFI interface by @kriti-sc in #2771
  • chore(python): replace pip with uv by @slbotbm in #2767
  • feat(bench): add --username/--password and reuse admin client by @hubcio in #2778
  • feat(sdk): support hostnames in QUIC and WebSocket clients by @seokjin0414 in #2768
  • refactor(csharp): rewrite integration tests to remove DependsOn by @atharvalade in #2710
  • fix(ci): pin hwloc to v2.12.2 on macOS by @mmodzelewski in #2784
  • feat(consensus): enable independent commit progress across namespaces by @hubcio in #2765
  • feat(cluster): create a unified abstraction for subsystems by @numinnex in #2780
  • chore(repo): advance to year 2026 by @numinnex in #2795
  • ci(csharp): add C# coverage upload to Codecov by @lukaszzborek in #2782
  • fix(server): report correct current_offset after segment deletion by @hubcio in #2798
  • fix(ci): pass Codecov token to C# and Java test jobs by @hubcio in #2800
  • fix(server): prevent storing consumer offsets beyond max partition range by @gomnitrix in #2794
  • ci: add Codecov coverage for Python SDK by @atharvalade in #2790
  • ci(python,rust): fix publish dry-run and disable Windows wheels by @hubcio in #2813
  • fix(ci): unblock wheel collection when Windows is disabled by @hubcio in #2814
  • feat(ci): impl typos automatically checks by @Svecco in #2803
  • feat(java): add async API parity with blocking client by @atharvalade in #2718
  • ci: add Codecov coverage for Node SDK (#2774) by @atharvalade in #2792
  • feat(shard): create shard crate and generic IggyShard by @krishvishal in #2811
  • deps(web): update frontend dependencies by @mmodzelewski in #2819
  • refactor(configs): move ServerConfig types from server to configs crate by @hubcio in #2796
  • ci: add Codecov coverage for Go SDK by @atharvalade in #2793
  • fix(ci): use cargo-llvm-cov for Python SDK coverage by @atharvalade in #2817
  • feat(simulator): implement PacketSimulator for deterministic simulator by @krishvishal in #2769
  • perf(bench): downsample time series charts with LTTB by @hubcio in #2831
  • feat(bench): add latency distribution chart with log-normal fit by @hubcio in #2832
  • fix(integration): prevent flaky connector sink tests from f64 round-trip mismatch by @hubcio in #2838
  • feat(java): add missing methods to async TCP UsersClient by @jrhenderson1988 in #2837
  • feat(bench): add embeddable chart endpoints with PNG rendering by @hubcio in #2833
  • docs(csharp): update dotnet SDK README by @lukaszzborek in #2836
  • refactor(go): Introduce Command interface to improve Go client request handling by @chengxilo in #2737
  • feat(cpp): Add bazel building and testing infrastructure by @slbotbm in #2785
  • feat(cli): add cluster metadata command by @seokjin0414 in #2839
  • fix(csharp): fix .net node redirection in tcp client by @lukaszzborek in #2843
  • feat(consensus): add loopback queue for primary self-addressed messages by @hubcio in #2825
  • fix(cluster): fix type mismatch for variadic plane impl by @numinnex in #2857
  • ci(go): improve go bdd Dockerfile to leverage Docker layer caching by @chengxilo in #2862
  • feat(consensus): Add metadata and partition handles for MuxPlane by @krishvishal in #2855
  • feat(shard): Implement shard router by @krishvishal in #2853
  • ci: add --no-format to cargo sort check by @hubcio in #2864
  • perf: make IggyMessagesBatch::last_offset O(1) by @cijiugechu in #2840
  • fix(ci): fix gnome-keyring locking mid-test in CI by @hubcio in #2868
  • fix(ci): use cargo-llvm-cov properly for Python SDK coverage in Codecov by @atharvalade in #2867
  • feat(go): implement TCP/TLS connection in Go SDK by @saie-ch in #2834
  • feat(metadata): thread STM response into consensus Reply body by @hubcio in #2856
  • fix(go): fix tcp client connect method by @chengxilo in #2860
  • chore(repo): update versions to edge for all packages by @mmodzelewski in #2871
  • ci: add binary artifact detection to pre-commit and CI by @hubcio in #2875
  • feat(server): delete segments command for http by @dajneem23 in #2804
  • fix(web): improve handling of message_expiry by @piotrziolko in #2888
  • fix(ci): disable Go caching to eliminate duplicate-restore errors by @hubcio in #2877
  • chore(consensus): enable pedantic and nursery clippy lints by @hubcio in #2870
  • chore(clock, journal): enable pedantic and nursery clippy lints by @hubcio in #2874
  • chore(partitions): enable pedantic and nursery clippy lints by @hubcio in #2876
  • chore(message_bus): enable pedantic and nursery clippy lints by @hubcio in #2873
  • chore(simulator): enable pedantic and nursery clippy lints by @hubcio in #2895
  • chore(shard,metadata): enable pedantic and nursery clippy lints by @hubcio in #2896
  • feat(python): add TLS and auth args to getting-started examples by @saie-ch in #2754
  • fix(rust): auto-reconnect on transport errors after server restart by @spetz in #2880
  • feat(connectors): restart connector with new config without runtime restart by @seokjin0414 in #2781
  • refactor(go): move command /foreign/go/internal/command by @chengxilo in #2881
  • refactor(go): upgrade go-retry to v5 and enable infinite reconnection by @chengxilo in #2884
  • ci(go): merge BDD and e2e test coverage into Go SDK Codecov reports by @atharvalade in #2859
  • feat(js): add TCP/TLS integration tests and examples by @atharvalade in #2822
  • feat(java): implement Async Connection Pooling using FixedChannelPool by @rythm-sachdeva in #2606
  • feat(connectors): add MongoDB sink connector by @amuldotexe in #2815
  • feat(rust): add dedicated TCP/TLS producer and consumer examples by @atharvalade in #2820
  • chore: bump Rust to 1.94 by @hubcio in #2900
  • chore(deps): upgrade workspace dependencies, bump all edge iggy crates by @hubcio in #2901
  • ci: split examples-suite into per-SDK example components by @hubcio in #2899
  • ci: fix flaky keyring tests with eval and collection warmup by @hubcio in #2908
  • refactor(java): use generation-based auth for pooled channels by @mmodzelewski in #2910
  • test(java): add async-specific tests for ConsumerGroupsTcpClient by @atharvalade in #2890
  • fix(consensus): prevent UB from untrusted bytes interpreted as enum discriminants in consensus headers by @krishvishal in #2887
  • feat(csharp): add TCP/TLS producer and consumer examples by @atharvalade in #2821
  • fix(js): use localhost instead of disabling hostname verification in … by @atharvalade in #2913
  • feat(java): add TCP/TLS integration tests and examples by @atharvalade in #2823
  • feat(bdd): support -race option for Go BDD tests by @atharvalade in #2914
  • feat(java): Add unit tests for message package in Java SDK by @jrhenderson1988 in #2918
  • refactor(java): replace JUnit assertions with AssertJ across all tests by @mmodzelewski in #2929
  • feat(go): add TLS integration tests and examples by @saie-ch in #2898
  • chore(deps): bump black from 24.10.0 to 26.3.1 in /foreign/python by @dependabot[bot] in #2926
  • chore(deps): bump github.com/containerd/containerd from 1.7.18 to 1.7.29 in /foreign/go by @dependabot[bot] in #2935
  • chore(deps): bump golang.org/x/crypto from 0.42.0 to 0.45.0 in /foreign/go by @dependabot[bot] in #2934
  • refactor(csharp): implement SDK version handling in login requests by @lukaszzborek in #2937
  • ci: unify run-*-examples-from-readme.sh into single entrypoint with TLS support by @atharvalade in #2920
  • feat(java): Increase test coverage by @jrhenderson1988 in #2939
  • refactor(rust): empty binary_protocol crate by relocating its contents by @hubcio in #2942
  • feat(cpp): part of low-level bindings, their tests, and e2e CI config by @slbotbm in #2852
  • fix(cpp): Remove --locked option and delete cargo.lock file by @slbotbm in #2949
  • refactor(journal): refactor partition journal utilize storage trait by @numinnex in #2909
  • refactor(repo): wrap credentials in SecretString to prevent leaks by @grainier in #2931
  • refactor(java): unify blocking TCP client as wrapper over async client by @mmodzelewski in #2947
  • docs(connectors): align MongoDB sink duplicate-key semantics by @avirajkhare00 in #2941
  • refactor(java): harden client lifecycle and streamline test suite by @mmodzelewski in #2959
  • feat(rust): add wire protocol codec and types to binary_protocol crate by @hubcio in #2946
  • feat(server): add threads count and disk space to sysinfo stats by @seokjin0414 in #2917
  • refactor(go): refactor WithTLS by @chengxilo in #2957
  • fix(ci): prevent flaky keyring tests by keeping daemons alive by @hubcio in #2963
  • feat(rust): add wire types for all commands and zero-copy message primitives by @hubcio in #2962
  • fix(integration): reduce flakiness in connector integration tests by @hubcio in #2966
  • docs(go): solve typo in DeleteStream method. by @chengxilo in #2972
  • fix(sdk): fix broken Windows build for SDK and CLI by @hubcio in #2971
  • feat(bdd): add --coverage flag to run-bdd-tests.sh for all SDKs by @atharvalade in #2950
  • feat(partitions): add poll_messages support to simulator by @krishvishal in #2960
  • fix(web): submit login form on Enter instead of toggling password visibility by @mmodzelewski in #2970
  • feat(java): add new stats fields to match server sysinfo updates by @mmodzelewski in #2969
  • test(server): add regression test to ensure secrets are never persisted as plaintext by @yeyomontana in #2945
  • feat(security): generate random JWT secrets when not configured by @spetz in #2974
  • chore(python): bump Python SDK to 0.7.3-dev1 by @hubcio in #2989
  • ci: fix ASF github actions allowlist violations by @hubcio in #2993
  • chore(ci): add uv lock check to pre-commit hooks by @hubcio in #2996
  • feat(server): implement TwoHalves buffer by @numinnex in #2944
  • ci: pin Docker actions to SHA and bump setup-bazel per ASF allowlist by @hubcio in #2999
  • fix(ci): prevent flaky keyring tests by deferring unlock to test phase by @hubcio in #2995
  • ci: partition Rust tests across 2 parallel CI machines by @hubcio in #3003
  • fix: Helm chart install guidance and deployment defaults by @avirajkhare00 in #2976
  • fix(bench): delete stale streams on re-run to prevent corrupted latency by @hubcio in #2991
  • refactor(csharp): rename asynchronous methods to have Async suffix by @lukaszzborek in #2994
  • deps(rust): bump workspace dependencies by @hubcio in #3005
  • feat: add UI /healthz endpoint by @avirajkhare00 in #2983
  • fix(docs): fix grammar errors in README, examples, and test comments by @strbrgr in #3011
  • feat(rust): add sans-IO frame codec and command dispatch table by @hubcio in #2967
  • chore(python): bump SDK to 0.7.4-dev1, modernize CI and deps by @hubcio in #2992
  • feat(go): implement binary reader/writer by @chengxilo in #2986
  • fix(server): prevent consumer offset skip during concurrent produce+consume by @hubcio in #2958
  • fix(deps): resolve 15 Dependabot vulnerability alerts by @hubcio in #3016
  • feat(server): aligned buffer memory pool by @tungtose in #2921
  • feat(server): add io_uring EINVAL diagnostics for shard executors by @hubcio in #3021
  • test(csharp): wait for HTTP readiness in fixture by @avirajkhare00 in #3024
  • refactor(consensus): consolidate VSR types in binary_protocol by @hubcio in #3014
  • ci: split post-merge monolith and harden Codecov uploads by @hubcio in #3006
  • feat(go): send SDK version in login request by @ryankert01 in #3025
  • fix(security): replace SecretString with String for API response tokens by @spetz in #3008
  • chore(deps): bump requests from 2.32.5 to 2.33.0 in /foreign/python by @dependabot[bot] in #3031
  • ci: allow deps-dev scope in PR title by @hubcio in #3035
  • chore(deps-dev): bump picomatch from 4.0.3 to 4.0.4 in /foreign/node by @dependabot[bot] in #3034
  • chore(deps-dev): bump picomatch from 4.0.3 to 4.0.4 in /examples/node by @dependabot[bot] in #3033
  • refactor(server): replace ServerCommand enum and binary mapper with wire types by @hubcio in #3027
  • feat(metadata): Persistent WAL journal with recovery and compaction by @krishvishal in #2916
  • feat(java): Support connection timeout by @jrhenderson1988 in #3026
  • ci: add Helm chart validation by @avirajkhare00 in #3019
  • fix(go): correct Permissions serialization and add unit tests by @saie-ch in #3015
  • feat(cli): Add context create/delete CLI commands to complete login/logout workflow by @atharvalade in #2998
  • feat(security): encrypt user headers alongside message payload by @spetz in #3040
  • fix(test): remove race condition in postgres source mark test by @krishvishal in #3052
  • fix: stats semver wire alignment using a zero sentinel by @atharvalade in #3036
  • chore(deps): bump pygments from 2.19.2 to 2.20.0 in /bdd/python by @dependabot[bot] in #3055
  • chore(deps): bump pygments from 2.19.2 to 2.20.0 in /foreign/python by @dependabot[bot] in #3054
  • fix(test): remove racy assertion in postgres source delete_after_read test by @krishvishal in #3064
  • feat(partitions): rework partitions using new message by @numinnex in #3020
  • feat(connectors): implement InfluxDB Sink and Source by @ryerraguntla in #2933
  • feat(cpp): Add functions related to consumer groups by @slbotbm in #2988
  • feat(connectors): add generic HTTP sink connector by @mlevkov in #2925
  • chore(repo): update connectors versions and readme by @spetz in #3066
  • feat(ci): add version bump tooling and consistency checks by @hubcio in #2990
  • feat(simulator): wire Network into tick loop with per-replica outboxes and replica_crash by @krishvishal in #3049
  • refactor(server,sdk): replace ServerCommand/BytesSerializable with wire types by @hubcio in #3041
  • feat(server-ng): create iggy-server-ng binary crate by @krishvishal in #3053
  • chore(deps): update workspace dependencies by @hubcio in #3072
  • chore(repo): bump all components minor version by @hubcio in #3073
  • fix(test): Fix Iceberg container readiness check to use HTTP health check by @krishvishal in #3077
  • fix(test): Fix Elasticsearch container readiness check to use HTTP health check by @krishvishal in #3079
  • chore(deps-dev): bump vite from 7.3.1 to 7.3.2 in /web by @dependabot[bot] in #3083
  • fix(sdk): allow hostnames in server address configuration by @felixfaisal in #2923
  • chore(deps): bump hwlocality and passterm, fix non-tty password read by @hubcio in #3084
  • chore(go): delete redundant script run_tcp_e2e.sh by @chengxilo in #3065
  • feat(test): add shared_server to iggy_harness for server reuse across tests by @hubcio in #3085
  • feat(consensus): add ClientTable with WAL-backed commit path and view-change safety by @krishvishal in #3023
  • revert(test): remove shared_server, add nextest CI retries by @hubcio in #3088
  • chore(security): fix Dependabot security vulnerabilities by @hubcio in #3087
  • feat(server): support A2A protocol by @Tyooughtul in #2656
  • feat(consensus): wire up view change protocol in simulator by @krishvishal in #3092
  • fix(connectors): support default credential provider chain for iceberg sink by @gomnitrix in #3045
  • feat(bench): prettier table output by @tungtose in #3090
  • fix(ci): fix comfy table problem when building WASM targets by @tungtose in #3107
  • chore: add third-party attribution for bundled Gradle Wrapper by @mmodzelewski in #3109
  • feat(ci): dependency-DAG-based test scoping for Rust CI by @krishvishal in #3095
  • fix(sdk): inline iobuf into iggy_binary_protocol by @hubcio in #3110
  • fix(ci): include binary packages in DAG-scoped builds for CARGO_BIN_EXE support by @krishvishal in #3113
  • fix(ci): fix DAG-scoped builds for connector plugins and multi-crate PRs by @krishvishal in #3120
  • chore(go): update sdk dependencies by @spetz in #3115
  • fix(go): update stats field and its deserialization logic to align with rust SDK by @chengxilo in #3032
  • feat(ci): harden Rust crate publish chain after rc1 incident by @hubcio in #3111
  • fix(test): replace log-based container readiness checks with HTTP healthcheck endpoints by @krishvishal in #3093
  • chore: bump iggy-web-ui to 0.3.0 by @hubcio in #3121
  • feat(helm): add helm-docs, yamllint, and helmfmt for chart quality by @avirajkhare00 in #3070
  • deps(python): bump pytest minimum to 9.0.3 by @mmodzelewski in #3122
  • fix(docs): remove unsupported verbosity in benchmark command examples by @ryankert01 in #3114
  • fix(cli): Ensure home directory exists when writing contexts by @pauliyobo in #3069
  • chore(deps): update workspace dependencies by @krishvishal in #3123
  • fix(ci): gate release tags on proven registry availability by @hubcio in #3124
  • fix(go): correct buffer size for CreateUser and UpdatePermissions serialization by @atharvalade in #3097
  • fix(ci): harden publish pipeline by @hubcio in #3125
  • chore(sdk): update rust client to 0.10.0 by @spetz in #3126

New Contributors

Full Changelog: server-0.7.0...server-0.8.0

Don't miss a new iggy release

NewReleases is sending notifications on new releases.