RustToMetal opened a new pull request, #4503: URL: https://github.com/apache/iggy/pull/4503
## Which issue does this PR address? Relates to #4001 ## Rationale The Swift SDK has the codecs and the protocol layer (#4355) but nothing that opens a connection. This is the next step of #4001: the client itself. ## What changed? The SDK could encode requests and decode replies but had no way to reach a server. `IggyClient` now owns one lockstep connection over SwiftNIO, with optional TLS through NIOSSL: it signs in, heartbeats, reconnects with the credentials that last succeeded, follows the cluster leader, and exposes the system, stream, topic, partition, segment, user, and token commands. A reconnect registers a new session, so only requests that provably never reached the log are replayed; a replicated write with an unknown outcome returns the error instead. Sending, polling, consumer groups, and offsets are not in this PR: the server now fences them on a partition context and a routing lookup, so they follow in the next one together with the end-to-end suite. Of the 3,591 added lines, 1,312 are tests. They run the client over real sockets against a scripted in-process server that speaks the consensus framing. ## Local Execution - Passed - Pre-commit hooks ran Run on macOS (Swift 6.4): `swift format lint --strict`, `swift build -Xswiftc -warnings-as-errors`, `swift build -c release`, and `swift test --parallel` (158 tests). `prek run --from-ref upstream/master --to-ref HEAD` passed. I also ran the client against `iggy-server` built from current master, plain and with TLS using the certificates in `core/certs`: sign-in, logout and re-login, token login, stream/topic/partition/user CRUD, reconnect after a password change, concurrent callers, and rejection of an untrusted and a mismatched certificate. Those checks are not part of this PR; the end-to-end suite and its CI lane come with the messaging PR. Not run locally: the Linux build, and failover against a real multi-node cluster (covered here by the scripted server only). ## AI Usage 1. Claude Code. 2. Implementation and tests were written with it, and it was used for a review pass against the comments on the earlier Swift PRs. 3. The local runs listed above, including the real-server run. 4. Yes. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
