Skip to content

server-0.8.0

Latest

Choose a tag to compare

@hubcio hubcio released this 22 Apr 10:33
f5350d9

Apache Iggy (Incubating) is an effort undergoing incubation at the Apache Software Foundation (ASF), sponsored by the Apache Incubator PMC.

Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects.

While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.

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